浏览代码

Getting GLM 0.9.3.1 release ready

Christophe Riccio 14 年之前
父节点
当前提交
18a500a0f5
共有 100 个文件被更改,包括 9468 次插入6141 次删除
  1. 2 2
      doc/about.html
  2. 6 5
      doc/api-0.9.3/a00001.html
  3. 13 12
      doc/api-0.9.3/a00002.html
  4. 20 25
      doc/api-0.9.3/a00003.html
  5. 525 0
      doc/api-0.9.3/a00003_source.html
  6. 20 22
      doc/api-0.9.3/a00004.html
  7. 116 0
      doc/api-0.9.3/a00004_source.html
  8. 21 21
      doc/api-0.9.3/a00005.html
  9. 903 0
      doc/api-0.9.3/a00005_source.html
  10. 21 21
      doc/api-0.9.3/a00006.html
  11. 853 0
      doc/api-0.9.3/a00006_source.html
  12. 21 21
      doc/api-0.9.3/a00007.html
  13. 225 0
      doc/api-0.9.3/a00007_source.html
  14. 24 21
      doc/api-0.9.3/a00008.html
  15. 157 0
      doc/api-0.9.3/a00008_source.html
  16. 31 21
      doc/api-0.9.3/a00009.html
  17. 174 0
      doc/api-0.9.3/a00009_source.html
  18. 127 0
      doc/api-0.9.3/a00010_source.html
  19. 24 21
      doc/api-0.9.3/a00011.html
  20. 183 0
      doc/api-0.9.3/a00011_source.html
  21. 22 21
      doc/api-0.9.3/a00012.html
  22. 147 0
      doc/api-0.9.3/a00012_source.html
  23. 22 21
      doc/api-0.9.3/a00013.html
  24. 137 0
      doc/api-0.9.3/a00013_source.html
  25. 24 21
      doc/api-0.9.3/a00014.html
  26. 243 0
      doc/api-0.9.3/a00014_source.html
  27. 22 30
      doc/api-0.9.3/a00015.html
  28. 137 0
      doc/api-0.9.3/a00015_source.html
  29. 77 39
      doc/api-0.9.3/a00016.html
  30. 198 0
      doc/api-0.9.3/a00016_source.html
  31. 26 45
      doc/api-0.9.3/a00017.html
  32. 137 0
      doc/api-0.9.3/a00017_source.html
  33. 24 78
      doc/api-0.9.3/a00018.html
  34. 189 0
      doc/api-0.9.3/a00018_source.html
  35. 124 438
      doc/api-0.9.3/a00019_source.html
  36. 13 11
      doc/api-0.9.3/a00020.html
  37. 41 27
      doc/api-0.9.3/a00020_source.html
  38. 15 23
      doc/api-0.9.3/a00021.html
  39. 146 802
      doc/api-0.9.3/a00021_source.html
  40. 15 11
      doc/api-0.9.3/a00022.html
  41. 61 765
      doc/api-0.9.3/a00022_source.html
  42. 13 11
      doc/api-0.9.3/a00023.html
  43. 51 137
      doc/api-0.9.3/a00023_source.html
  44. 12 31
      doc/api-0.9.3/a00024.html
  45. 36 50
      doc/api-0.9.3/a00024_source.html
  46. 54 38
      doc/api-0.9.3/a00025.html
  47. 141 77
      doc/api-0.9.3/a00025_source.html
  48. 99 0
      doc/api-0.9.3/a00026.html
  49. 40 33
      doc/api-0.9.3/a00026_source.html
  50. 27 145
      doc/api-0.9.3/a00027.html
  51. 58 88
      doc/api-0.9.3/a00027_source.html
  52. 32 23
      doc/api-0.9.3/a00028.html
  53. 70 50
      doc/api-0.9.3/a00028_source.html
  54. 29 15
      doc/api-0.9.3/a00029.html
  55. 59 41
      doc/api-0.9.3/a00029_source.html
  56. 21 257
      doc/api-0.9.3/a00030.html
  57. 30 146
      doc/api-0.9.3/a00030_source.html
  58. 24 19
      doc/api-0.9.3/a00031.html
  59. 44 42
      doc/api-0.9.3/a00031_source.html
  60. 42 63
      doc/api-0.9.3/a00032.html
  61. 62 96
      doc/api-0.9.3/a00032_source.html
  62. 30 19
      doc/api-0.9.3/a00033.html
  63. 48 38
      doc/api-0.9.3/a00033_source.html
  64. 17 49
      doc/api-0.9.3/a00034.html
  65. 90 85
      doc/api-0.9.3/a00034_source.html
  66. 81 0
      doc/api-0.9.3/a00035.html
  67. 38 112
      doc/api-0.9.3/a00035_source.html
  68. 12 19
      doc/api-0.9.3/a00036.html
  69. 311 29
      doc/api-0.9.3/a00036_source.html
  70. 12 43
      doc/api-0.9.3/a00037.html
  71. 38 137
      doc/api-0.9.3/a00037_source.html
  72. 12 34
      doc/api-0.9.3/a00038.html
  73. 20 61
      doc/api-0.9.3/a00038_source.html
  74. 14 27
      doc/api-0.9.3/a00039.html
  75. 65 40
      doc/api-0.9.3/a00039_source.html
  76. 14 31
      doc/api-0.9.3/a00040.html
  77. 29 45
      doc/api-0.9.3/a00040_source.html
  78. 12 69
      doc/api-0.9.3/a00041.html
  79. 51 142
      doc/api-0.9.3/a00041_source.html
  80. 14 31
      doc/api-0.9.3/a00042.html
  81. 52 37
      doc/api-0.9.3/a00042_source.html
  82. 17 33
      doc/api-0.9.3/a00043.html
  83. 65 61
      doc/api-0.9.3/a00043_source.html
  84. 12 38
      doc/api-0.9.3/a00044.html
  85. 58 78
      doc/api-0.9.3/a00044_source.html
  86. 12 39
      doc/api-0.9.3/a00045.html
  87. 53 64
      doc/api-0.9.3/a00045_source.html
  88. 47 37
      doc/api-0.9.3/a00046_source.html
  89. 12 30
      doc/api-0.9.3/a00047.html
  90. 27 50
      doc/api-0.9.3/a00047_source.html
  91. 12 48
      doc/api-0.9.3/a00048.html
  92. 27 75
      doc/api-0.9.3/a00048_source.html
  93. 12 35
      doc/api-0.9.3/a00049.html
  94. 30 49
      doc/api-0.9.3/a00049_source.html
  95. 1774 127
      doc/api-0.9.3/a00050_source.html
  96. 12 23
      doc/api-0.9.3/a00051.html
  97. 47 39
      doc/api-0.9.3/a00051_source.html
  98. 14 48
      doc/api-0.9.3/a00052.html
  99. 35 312
      doc/api-0.9.3/a00052_source.html
  100. 12 21
      doc/api-0.9.3/a00053.html

+ 2 - 2
doc/about.html

@@ -11,8 +11,8 @@
           ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
           var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
           })();
-        </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.3.0/glm-0.9.3.0.zip/download">
-			Download GLM 0.9.3.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.pdf">GLM Manual</a></div><div class="menu2"><a href="./api/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>
+        </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.3.1/glm-0.9.3.1.zip/download">
+			Download GLM 0.9.3.1</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.pdf">GLM Manual</a></div><div class="menu2"><a href="./api/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>
 			OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software 
 			based on the <a href="http://www.opengl.org/documentation/glsl/">OpenGL Shading Language (GLSL)</a> specification.
 		</p><p>

+ 6 - 5
doc/api-0.9.3/a00001.html

@@ -2,6 +2,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
 <title>Differences between GLSL and GLM core</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -45,23 +46,23 @@
 <div class="header">
   <div class="headertitle">
 <div class="title">Differences between GLSL and GLM core </div>  </div>
-</div>
+</div><!--header-->
 <div class="contents">
 <div class="textblock"><p>GLM comes very close to replicating GLSL, but it is not exact. Here is a list of differences between GLM and GLSL:</p>
 <ul>
 <li>
 <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>
-<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="a00156.html">their own section</a>.</p>
+<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="a00139.html">their own section</a>.</p>
 <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>
 </li>
 </ul>
-</div></div>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 13 - 12
doc/api-0.9.3/a00002.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_swizzle_base0 Struct Reference</title>
+<title>half Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -44,34 +45,34 @@
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
       <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
     </ul>
   </div>
   <div id="nav-path" class="navpath">
     <ul>
       <li class="navelem"><b>glm</b>      </li>
       <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00002.html">_swizzle_base0</a>      </li>
+      <li class="navelem"><a class="el" href="a00002.html">half</a>      </li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_swizzle_base0 Struct Reference</div>  </div>
-</div>
+<div class="title">half Class Reference<div class="ingroups"><a class="el" href="a00141.html">GLM_GTC_half_float: Half-precision floating-point based types and functions</a></div></div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::_swizzle_base0" -->
-<p><a href="a00232.html">List of all members.</a></p>
+<!-- doxytag: class="glm::detail::half" -->
+<p><a href="a00215.html">List of all members.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Internal class for implementing swizzle operators. </p>
-</div></div>
+<div class="textblock"><p>16-bit floating point type. </p>
+
+<p>Definition at line <a class="el" href="a00094_source.html#l00044">44</a> of file <a class="el" href="a00094_source.html">type_half.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 20 - 25
doc/api-0.9.3/a00003.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_swizzle_base2 Struct Reference</title>
+<title>_detail.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,52 +32,46 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00003.html">_swizzle_base2</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_swizzle_base2 Struct Reference</div>  </div>
-</div>
+<div class="title">_detail.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::_swizzle_base2" --><!-- doxytag: inherits="glm::detail::_swizzle_base1" -->
-<p>Inherits _swizzle_base1&lt; ValueType, VecType, E0, E1, E2, E3, N &gt;.</p>
 
-<p><a href="a00233.html">List of all members.</a></p>
+<p><a href="a00003_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Internal class for implementing swizzle operators. </p>
-<p>Template parameters:</p>
-<p>ValueType = type of scalar values (e.g. float, double) VecType = class the swizzle is applies to (e.g. tvec3&lt;float&gt;) N = number of components in the vector (e.g. 3) E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec</p>
-<p>DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles containing duplicate elements so that they cannot be used as r-values). </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-07-24 / 2011-06-14 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+
+<p>Definition in file <a class="el" href="a00003_source.html">_detail.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 525 - 0
doc/api-0.9.3/a00003_source.html

@@ -0,0 +1,525 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>_detail.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">_detail.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00003.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_core_detail</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_detail</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">setup.hpp</a>&quot;</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;cassert&gt;</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#if(defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L))</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#include &lt;cstdint&gt;</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#endif</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>glm{
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>detail
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041         <span class="keyword">class </span>half;
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#if(defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) // C99 detected, 64 bit types available</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span>        <span class="keyword">typedef</span> int64_t                                                         sint64;
+<a name="l00045"></a>00045         <span class="keyword">typedef</span> uint64_t                                                        uint64;
+<a name="l00046"></a>00046 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64                                          sint64;
+<a name="l00048"></a>00048         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64                                        uint64;
+<a name="l00049"></a>00049 <span class="preprocessor">#elif(GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))</span>
+<a name="l00050"></a>00050 <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;
+<a name="l00051"></a>00051         __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>        uint64;
+<a name="l00052"></a>00052 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_BC)</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span>        <span class="keyword">typedef</span> Int64                                                           sint64;
+<a name="l00054"></a>00054         <span class="keyword">typedef</span> Uint64                                                          uint64;
+<a name="l00055"></a>00055 <span class="preprocessor">#else//unknown compiler</span>
+<a name="l00056"></a>00056 <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;
+<a name="l00057"></a>00057         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                      uint64;
+<a name="l00058"></a>00058 <span class="preprocessor">#endif//GLM_COMPILER</span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span>
+<a name="l00060"></a>00060         <span class="keyword">template</span>&lt;<span class="keywordtype">bool</span> C&gt;
+<a name="l00061"></a>00061         <span class="keyword">struct </span>If
+<a name="l00062"></a>00062         {
+<a name="l00063"></a>00063                 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> F, <span class="keyword">typename</span> T&gt;
+<a name="l00064"></a>00064                 <span class="keyword">static</span> GLM_FUNC_QUALIFIER T apply(F functor, <span class="keyword">const</span> T&amp; val)
+<a name="l00065"></a>00065                 {
+<a name="l00066"></a>00066                         <span class="keywordflow">return</span> functor(val);
+<a name="l00067"></a>00067                 }
+<a name="l00068"></a>00068         };
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070         <span class="keyword">template</span>&lt;&gt;
+<a name="l00071"></a>00071         <span class="keyword">struct </span>If&lt;false&gt;
+<a name="l00072"></a>00072         {
+<a name="l00073"></a>00073                 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> F, <span class="keyword">typename</span> T&gt;
+<a name="l00074"></a>00074                 <span class="keyword">static</span> GLM_FUNC_QUALIFIER T apply(F, <span class="keyword">const</span> T&amp; val)
+<a name="l00075"></a>00075                 {
+<a name="l00076"></a>00076                         <span class="keywordflow">return</span> val;
+<a name="l00077"></a>00077                 }
+<a name="l00078"></a>00078         };
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080         <span class="comment">//template &lt;typename T&gt;</span>
+<a name="l00081"></a>00081         <span class="comment">//struct traits</span>
+<a name="l00082"></a>00082         <span class="comment">//{</span>
+<a name="l00083"></a>00083         <span class="comment">//      static const bool is_signed = false;</span>
+<a name="l00084"></a>00084         <span class="comment">//      static const bool is_float = false;</span>
+<a name="l00085"></a>00085         <span class="comment">//      static const bool is_vector = false;</span>
+<a name="l00086"></a>00086         <span class="comment">//      static const bool is_matrix = false;</span>
+<a name="l00087"></a>00087         <span class="comment">//      static const bool is_genType = false;</span>
+<a name="l00088"></a>00088         <span class="comment">//      static const bool is_genIType = false;</span>
+<a name="l00089"></a>00089         <span class="comment">//      static const bool is_genUType = false;</span>
+<a name="l00090"></a>00090         <span class="comment">//};</span>
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092         <span class="comment">//template &lt;&gt;</span>
+<a name="l00093"></a>00093         <span class="comment">//struct traits&lt;half&gt;</span>
+<a name="l00094"></a>00094         <span class="comment">//{</span>
+<a name="l00095"></a>00095         <span class="comment">//      static const bool is_float = true;</span>
+<a name="l00096"></a>00096         <span class="comment">//      static const bool is_genType = true;</span>
+<a name="l00097"></a>00097         <span class="comment">//};</span>
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099         <span class="comment">//template &lt;&gt;</span>
+<a name="l00100"></a>00100         <span class="comment">//struct traits&lt;float&gt;</span>
+<a name="l00101"></a>00101         <span class="comment">//{</span>
+<a name="l00102"></a>00102         <span class="comment">//      static const bool is_float = true;</span>
+<a name="l00103"></a>00103         <span class="comment">//      static const bool is_genType = true;</span>
+<a name="l00104"></a>00104         <span class="comment">//};</span>
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106         <span class="comment">//template &lt;&gt;</span>
+<a name="l00107"></a>00107         <span class="comment">//struct traits&lt;double&gt;</span>
+<a name="l00108"></a>00108         <span class="comment">//{</span>
+<a name="l00109"></a>00109         <span class="comment">//      static const bool is_float = true;</span>
+<a name="l00110"></a>00110         <span class="comment">//      static const bool is_genType = true;</span>
+<a name="l00111"></a>00111         <span class="comment">//};</span>
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113         <span class="comment">//template &lt;typename genType&gt;</span>
+<a name="l00114"></a>00114         <span class="comment">//struct desc</span>
+<a name="l00115"></a>00115         <span class="comment">//{</span>
+<a name="l00116"></a>00116         <span class="comment">//      typedef genType                                                 type;</span>
+<a name="l00117"></a>00117         <span class="comment">//      typedef genType *                                               pointer;</span>
+<a name="l00118"></a>00118         <span class="comment">//      typedef genType const*                                  const_pointer;</span>
+<a name="l00119"></a>00119         <span class="comment">//      typedef genType const *const                    const_pointer_const;</span>
+<a name="l00120"></a>00120         <span class="comment">//      typedef genType *const                                  pointer_const;</span>
+<a name="l00121"></a>00121         <span class="comment">//      typedef genType &amp;                                               reference;</span>
+<a name="l00122"></a>00122         <span class="comment">//      typedef genType const&amp;                                  const_reference;</span>
+<a name="l00123"></a>00123         <span class="comment">//      typedef genType const&amp;                                  param_type;</span>
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125         <span class="comment">//      typedef typename genType::value_type    value_type;</span>
+<a name="l00126"></a>00126         <span class="comment">//      typedef typename genType::size_type             size_type;</span>
+<a name="l00127"></a>00127         <span class="comment">//      static const typename size_type                 value_size;</span>
+<a name="l00128"></a>00128         <span class="comment">//};</span>
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130         <span class="comment">//template &lt;typename genType&gt;</span>
+<a name="l00131"></a>00131         <span class="comment">//const typename desc&lt;genType&gt;::size_type desc&lt;genType&gt;::value_size = genType::value_size();</span>
+<a name="l00132"></a>00132 
+<a name="l00133"></a>00133         <span class="keyword">union </span>uif32
+<a name="l00134"></a>00134         {
+<a name="l00135"></a>00135                 GLM_FUNC_QUALIFIER uif32() :
+<a name="l00136"></a>00136                         i(0)
+<a name="l00137"></a>00137                 {}
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139                 GLM_FUNC_QUALIFIER uif32(<span class="keywordtype">float</span> f) :
+<a name="l00140"></a>00140                         f(f)
+<a name="l00141"></a>00141                 {}
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143                 GLM_FUNC_QUALIFIER uif32(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i) :
+<a name="l00144"></a>00144                         i(i)
+<a name="l00145"></a>00145                 {}
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147                 <span class="keywordtype">float</span> f;
+<a name="l00148"></a>00148                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;
+<a name="l00149"></a>00149         };
+<a name="l00150"></a>00150 
+<a name="l00151"></a>00151         <span class="keyword">union </span>uif64
+<a name="l00152"></a>00152         {
+<a name="l00153"></a>00153                 GLM_FUNC_QUALIFIER uif64() :
+<a name="l00154"></a>00154                         i(0)
+<a name="l00155"></a>00155                 {}
+<a name="l00156"></a>00156 
+<a name="l00157"></a>00157                 GLM_FUNC_QUALIFIER uif64(<span class="keywordtype">double</span> f) :
+<a name="l00158"></a>00158                         f(f)
+<a name="l00159"></a>00159                 {}
+<a name="l00160"></a>00160 
+<a name="l00161"></a>00161                 GLM_FUNC_QUALIFIER uif64(uint64 i) :
+<a name="l00162"></a>00162                         i(i)
+<a name="l00163"></a>00163                 {}
+<a name="l00164"></a>00164 
+<a name="l00165"></a>00165                 <span class="keywordtype">double</span> f;
+<a name="l00166"></a>00166                 uint64 i;
+<a name="l00167"></a>00167         };
+<a name="l00168"></a>00168 
+<a name="l00169"></a>00169         <span class="keyword">typedef</span> uif32 uif;
+<a name="l00170"></a>00170 
+<a name="l00172"></a>00172         <span class="comment">// int</span>
+<a name="l00173"></a>00173 
+<a name="l00174"></a>00174         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00175"></a>00175         <span class="keyword">struct </span>is_int
+<a name="l00176"></a>00176         {
+<a name="l00177"></a>00177                 <span class="keyword">enum</span> is_int_enum
+<a name="l00178"></a>00178                 {
+<a name="l00179"></a>00179                         _YES = 0,
+<a name="l00180"></a>00180                         _NO = 1
+<a name="l00181"></a>00181                 };
+<a name="l00182"></a>00182         };
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184 <span class="preprocessor">#define GLM_DETAIL_IS_INT(T)    \</span>
+<a name="l00185"></a>00185 <span class="preprocessor">        template &lt;&gt;                                     \</span>
+<a name="l00186"></a>00186 <span class="preprocessor">        struct is_int&lt;T&gt;                        \</span>
+<a name="l00187"></a>00187 <span class="preprocessor">        {                                                       \</span>
+<a name="l00188"></a>00188 <span class="preprocessor">                enum is_int_enum                \</span>
+<a name="l00189"></a>00189 <span class="preprocessor">                {                                               \</span>
+<a name="l00190"></a>00190 <span class="preprocessor">                        _YES = 1,                       \</span>
+<a name="l00191"></a>00191 <span class="preprocessor">                        _NO = 0                         \</span>
+<a name="l00192"></a>00192 <span class="preprocessor">                };                                              \</span>
+<a name="l00193"></a>00193 <span class="preprocessor">        }</span>
+<a name="l00194"></a>00194 <span class="preprocessor"></span>
+<a name="l00196"></a>00196         <span class="comment">// uint</span>
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00199"></a>00199         <span class="keyword">struct </span>is_uint
+<a name="l00200"></a>00200         {
+<a name="l00201"></a>00201                 <span class="keyword">enum</span> is_uint_enum
+<a name="l00202"></a>00202                 {
+<a name="l00203"></a>00203                         _YES = 0,
+<a name="l00204"></a>00204                         _NO = 1
+<a name="l00205"></a>00205                 };
+<a name="l00206"></a>00206         };
+<a name="l00207"></a>00207 
+<a name="l00208"></a>00208 <span class="preprocessor">#define GLM_DETAIL_IS_UINT(T)   \</span>
+<a name="l00209"></a>00209 <span class="preprocessor">        template &lt;&gt;                                     \</span>
+<a name="l00210"></a>00210 <span class="preprocessor">        struct is_uint&lt;T&gt;                       \</span>
+<a name="l00211"></a>00211 <span class="preprocessor">        {                                                       \</span>
+<a name="l00212"></a>00212 <span class="preprocessor">                enum is_uint_enum               \</span>
+<a name="l00213"></a>00213 <span class="preprocessor">                {                                               \</span>
+<a name="l00214"></a>00214 <span class="preprocessor">                        _YES = 1,                       \</span>
+<a name="l00215"></a>00215 <span class="preprocessor">                        _NO = 0                         \</span>
+<a name="l00216"></a>00216 <span class="preprocessor">                };                                              \</span>
+<a name="l00217"></a>00217 <span class="preprocessor">        }</span>
+<a name="l00218"></a>00218 <span class="preprocessor"></span>
+<a name="l00219"></a>00219         <span class="comment">//GLM_DETAIL_IS_UINT(unsigned long long)</span>
+<a name="l00220"></a>00220 
+<a name="l00222"></a>00222         <span class="comment">// float</span>
+<a name="l00223"></a>00223 
+<a name="l00224"></a>00224         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00225"></a>00225         <span class="keyword">struct </span>is_float
+<a name="l00226"></a>00226         {
+<a name="l00227"></a>00227                 <span class="keyword">enum</span> is_float_enum
+<a name="l00228"></a>00228                 {
+<a name="l00229"></a>00229                         _YES = 0,
+<a name="l00230"></a>00230                         _NO = 1
+<a name="l00231"></a>00231                 };
+<a name="l00232"></a>00232         };
+<a name="l00233"></a>00233 
+<a name="l00234"></a>00234 <span class="preprocessor">#define GLM_DETAIL_IS_FLOAT(T)  \</span>
+<a name="l00235"></a>00235 <span class="preprocessor">        template &lt;&gt;                                     \</span>
+<a name="l00236"></a>00236 <span class="preprocessor">        struct is_float&lt;T&gt;                      \</span>
+<a name="l00237"></a>00237 <span class="preprocessor">        {                                                       \</span>
+<a name="l00238"></a>00238 <span class="preprocessor">                enum is_float_enum              \</span>
+<a name="l00239"></a>00239 <span class="preprocessor">                {                                               \</span>
+<a name="l00240"></a>00240 <span class="preprocessor">                        _YES = 1,                       \</span>
+<a name="l00241"></a>00241 <span class="preprocessor">                        _NO = 0                         \</span>
+<a name="l00242"></a>00242 <span class="preprocessor">                };                                              \</span>
+<a name="l00243"></a>00243 <span class="preprocessor">        }</span>
+<a name="l00244"></a>00244 <span class="preprocessor"></span>
+<a name="l00245"></a>00245         GLM_DETAIL_IS_FLOAT(detail::half);
+<a name="l00246"></a>00246         GLM_DETAIL_IS_FLOAT(<span class="keywordtype">float</span>);
+<a name="l00247"></a>00247         GLM_DETAIL_IS_FLOAT(<span class="keywordtype">double</span>);
+<a name="l00248"></a>00248         GLM_DETAIL_IS_FLOAT(<span class="keywordtype">long</span> <span class="keywordtype">double</span>);
+<a name="l00249"></a>00249 
+<a name="l00251"></a>00251         <span class="comment">// bool</span>
+<a name="l00252"></a>00252 
+<a name="l00253"></a>00253         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00254"></a>00254         <span class="keyword">struct </span>is_bool
+<a name="l00255"></a>00255         {
+<a name="l00256"></a>00256                 <span class="keyword">enum</span> is_bool_enum
+<a name="l00257"></a>00257                 {
+<a name="l00258"></a>00258                         _YES = 0,
+<a name="l00259"></a>00259                         _NO = 1
+<a name="l00260"></a>00260                 };
+<a name="l00261"></a>00261         };
+<a name="l00262"></a>00262         
+<a name="l00263"></a>00263         <span class="keyword">template</span> &lt;&gt;
+<a name="l00264"></a>00264         <span class="keyword">struct </span>is_bool&lt;bool&gt;
+<a name="l00265"></a>00265         {
+<a name="l00266"></a>00266                 <span class="keyword">enum</span> is_bool_enum
+<a name="l00267"></a>00267                 {
+<a name="l00268"></a>00268                         _YES = 1,
+<a name="l00269"></a>00269                         _NO = 0
+<a name="l00270"></a>00270                 };
+<a name="l00271"></a>00271         };
+<a name="l00272"></a>00272         
+<a name="l00274"></a>00274         <span class="comment">// vector</span>
+<a name="l00275"></a>00275 
+<a name="l00276"></a>00276         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00277"></a>00277         <span class="keyword">struct </span>is_vector
+<a name="l00278"></a>00278         {
+<a name="l00279"></a>00279                 <span class="keyword">enum</span> is_vector_enum
+<a name="l00280"></a>00280                 {
+<a name="l00281"></a>00281                         _YES = 0,
+<a name="l00282"></a>00282                         _NO = 1
+<a name="l00283"></a>00283                 };
+<a name="l00284"></a>00284         };
+<a name="l00285"></a>00285 
+<a name="l00286"></a>00286 <span class="preprocessor">#       define GLM_DETAIL_IS_VECTOR(TYPE) \</span>
+<a name="l00287"></a>00287 <span class="preprocessor">                template &lt;typename T&gt; \</span>
+<a name="l00288"></a>00288 <span class="preprocessor">                struct is_vector&lt;TYPE&lt;T&gt; &gt; \</span>
+<a name="l00289"></a>00289 <span class="preprocessor">                { \</span>
+<a name="l00290"></a>00290 <span class="preprocessor">                        enum is_vector_enum \</span>
+<a name="l00291"></a>00291 <span class="preprocessor">                        { \</span>
+<a name="l00292"></a>00292 <span class="preprocessor">                                _YES = 1, \</span>
+<a name="l00293"></a>00293 <span class="preprocessor">                                _NO = 0 \</span>
+<a name="l00294"></a>00294 <span class="preprocessor">                        }; \</span>
+<a name="l00295"></a>00295 <span class="preprocessor">                }</span>
+<a name="l00296"></a>00296 <span class="preprocessor"></span>
+<a name="l00298"></a>00298         <span class="comment">// matrix</span>
+<a name="l00299"></a>00299 
+<a name="l00300"></a>00300         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00301"></a>00301         <span class="keyword">struct </span>is_matrix
+<a name="l00302"></a>00302         {
+<a name="l00303"></a>00303                 <span class="keyword">enum</span> is_matrix_enum
+<a name="l00304"></a>00304                 {
+<a name="l00305"></a>00305                         _YES = 0,
+<a name="l00306"></a>00306                         _NO = 1
+<a name="l00307"></a>00307                 };
+<a name="l00308"></a>00308         };
+<a name="l00309"></a>00309 
+<a name="l00310"></a>00310 <span class="preprocessor">#define GLM_DETAIL_IS_MATRIX(T) \</span>
+<a name="l00311"></a>00311 <span class="preprocessor">        template &lt;&gt;                                     \</span>
+<a name="l00312"></a>00312 <span class="preprocessor">        struct is_matrix                        \</span>
+<a name="l00313"></a>00313 <span class="preprocessor">        {                                                       \</span>
+<a name="l00314"></a>00314 <span class="preprocessor">                enum is_matrix_enum             \</span>
+<a name="l00315"></a>00315 <span class="preprocessor">                {                                               \</span>
+<a name="l00316"></a>00316 <span class="preprocessor">                        _YES = 1,                       \</span>
+<a name="l00317"></a>00317 <span class="preprocessor">                        _NO = 0                         \</span>
+<a name="l00318"></a>00318 <span class="preprocessor">                };                                              \</span>
+<a name="l00319"></a>00319 <span class="preprocessor">        }</span>
+<a name="l00320"></a>00320 <span class="preprocessor"></span>
+<a name="l00322"></a>00322         <span class="comment">// type</span>
+<a name="l00323"></a>00323 
+<a name="l00324"></a>00324         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00325"></a>00325         <span class="keyword">struct </span>type
+<a name="l00326"></a>00326         {
+<a name="l00327"></a>00327                 <span class="keyword">enum</span> type_enum
+<a name="l00328"></a>00328                 {
+<a name="l00329"></a>00329                         is_float = is_float&lt;T&gt;::_YES,
+<a name="l00330"></a>00330                         is_int = is_int&lt;T&gt;::_YES,
+<a name="l00331"></a>00331                         is_uint = is_uint&lt;T&gt;::_YES,
+<a name="l00332"></a>00332                         is_bool = is_bool&lt;T&gt;::_YES
+<a name="l00333"></a>00333                 };
+<a name="l00334"></a>00334         };
+<a name="l00335"></a>00335         
+<a name="l00337"></a>00337         <span class="comment">// type</span>
+<a name="l00338"></a>00338         
+<a name="l00339"></a>00339         <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span>                                                     int8;
+<a name="l00340"></a>00340         <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span>                                            int16;
+<a name="l00341"></a>00341         <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span>                                                      int32;
+<a name="l00342"></a>00342         <span class="keyword">typedef</span> detail::sint64                                          int64;
+<a name="l00343"></a>00343         
+<a name="l00344"></a>00344         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>                                           uint8;
+<a name="l00345"></a>00345         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>                                          uint16;
+<a name="l00346"></a>00346         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                                            uint32;
+<a name="l00347"></a>00347         <span class="keyword">typedef</span> detail::uint64                                          uint64;
+<a name="l00348"></a>00348         
+<a name="l00349"></a>00349         <span class="keyword">typedef</span> detail::half                                            float16;
+<a name="l00350"></a>00350         <span class="keyword">typedef</span> <span class="keywordtype">float</span>                                                           float32;
+<a name="l00351"></a>00351         <span class="keyword">typedef</span> <span class="keywordtype">double</span>                                                          float64;
+<a name="l00352"></a>00352         
+<a name="l00354"></a>00354         <span class="comment">// float_or_int_trait </span>
+<a name="l00355"></a>00355 
+<a name="l00356"></a>00356         <span class="keyword">struct </span>float_or_int_value
+<a name="l00357"></a>00357         {
+<a name="l00358"></a>00358                 <span class="keyword">enum</span>
+<a name="l00359"></a>00359                 {
+<a name="l00360"></a>00360                         GLM_ERROR,
+<a name="l00361"></a>00361                         GLM_FLOAT,
+<a name="l00362"></a>00362                         GLM_INT
+<a name="l00363"></a>00363                 };
+<a name="l00364"></a>00364         };
+<a name="l00365"></a>00365 
+<a name="l00366"></a>00366         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00367"></a>00367         <span class="keyword">struct </span>float_or_int_trait
+<a name="l00368"></a>00368         {
+<a name="l00369"></a>00369                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_ERROR};
+<a name="l00370"></a>00370         };
+<a name="l00371"></a>00371 
+<a name="l00372"></a>00372         <span class="keyword">template</span> &lt;&gt;
+<a name="l00373"></a>00373         <span class="keyword">struct </span>float_or_int_trait&lt;int8&gt;
+<a name="l00374"></a>00374         {
+<a name="l00375"></a>00375                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_INT};
+<a name="l00376"></a>00376         };
+<a name="l00377"></a>00377 
+<a name="l00378"></a>00378         <span class="keyword">template</span> &lt;&gt;
+<a name="l00379"></a>00379         <span class="keyword">struct </span>float_or_int_trait&lt;int16&gt;
+<a name="l00380"></a>00380         {
+<a name="l00381"></a>00381                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_INT};
+<a name="l00382"></a>00382         };
+<a name="l00383"></a>00383 
+<a name="l00384"></a>00384         <span class="keyword">template</span> &lt;&gt;
+<a name="l00385"></a>00385         <span class="keyword">struct </span>float_or_int_trait&lt;int32&gt;
+<a name="l00386"></a>00386         {
+<a name="l00387"></a>00387                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_INT};
+<a name="l00388"></a>00388         };
+<a name="l00389"></a>00389 
+<a name="l00390"></a>00390         <span class="keyword">template</span> &lt;&gt;
+<a name="l00391"></a>00391         <span class="keyword">struct </span>float_or_int_trait&lt;int64&gt;
+<a name="l00392"></a>00392         {
+<a name="l00393"></a>00393                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_INT};
+<a name="l00394"></a>00394         };
+<a name="l00395"></a>00395 
+<a name="l00396"></a>00396         <span class="keyword">template</span> &lt;&gt;
+<a name="l00397"></a>00397         <span class="keyword">struct </span>float_or_int_trait&lt;uint8&gt;
+<a name="l00398"></a>00398         {
+<a name="l00399"></a>00399                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_INT};
+<a name="l00400"></a>00400         };
+<a name="l00401"></a>00401 
+<a name="l00402"></a>00402         <span class="keyword">template</span> &lt;&gt;
+<a name="l00403"></a>00403         <span class="keyword">struct </span>float_or_int_trait&lt;uint16&gt;
+<a name="l00404"></a>00404         {
+<a name="l00405"></a>00405                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_INT};
+<a name="l00406"></a>00406         };
+<a name="l00407"></a>00407 
+<a name="l00408"></a>00408         <span class="keyword">template</span> &lt;&gt;
+<a name="l00409"></a>00409         <span class="keyword">struct </span>float_or_int_trait&lt;uint32&gt;
+<a name="l00410"></a>00410         {
+<a name="l00411"></a>00411                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_INT};
+<a name="l00412"></a>00412         };
+<a name="l00413"></a>00413 
+<a name="l00414"></a>00414         <span class="keyword">template</span> &lt;&gt;
+<a name="l00415"></a>00415         <span class="keyword">struct </span>float_or_int_trait&lt;uint64&gt;
+<a name="l00416"></a>00416         {
+<a name="l00417"></a>00417                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_INT};
+<a name="l00418"></a>00418         };
+<a name="l00419"></a>00419 
+<a name="l00420"></a>00420         <span class="keyword">template</span> &lt;&gt;
+<a name="l00421"></a>00421         <span class="keyword">struct </span>float_or_int_trait&lt;float16&gt;
+<a name="l00422"></a>00422         {
+<a name="l00423"></a>00423                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_FLOAT};
+<a name="l00424"></a>00424         };
+<a name="l00425"></a>00425 
+<a name="l00426"></a>00426         <span class="keyword">template</span> &lt;&gt;
+<a name="l00427"></a>00427         <span class="keyword">struct </span>float_or_int_trait&lt;float32&gt;
+<a name="l00428"></a>00428         {
+<a name="l00429"></a>00429                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_FLOAT};
+<a name="l00430"></a>00430         };
+<a name="l00431"></a>00431 
+<a name="l00432"></a>00432         <span class="keyword">template</span> &lt;&gt;
+<a name="l00433"></a>00433         <span class="keyword">struct </span>float_or_int_trait&lt;float64&gt;
+<a name="l00434"></a>00434         {
+<a name="l00435"></a>00435                 <span class="keyword">enum</span>{ID = float_or_int_value::GLM_FLOAT};
+<a name="l00436"></a>00436         };
+<a name="l00437"></a>00437 
+<a name="l00438"></a>00438 }<span class="comment">//namespace detail</span>
+<a name="l00439"></a>00439 }<span class="comment">//namespace glm</span>
+<a name="l00440"></a>00440 
+<a name="l00441"></a>00441 <span class="preprocessor">#if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2005))</span>
+<a name="l00442"></a>00442 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_DEPRECATED __declspec(deprecated)</span>
+<a name="l00443"></a>00443 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGN(x) __declspec(align(x)) </span>
+<a name="l00444"></a>00444 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct </span>
+<a name="l00445"></a>00445 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT __declspec(restrict)</span>
+<a name="l00446"></a>00446 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT_VAR __restrict</span>
+<a name="l00447"></a>00447 <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>
+<a name="l00448"></a>00448 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_DEPRECATED __attribute__((__deprecated__))</span>
+<a name="l00449"></a>00449 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGN(x) __attribute__((aligned(x)))</span>
+<a name="l00450"></a>00450 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span>
+<a name="l00451"></a>00451 <span class="preprocessor"></span><span class="preprocessor">#       if(GLM_COMPILER &gt;= GLM_COMPILER_GCC33)</span>
+<a name="l00452"></a>00452 <span class="preprocessor"></span><span class="preprocessor">#               define GLM_RESTRICT __restrict__</span>
+<a name="l00453"></a>00453 <span class="preprocessor"></span><span class="preprocessor">#               define GLM_RESTRICT_VAR __restrict__</span>
+<a name="l00454"></a>00454 <span class="preprocessor"></span><span class="preprocessor">#       else</span>
+<a name="l00455"></a>00455 <span class="preprocessor"></span><span class="preprocessor">#               define GLM_RESTRICT</span>
+<a name="l00456"></a>00456 <span class="preprocessor"></span><span class="preprocessor">#               define GLM_RESTRICT_VAR</span>
+<a name="l00457"></a>00457 <span class="preprocessor"></span><span class="preprocessor">#       endif</span>
+<a name="l00458"></a>00458 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT __restrict__</span>
+<a name="l00459"></a>00459 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT_VAR __restrict__</span>
+<a name="l00460"></a>00460 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00461"></a>00461 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_DEPRECATED</span>
+<a name="l00462"></a>00462 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGN</span>
+<a name="l00463"></a>00463 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGNED_STRUCT(x) </span>
+<a name="l00464"></a>00464 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT</span>
+<a name="l00465"></a>00465 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT_VAR</span>
+<a name="l00466"></a>00466 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_COMPILER</span>
+<a name="l00467"></a>00467 <span class="preprocessor"></span>
+<a name="l00468"></a>00468 <span class="preprocessor">#endif//glm_core_detail</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 20 - 22
doc/api-0.9.3/a00004.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_swizzle_base2&lt; ValueType, VecType, N, E0, E1, E2, E3, 1 &gt; Struct Reference</title>
+<title>_fixes.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,49 +32,46 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00004.html">_swizzle_base2&lt; ValueType, VecType, N, E0, E1, E2, E3, 1 &gt;</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_swizzle_base2&lt; ValueType, VecType, N, E0, E1, E2, E3, 1 &gt; Struct Reference</div>  </div>
-</div>
+<div class="title">_fixes.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::_swizzle_base2&lt; ValueType, VecType, N, E0, E1, E2, E3, 1 &gt;" --><!-- doxytag: inherits="glm::detail::_swizzle_base1" -->
-<p>Inherits _swizzle_base1&lt; ValueType, VecType, E0, E1, E2, E3, N &gt;.</p>
 
-<p><a href="a00234.html">List of all members.</a></p>
+<p><a href="a00004_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Specialization for swizzles containing duplicate elements. These cannot be modified. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2011-02-21 / 2011-11-22 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+
+<p>Definition in file <a class="el" href="a00004_source.html">_fixes.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 116 - 0
doc/api-0.9.3/a00004_source.html

@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>_fixes.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">_fixes.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00004.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00030"></a>00030 
+<a name="l00032"></a>00032 <span class="preprocessor">#ifdef max</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#undef max</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00037"></a>00037 <span class="preprocessor">#ifdef min</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#undef min</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="preprocessor">#ifdef isnan</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#undef isnan</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span>
+<a name="l00047"></a>00047 <span class="preprocessor">#ifdef isinf</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#undef isinf</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span>
+<a name="l00052"></a>00052 <span class="preprocessor">#ifdef log2</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#undef log2</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 21 - 21
doc/api-0.9.3/a00005.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>half Class Reference</title>
+<title>_swizzle.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,46 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00005.html">half</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">half Class Reference<div class="ingroups"><a class="el" href="a00158.html">GLM_GTC_half_float: Half-precision floating-point based types and functions</a></div></div>  </div>
-</div>
+<div class="title">_swizzle.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::half" -->
-<p><a href="a00235.html">List of all members.</a></p>
+
+<p><a href="a00005_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>16-bit floating point type. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2006-04-20 / 2011-02-16 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+
+<p>Definition in file <a class="el" href="a00005_source.html">_swizzle.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 903 - 0
doc/api-0.9.3/a00005_source.html

@@ -0,0 +1,903 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>_swizzle.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">_swizzle.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00005.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_core_swizzle</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_swizzle</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00006.html" title="OpenGL Mathematics (glm.g-truc.net)">_swizzle_func.hpp</a>&quot;</span>
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 <span class="keyword">namespace </span>glm
+<a name="l00035"></a>00035 {
+<a name="l00036"></a>00036         <span class="keyword">enum</span> comp
+<a name="l00037"></a>00037         {
+<a name="l00038"></a>00038                 X = 0,
+<a name="l00039"></a>00039                 R = 0,
+<a name="l00040"></a>00040                 S = 0,
+<a name="l00041"></a>00041                 Y = 1,
+<a name="l00042"></a>00042                 G = 1,
+<a name="l00043"></a>00043                 T = 1,
+<a name="l00044"></a>00044                 Z = 2,
+<a name="l00045"></a>00045                 B = 2,
+<a name="l00046"></a>00046                 P = 2,
+<a name="l00047"></a>00047                 W = 3,
+<a name="l00048"></a>00048                 A = 3,
+<a name="l00049"></a>00049                 Q = 3
+<a name="l00050"></a>00050         };
+<a name="l00051"></a>00051 }<span class="comment">//namespace glm</span>
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053 <span class="keyword">namespace </span>glm{
+<a name="l00054"></a>00054 <span class="keyword">namespace </span>detail
+<a name="l00055"></a>00055 {
+<a name="l00056"></a>00056     <span class="comment">// Internal class for implementing swizzle operators</span>
+<a name="l00057"></a>00057     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;
+<a name="l00058"></a>00058     <span class="keyword">struct </span>_swizzle_base0
+<a name="l00059"></a>00059     {
+<a name="l00060"></a>00060         <span class="keyword">typedef</span> T       value_type;
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062     <span class="keyword">protected</span>:
+<a name="l00063"></a>00063         value_type&amp;         elem   (<span class="keywordtype">size_t</span> i)       { <span class="keywordflow">return</span> (reinterpret_cast&lt;value_type*&gt;(_buffer))[i]; }
+<a name="l00064"></a>00064         <span class="keyword">const</span> value_type&amp;   elem   (<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (reinterpret_cast&lt;const value_type*&gt;(_buffer))[i]; }
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066         <span class="comment">// Use an opaque buffer to *ensure* the compiler doesn&#39;t call a constructor.</span>
+<a name="l00067"></a>00067         <span class="comment">// The size 1 buffer is assumed to aligned to the actual members so that the</span>
+<a name="l00068"></a>00068         <span class="comment">// elem() </span>
+<a name="l00069"></a>00069         <span class="keywordtype">char</span>    _buffer[1];
+<a name="l00070"></a>00070     };
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> N&gt;
+<a name="l00073"></a>00073     <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0&lt;T,N&gt;
+<a name="l00074"></a>00074     {
+<a name="l00075"></a>00075     };
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;
+<a name="l00078"></a>00078     <span class="keyword">struct </span>_swizzle_base1&lt;T,V,E0,E1,-1,-2,2&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T,2&gt;
+<a name="l00079"></a>00079     {
+<a name="l00080"></a>00080         V operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1)); }
+<a name="l00081"></a>00081     };
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;
+<a name="l00084"></a>00084     <span class="keyword">struct </span>_swizzle_base1&lt;T,V,E0,E1,E2,-1,3&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T,3&gt;
+<a name="l00085"></a>00085     {
+<a name="l00086"></a>00086         V operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2)); }
+<a name="l00087"></a>00087     };
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;
+<a name="l00090"></a>00090     <span class="keyword">struct </span>_swizzle_base1&lt;T,V,E0,E1,E2,E3,4&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T,4&gt;
+<a name="l00091"></a>00091     { 
+<a name="l00092"></a>00092         V operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2), this-&gt;elem(E3)); }
+<a name="l00093"></a>00093     };
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095     <span class="comment">// Internal class for implementing swizzle operators</span>
+<a name="l00096"></a>00096     <span class="comment">/*</span>
+<a name="l00097"></a>00097 <span class="comment">        Template parameters:</span>
+<a name="l00098"></a>00098 <span class="comment"></span>
+<a name="l00099"></a>00099 <span class="comment">        ValueType = type of scalar values (e.g. float, double)</span>
+<a name="l00100"></a>00100 <span class="comment">        VecType   = class the swizzle is applies to (e.g. tvec3&lt;float&gt;)</span>
+<a name="l00101"></a>00101 <span class="comment">        N         = number of components in the vector (e.g. 3)</span>
+<a name="l00102"></a>00102 <span class="comment">        E0...3    = what index the n-th element of this swizzle refers to in the unswizzled vec</span>
+<a name="l00103"></a>00103 <span class="comment">        </span>
+<a name="l00104"></a>00104 <span class="comment">        DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span>
+<a name="l00105"></a>00105 <span class="comment">            containing duplicate elements so that they cannot be used as r-values).            </span>
+<a name="l00106"></a>00106 <span class="comment">    */</span>
+<a name="l00107"></a>00107     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEMENTS&gt;
+<a name="l00108"></a>00108     <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1&lt;ValueType,VecType,E0,E1,E2,E3,N&gt;
+<a name="l00109"></a>00109     {
+<a name="l00110"></a>00110                 <span class="keyword">typedef</span> VecType vec_type;
+<a name="l00111"></a>00111                 <span class="keyword">typedef</span> ValueType value_type;
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113                 _swizzle_base2&amp; operator= (<span class="keyword">const</span> ValueType&amp; t)
+<a name="l00114"></a>00114                 {
+<a name="l00115"></a>00115                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)
+<a name="l00116"></a>00116                                 (*<span class="keyword">this</span>)[i] = t;
+<a name="l00117"></a>00117                         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00118"></a>00118                 }
+<a name="l00119"></a>00119 
+<a name="l00120"></a>00120                 _swizzle_base2&amp; operator= (<span class="keyword">const</span> VecType&amp; that)
+<a name="l00121"></a>00121                 {
+<a name="l00122"></a>00122                         <span class="keyword">struct </span>op { 
+<a name="l00123"></a>00123                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00160.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e = t; } 
+<a name="l00124"></a>00124                         };
+<a name="l00125"></a>00125                         _apply_op(that, op());
+<a name="l00126"></a>00126                         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00127"></a>00127                 }
+<a name="l00128"></a>00128 
+<a name="l00129"></a>00129                 <span class="keywordtype">void</span> operator -= (<span class="keyword">const</span> VecType&amp; that)
+<a name="l00130"></a>00130                 {
+<a name="l00131"></a>00131                         <span class="keyword">struct </span>op { 
+<a name="l00132"></a>00132                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00160.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e -= t; } 
+<a name="l00133"></a>00133                         };
+<a name="l00134"></a>00134                         _apply_op(that, op());
+<a name="l00135"></a>00135                 }
+<a name="l00136"></a>00136 
+<a name="l00137"></a>00137                 <span class="keywordtype">void</span> operator += (<span class="keyword">const</span> VecType&amp; that)
+<a name="l00138"></a>00138                 {
+<a name="l00139"></a>00139                         <span class="keyword">struct </span>op { 
+<a name="l00140"></a>00140                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00160.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e += t; } 
+<a name="l00141"></a>00141                         };
+<a name="l00142"></a>00142                         _apply_op(that, op());
+<a name="l00143"></a>00143                 }
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145                 <span class="keywordtype">void</span> operator *= (<span class="keyword">const</span> VecType&amp; that)
+<a name="l00146"></a>00146                 {
+<a name="l00147"></a>00147                         <span class="keyword">struct </span>op { 
+<a name="l00148"></a>00148                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00160.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e *= t; } 
+<a name="l00149"></a>00149                         };
+<a name="l00150"></a>00150                         _apply_op(that, op());
+<a name="l00151"></a>00151                 }
+<a name="l00152"></a>00152 
+<a name="l00153"></a>00153                 <span class="keywordtype">void</span> operator /= (<span class="keyword">const</span> VecType&amp; that)
+<a name="l00154"></a>00154                 {
+<a name="l00155"></a>00155                         <span class="keyword">struct </span>op { 
+<a name="l00156"></a>00156                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00160.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e /= t; } 
+<a name="l00157"></a>00157                         };
+<a name="l00158"></a>00158                         _apply_op(that, op());
+<a name="l00159"></a>00159                 }
+<a name="l00160"></a>00160 
+<a name="l00161"></a>00161                 value_type&amp; operator[]  (<span class="keywordtype">size_t</span> i)
+<a name="l00162"></a>00162                 {
+<a name="l00163"></a>00163                         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };
+<a name="l00164"></a>00164                         <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);
+<a name="l00165"></a>00165                 }
+<a name="l00166"></a>00166                 value_type  operator[]  (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span>
+<a name="l00167"></a>00167 <span class="keyword">                </span>{
+<a name="l00168"></a>00168                         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };
+<a name="l00169"></a>00169                         <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);
+<a name="l00170"></a>00170                 }
+<a name="l00171"></a>00171         <span class="keyword">protected</span>:
+<a name="l00172"></a>00172                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00173"></a>00173                 <span class="keywordtype">void</span> _apply_op(<span class="keyword">const</span> VecType&amp; that, T op)
+<a name="l00174"></a>00174                 {
+<a name="l00175"></a>00175                         <span class="comment">// Make a copy of the data in this == &amp;that.</span>
+<a name="l00176"></a>00176                         <span class="comment">// The copier should optimize out the copy in cases where the function is</span>
+<a name="l00177"></a>00177                         <span class="comment">// properly inlined and the copy is not necessary.</span>
+<a name="l00178"></a>00178                         ValueType t[N];
+<a name="l00179"></a>00179                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)
+<a name="l00180"></a>00180                                 t[i] = that[i];
+<a name="l00181"></a>00181                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)
+<a name="l00182"></a>00182                                 op( (*<span class="keyword">this</span>)[i], t[i] );
+<a name="l00183"></a>00183                 }
+<a name="l00184"></a>00184     };
+<a name="l00185"></a>00185 
+<a name="l00186"></a>00186         <span class="comment">// Specialization for swizzles containing duplicate elements.  These cannot be modified.</span>
+<a name="l00187"></a>00187         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;
+<a name="l00188"></a>00188         <span class="keyword">struct </span>_swizzle_base2&lt;ValueType,VecType,N,E0,E1,E2,E3,1&gt; : <span class="keyword">public</span> _swizzle_base1&lt;ValueType,VecType,E0,E1,E2,E3,N&gt;
+<a name="l00189"></a>00189         {
+<a name="l00190"></a>00190                 <span class="keyword">typedef</span> VecType         vec_type;        
+<a name="l00191"></a>00191                 <span class="keyword">typedef</span> ValueType       value_type;
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193                 <span class="keyword">struct </span>Stub {};
+<a name="l00194"></a>00194                 _swizzle_base2&amp; operator= (<span class="keyword">const</span> Stub&amp; that) {}
+<a name="l00195"></a>00195 
+<a name="l00196"></a>00196                 value_type  operator[]  (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span>
+<a name="l00197"></a>00197 <span class="keyword">                </span>{
+<a name="l00198"></a>00198                         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };
+<a name="l00199"></a>00199                         <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);
+<a name="l00200"></a>00200                 } 
+<a name="l00201"></a>00201         };
+<a name="l00202"></a>00202 
+<a name="l00203"></a>00203         <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N,<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> E0,<span class="keywordtype">int</span> E1,<span class="keywordtype">int</span> E2,<span class="keywordtype">int</span> E3&gt;
+<a name="l00204"></a>00204         <span class="keyword">struct </span>swizzle : <span class="keyword">public</span> _swizzle_base2&lt;ValueType,VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)&gt;
+<a name="l00205"></a>00205         {
+<a name="l00206"></a>00206                 <span class="keyword">typedef</span> _swizzle_base2&lt;ValueType,VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)&gt; base_type;
+<a name="l00207"></a>00207 
+<a name="l00208"></a>00208                 <span class="keyword">using</span> base_type::operator=;
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210                 operator VecType ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }
+<a name="l00211"></a>00211         };
+<a name="l00212"></a>00212 
+<a name="l00213"></a>00213 <span class="comment">//</span>
+<a name="l00214"></a>00214 <span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span>
+<a name="l00215"></a>00215 <span class="comment">//</span>
+<a name="l00216"></a>00216 <span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE1   template &lt;int N, typename T, typename V, int E0, int E1, int E2, int E3&gt;</span>
+<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE2   template &lt;int N, typename T, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3&gt;</span>
+<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor">#define _GLM_SWIZZLE_TYPE1       glm::detail::swizzle&lt;N,T,V,E0,E1,E2,E3&gt;</span>
+<a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#define _GLM_SWIZZLE_TYPE2       glm::detail::swizzle&lt;N,T,V,F0,F1,F2,F3&gt;</span>
+<a name="l00220"></a>00220 <span class="preprocessor"></span>
+<a name="l00221"></a>00221 <span class="comment">//</span>
+<a name="l00222"></a>00222 <span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span>
+<a name="l00223"></a>00223 <span class="comment">//</span>
+<a name="l00224"></a>00224 <span class="preprocessor">#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                 \</span>
+<a name="l00225"></a>00225 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE2                                                          \</span>
+<a name="l00226"></a>00226 <span class="preprocessor">        V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b)  \</span>
+<a name="l00227"></a>00227 <span class="preprocessor">        {                                                                               \</span>
+<a name="l00228"></a>00228 <span class="preprocessor">                return a() OPERAND b();                                                     \</span>
+<a name="l00229"></a>00229 <span class="preprocessor">        }                                                                               \</span>
+<a name="l00230"></a>00230 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
+<a name="l00231"></a>00231 <span class="preprocessor">        V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const V&amp; b)                   \</span>
+<a name="l00232"></a>00232 <span class="preprocessor">        {                                                                               \</span>
+<a name="l00233"></a>00233 <span class="preprocessor">                return a() OPERAND b;                                                       \</span>
+<a name="l00234"></a>00234 <span class="preprocessor">        }                                                                               \</span>
+<a name="l00235"></a>00235 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
+<a name="l00236"></a>00236 <span class="preprocessor">        V operator OPERAND ( const V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b)                   \</span>
+<a name="l00237"></a>00237 <span class="preprocessor">        {                                                                               \</span>
+<a name="l00238"></a>00238 <span class="preprocessor">                return a OPERAND b();                                                       \</span>
+<a name="l00239"></a>00239 <span class="preprocessor">        }</span>
+<a name="l00240"></a>00240 <span class="preprocessor"></span>
+<a name="l00241"></a>00241 <span class="comment">//</span>
+<a name="l00242"></a>00242 <span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span>
+<a name="l00243"></a>00243 <span class="comment">//</span>
+<a name="l00244"></a>00244 <span class="preprocessor">#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                 \</span>
+<a name="l00245"></a>00245 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
+<a name="l00246"></a>00246 <span class="preprocessor">        V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const T&amp; b)                   \</span>
+<a name="l00247"></a>00247 <span class="preprocessor">        {                                                                               \</span>
+<a name="l00248"></a>00248 <span class="preprocessor">                return a() OPERAND b;                                                       \</span>
+<a name="l00249"></a>00249 <span class="preprocessor">        }                                                                               \</span>
+<a name="l00250"></a>00250 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
+<a name="l00251"></a>00251 <span class="preprocessor">        V operator OPERAND ( const T&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b)                   \</span>
+<a name="l00252"></a>00252 <span class="preprocessor">        {                                                                               \</span>
+<a name="l00253"></a>00253 <span class="preprocessor">                return a OPERAND b();                                                       \</span>
+<a name="l00254"></a>00254 <span class="preprocessor">        }</span>
+<a name="l00255"></a>00255 <span class="preprocessor"></span>
+<a name="l00256"></a>00256 <span class="comment">//</span>
+<a name="l00257"></a>00257 <span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span>
+<a name="l00258"></a>00258 <span class="comment">//</span>
+<a name="l00259"></a>00259 <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION)                          \</span>
+<a name="l00260"></a>00260 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
+<a name="l00261"></a>00261 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a)  \</span>
+<a name="l00262"></a>00262 <span class="preprocessor">        {                                                                               \</span>
+<a name="l00263"></a>00263 <span class="preprocessor">                return FUNCTION(a());                                                       \</span>
+<a name="l00264"></a>00264 <span class="preprocessor">        }</span>
+<a name="l00265"></a>00265 <span class="preprocessor"></span>
+<a name="l00266"></a>00266 <span class="comment">//</span>
+<a name="l00267"></a>00267 <span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span>
+<a name="l00268"></a>00268 <span class="comment">//</span>
+<a name="l00269"></a>00269 <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION)                                                      \</span>
+<a name="l00270"></a>00270 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE2                                                                                      \</span>
+<a name="l00271"></a>00271 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b) \</span>
+<a name="l00272"></a>00272 <span class="preprocessor">        {                                                                                                           \</span>
+<a name="l00273"></a>00273 <span class="preprocessor">                return FUNCTION(a(), b());                                                                              \</span>
+<a name="l00274"></a>00274 <span class="preprocessor">        }                                                                                                           \</span>
+<a name="l00275"></a>00275 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                      \</span>
+<a name="l00276"></a>00276 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span>
+<a name="l00277"></a>00277 <span class="preprocessor">        {                                                                                                           \</span>
+<a name="l00278"></a>00278 <span class="preprocessor">                return FUNCTION(a(), b());                                                                              \</span>
+<a name="l00279"></a>00279 <span class="preprocessor">        }                                                                                                           \</span>
+<a name="l00280"></a>00280 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                      \</span>
+<a name="l00281"></a>00281 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const typename V&amp; b)         \</span>
+<a name="l00282"></a>00282 <span class="preprocessor">        {                                                                                                           \</span>
+<a name="l00283"></a>00283 <span class="preprocessor">                return FUNCTION(a(), b);                                                                                \</span>
+<a name="l00284"></a>00284 <span class="preprocessor">        }                                                                                                           \</span>
+<a name="l00285"></a>00285 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                      \</span>
+<a name="l00286"></a>00286 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b)                  \</span>
+<a name="l00287"></a>00287 <span class="preprocessor">        {                                                                                                           \</span>
+<a name="l00288"></a>00288 <span class="preprocessor">                return FUNCTION(a, b());                                                                                \</span>
+<a name="l00289"></a>00289 <span class="preprocessor">        } </span>
+<a name="l00290"></a>00290 <span class="preprocessor"></span>
+<a name="l00291"></a>00291 <span class="comment">//</span>
+<a name="l00292"></a>00292 <span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span>
+<a name="l00293"></a>00293 <span class="comment">//</span>
+<a name="l00294"></a>00294 <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION)                                                             \</span>
+<a name="l00295"></a>00295 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE2                                                                                                    \</span>
+<a name="l00296"></a>00296 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b, const T&amp; c)   \</span>
+<a name="l00297"></a>00297 <span class="preprocessor">        {                                                                                                                         \</span>
+<a name="l00298"></a>00298 <span class="preprocessor">                return FUNCTION(a(), b(), c);                                                                                         \</span>
+<a name="l00299"></a>00299 <span class="preprocessor">        }                                                                                                                         \</span>
+<a name="l00300"></a>00300 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span>
+<a name="l00301"></a>00301 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c)   \</span>
+<a name="l00302"></a>00302 <span class="preprocessor">        {                                                                                                                         \</span>
+<a name="l00303"></a>00303 <span class="preprocessor">                return FUNCTION(a(), b(), c);                                                                                         \</span>
+<a name="l00304"></a>00304 <span class="preprocessor">        }                                                                                                                         \</span>
+<a name="l00305"></a>00305 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span>
+<a name="l00306"></a>00306 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const typename S0::vec_type&amp; b, const T&amp; c)\</span>
+<a name="l00307"></a>00307 <span class="preprocessor">        {                                                                                                                         \</span>
+<a name="l00308"></a>00308 <span class="preprocessor">                return FUNCTION(a(), b, c);                                                                                           \</span>
+<a name="l00309"></a>00309 <span class="preprocessor">        }                                                                                                                         \</span>
+<a name="l00310"></a>00310 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span>
+<a name="l00311"></a>00311 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c)           \</span>
+<a name="l00312"></a>00312 <span class="preprocessor">        {                                                                                                                         \</span>
+<a name="l00313"></a>00313 <span class="preprocessor">                return FUNCTION(a, b(), c);                                                                                           \</span>
+<a name="l00314"></a>00314 <span class="preprocessor">        } </span>
+<a name="l00315"></a>00315 <span class="preprocessor"></span> 
+<a name="l00316"></a>00316 }<span class="comment">//namespace detail </span>
+<a name="l00317"></a>00317 }<span class="comment">//namespace glm</span>
+<a name="l00318"></a>00318 
+<a name="l00319"></a>00319 <span class="keyword">namespace </span>glm
+<a name="l00320"></a>00320 {
+<a name="l00321"></a>00321         <span class="keyword">namespace </span>detail
+<a name="l00322"></a>00322         {
+<a name="l00323"></a>00323                 _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
+<a name="l00324"></a>00324                 _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
+<a name="l00325"></a>00325         
+<a name="l00326"></a>00326                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
+<a name="l00327"></a>00327                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
+<a name="l00328"></a>00328                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
+<a name="l00329"></a>00329                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
+<a name="l00330"></a>00330         }
+<a name="l00331"></a>00331 
+<a name="l00332"></a>00332     <span class="comment">//</span>
+<a name="l00333"></a>00333     <span class="comment">// Swizzles are distinct types from the unswizzled type.  The below macros will</span>
+<a name="l00334"></a>00334     <span class="comment">// provide template specializations for the swizzle types for the given functions</span>
+<a name="l00335"></a>00335     <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span>
+<a name="l00336"></a>00336     <span class="comment">// the function.</span>
+<a name="l00337"></a>00337     <span class="comment">//</span>
+<a name="l00338"></a>00338     <span class="comment">// The alternative is to use the operator()() when calling the function in order</span>
+<a name="l00339"></a>00339     <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span>
+<a name="l00340"></a>00340     <span class="comment">//</span>
+<a name="l00341"></a>00341 
+<a name="l00342"></a>00342     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    abs);</span>
+<a name="l00343"></a>00343     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acos);</span>
+<a name="l00344"></a>00344     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acosh);</span>
+<a name="l00345"></a>00345     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    all);</span>
+<a name="l00346"></a>00346     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    any);</span>
+<a name="l00347"></a>00347     
+<a name="l00348"></a>00348     <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type,  dot);</span>
+<a name="l00349"></a>00349     <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    cross);</span>
+<a name="l00350"></a>00350     <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    step);    </span>
+<a name="l00351"></a>00351     <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span>
+<a name="l00352"></a>00352 }
+<a name="l00353"></a>00353 
+<a name="l00354"></a>00354 <span class="preprocessor">#define _GLM_SWIZZLE2_2_MEMBERS(T,P,E0,E1) \</span>
+<a name="l00355"></a>00355 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,0,-1,-2&gt; E0 ## E0; }; \</span>
+<a name="l00356"></a>00356 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,1,-1,-2&gt; E0 ## E1; }; \</span>
+<a name="l00357"></a>00357 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,0,-1,-2&gt; E1 ## E0; }; \</span>
+<a name="l00358"></a>00358 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,1,-1,-2&gt; E1 ## E1; }; </span>
+<a name="l00359"></a>00359 <span class="preprocessor"></span>
+<a name="l00360"></a>00360 <span class="preprocessor">#define _GLM_SWIZZLE2_3_MEMBERS(T,P2,E0,E1) \</span>
+<a name="l00361"></a>00361 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span>
+<a name="l00362"></a>00362 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span>
+<a name="l00363"></a>00363 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span>
+<a name="l00364"></a>00364 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span>
+<a name="l00365"></a>00365 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span>
+<a name="l00366"></a>00366 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span>
+<a name="l00367"></a>00367 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span>
+<a name="l00368"></a>00368 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,1,1,1,-1&gt; E1 ## E1 ## E1; };  </span>
+<a name="l00369"></a>00369 <span class="preprocessor"></span>
+<a name="l00370"></a>00370 <span class="preprocessor">#define _GLM_SWIZZLE2_4_MEMBERS(T,P2,E0,E1) \</span>
+<a name="l00371"></a>00371 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00372"></a>00372 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00373"></a>00373 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00374"></a>00374 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00375"></a>00375 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00376"></a>00376 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00377"></a>00377 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00378"></a>00378 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span>
+<a name="l00379"></a>00379 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00380"></a>00380 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00381"></a>00381 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00382"></a>00382 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00383"></a>00383 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00384"></a>00384 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00385"></a>00385 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00386"></a>00386 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,1&gt; E1 ## E1 ## E1 ## E1; };  </span>
+<a name="l00387"></a>00387 <span class="preprocessor"></span>
+<a name="l00388"></a>00388 <span class="preprocessor">#define _GLM_SWIZZLE3_2_MEMBERS(T,P2,E0,E1,E2) \</span>
+<a name="l00389"></a>00389 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,0,0,-1,-2&gt; E0 ## E0; }; \</span>
+<a name="l00390"></a>00390 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,0,1,-1,-2&gt; E0 ## E1; }; \</span>
+<a name="l00391"></a>00391 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,0,2,-1,-2&gt; E0 ## E2; }; \</span>
+<a name="l00392"></a>00392 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,1,0,-1,-2&gt; E1 ## E0; }; \</span>
+<a name="l00393"></a>00393 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,1,1,-1,-2&gt; E1 ## E1; }; \</span>
+<a name="l00394"></a>00394 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,1,2,-1,-2&gt; E1 ## E2; }; \</span>
+<a name="l00395"></a>00395 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,2,0,-1,-2&gt; E2 ## E0; }; \</span>
+<a name="l00396"></a>00396 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,2,1,-1,-2&gt; E2 ## E1; }; \</span>
+<a name="l00397"></a>00397 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,2,2,-1,-2&gt; E2 ## E2; }; </span>
+<a name="l00398"></a>00398 <span class="preprocessor"></span>
+<a name="l00399"></a>00399 <span class="preprocessor">#define _GLM_SWIZZLE3_3_MEMBERS(T,P,E0,E1,E2) \</span>
+<a name="l00400"></a>00400 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span>
+<a name="l00401"></a>00401 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span>
+<a name="l00402"></a>00402 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span>
+<a name="l00403"></a>00403 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span>
+<a name="l00404"></a>00404 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span>
+<a name="l00405"></a>00405 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span>
+<a name="l00406"></a>00406 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span>
+<a name="l00407"></a>00407 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span>
+<a name="l00408"></a>00408 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span>
+<a name="l00409"></a>00409 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span>
+<a name="l00410"></a>00410 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span>
+<a name="l00411"></a>00411 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span>
+<a name="l00412"></a>00412 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span>
+<a name="l00413"></a>00413 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span>
+<a name="l00414"></a>00414 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span>
+<a name="l00415"></a>00415 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span>
+<a name="l00416"></a>00416 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span>
+<a name="l00417"></a>00417 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span>
+<a name="l00418"></a>00418 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span>
+<a name="l00419"></a>00419 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span>
+<a name="l00420"></a>00420 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span>
+<a name="l00421"></a>00421 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span>
+<a name="l00422"></a>00422 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span>
+<a name="l00423"></a>00423 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span>
+<a name="l00424"></a>00424 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span>
+<a name="l00425"></a>00425 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span>
+<a name="l00426"></a>00426 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,2,-1&gt; E2 ## E2 ## E2; };</span>
+<a name="l00427"></a>00427 <span class="preprocessor"></span>
+<a name="l00428"></a>00428 <span class="preprocessor">#define _GLM_SWIZZLE3_4_MEMBERS(T,P2,E0,E1,E2) \</span>
+<a name="l00429"></a>00429 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00430"></a>00430 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00431"></a>00431 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span>
+<a name="l00432"></a>00432 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00433"></a>00433 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00434"></a>00434 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span>
+<a name="l00435"></a>00435 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span>
+<a name="l00436"></a>00436 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span>
+<a name="l00437"></a>00437 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span>
+<a name="l00438"></a>00438 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00439"></a>00439 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00440"></a>00440 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span>
+<a name="l00441"></a>00441 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00442"></a>00442 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span>
+<a name="l00443"></a>00443 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span>
+<a name="l00444"></a>00444 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span>
+<a name="l00445"></a>00445 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span>
+<a name="l00446"></a>00446 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span>
+<a name="l00447"></a>00447 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span>
+<a name="l00448"></a>00448 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span>
+<a name="l00449"></a>00449 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span>
+<a name="l00450"></a>00450 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span>
+<a name="l00451"></a>00451 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span>
+<a name="l00452"></a>00452 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span>
+<a name="l00453"></a>00453 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span>
+<a name="l00454"></a>00454 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span>
+<a name="l00455"></a>00455 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span>
+<a name="l00456"></a>00456 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00457"></a>00457 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00458"></a>00458 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span>
+<a name="l00459"></a>00459 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00460"></a>00460 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00461"></a>00461 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span>
+<a name="l00462"></a>00462 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span>
+<a name="l00463"></a>00463 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span>
+<a name="l00464"></a>00464 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span>
+<a name="l00465"></a>00465 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00466"></a>00466 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00467"></a>00467 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span>
+<a name="l00468"></a>00468 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00469"></a>00469 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span>
+<a name="l00470"></a>00470 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span>
+<a name="l00471"></a>00471 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span>
+<a name="l00472"></a>00472 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span>
+<a name="l00473"></a>00473 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span>
+<a name="l00474"></a>00474 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span>
+<a name="l00475"></a>00475 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span>
+<a name="l00476"></a>00476 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span>
+<a name="l00477"></a>00477 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span>
+<a name="l00478"></a>00478 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span>
+<a name="l00479"></a>00479 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span>
+<a name="l00480"></a>00480 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span>
+<a name="l00481"></a>00481 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span>
+<a name="l00482"></a>00482 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span>
+<a name="l00483"></a>00483 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00484"></a>00484 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00485"></a>00485 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span>
+<a name="l00486"></a>00486 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00487"></a>00487 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00488"></a>00488 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span>
+<a name="l00489"></a>00489 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span>
+<a name="l00490"></a>00490 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span>
+<a name="l00491"></a>00491 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span>
+<a name="l00492"></a>00492 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00493"></a>00493 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00494"></a>00494 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span>
+<a name="l00495"></a>00495 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00496"></a>00496 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span>
+<a name="l00497"></a>00497 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span>
+<a name="l00498"></a>00498 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span>
+<a name="l00499"></a>00499 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span>
+<a name="l00500"></a>00500 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span>
+<a name="l00501"></a>00501 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span>
+<a name="l00502"></a>00502 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span>
+<a name="l00503"></a>00503 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span>
+<a name="l00504"></a>00504 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span>
+<a name="l00505"></a>00505 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span>
+<a name="l00506"></a>00506 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span>
+<a name="l00507"></a>00507 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span>
+<a name="l00508"></a>00508 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span>
+<a name="l00509"></a>00509 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; </span>
+<a name="l00510"></a>00510 <span class="preprocessor"></span>
+<a name="l00511"></a>00511 <span class="preprocessor">#define _GLM_SWIZZLE4_2_MEMBERS(T,P,E0,E1,E2,E3) \</span>
+<a name="l00512"></a>00512 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,0,-1,-2&gt; E0 ## E0; }; \</span>
+<a name="l00513"></a>00513 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,1,-1,-2&gt; E0 ## E1; }; \</span>
+<a name="l00514"></a>00514 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,2,-1,-2&gt; E0 ## E2; }; \</span>
+<a name="l00515"></a>00515 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,3,-1,-2&gt; E0 ## E3; }; \</span>
+<a name="l00516"></a>00516 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,0,-1,-2&gt; E1 ## E0; }; \</span>
+<a name="l00517"></a>00517 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,1,-1,-2&gt; E1 ## E1; }; \</span>
+<a name="l00518"></a>00518 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,2,-1,-2&gt; E1 ## E2; }; \</span>
+<a name="l00519"></a>00519 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,3,-1,-2&gt; E1 ## E3; }; \</span>
+<a name="l00520"></a>00520 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,2,0,-1,-2&gt; E2 ## E0; }; \</span>
+<a name="l00521"></a>00521 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,2,1,-1,-2&gt; E2 ## E1; }; \</span>
+<a name="l00522"></a>00522 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,2,2,-1,-2&gt; E2 ## E2; }; \</span>
+<a name="l00523"></a>00523 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,2,3,-1,-2&gt; E2 ## E3; }; \</span>
+<a name="l00524"></a>00524 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,3,0,-1,-2&gt; E3 ## E0; }; \</span>
+<a name="l00525"></a>00525 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,3,1,-1,-2&gt; E3 ## E1; }; \</span>
+<a name="l00526"></a>00526 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,3,2,-1,-2&gt; E3 ## E2; }; \</span>
+<a name="l00527"></a>00527 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,3,3,-1,-2&gt; E3 ## E3; }; </span>
+<a name="l00528"></a>00528 <span class="preprocessor"></span>
+<a name="l00529"></a>00529 <span class="preprocessor">#define _GLM_SWIZZLE4_3_MEMBERS(T,P,E0,E1,E2,E3) \</span>
+<a name="l00530"></a>00530 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span>
+<a name="l00531"></a>00531 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span>
+<a name="l00532"></a>00532 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span>
+<a name="l00533"></a>00533 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,3,-1&gt; E0 ## E0 ## E3; }; \</span>
+<a name="l00534"></a>00534 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span>
+<a name="l00535"></a>00535 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span>
+<a name="l00536"></a>00536 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span>
+<a name="l00537"></a>00537 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,3,-1&gt; E0 ## E1 ## E3; }; \</span>
+<a name="l00538"></a>00538 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span>
+<a name="l00539"></a>00539 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span>
+<a name="l00540"></a>00540 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span>
+<a name="l00541"></a>00541 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,3,-1&gt; E0 ## E2 ## E3; }; \</span>
+<a name="l00542"></a>00542 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,3,0,-1&gt; E0 ## E3 ## E0; }; \</span>
+<a name="l00543"></a>00543 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,3,1,-1&gt; E0 ## E3 ## E1; }; \</span>
+<a name="l00544"></a>00544 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,3,2,-1&gt; E0 ## E3 ## E2; }; \</span>
+<a name="l00545"></a>00545 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,3,3,-1&gt; E0 ## E3 ## E3; }; \</span>
+<a name="l00546"></a>00546 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span>
+<a name="l00547"></a>00547 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span>
+<a name="l00548"></a>00548 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span>
+<a name="l00549"></a>00549 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,3,-1&gt; E1 ## E0 ## E3; }; \</span>
+<a name="l00550"></a>00550 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span>
+<a name="l00551"></a>00551 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span>
+<a name="l00552"></a>00552 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span>
+<a name="l00553"></a>00553 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,3,-1&gt; E1 ## E1 ## E3; }; \</span>
+<a name="l00554"></a>00554 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span>
+<a name="l00555"></a>00555 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span>
+<a name="l00556"></a>00556 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span>
+<a name="l00557"></a>00557 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,3,-1&gt; E1 ## E2 ## E3; }; \</span>
+<a name="l00558"></a>00558 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,3,0,-1&gt; E1 ## E3 ## E0; }; \</span>
+<a name="l00559"></a>00559 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,3,1,-1&gt; E1 ## E3 ## E1; }; \</span>
+<a name="l00560"></a>00560 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,3,2,-1&gt; E1 ## E3 ## E2; }; \</span>
+<a name="l00561"></a>00561 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,3,3,-1&gt; E1 ## E3 ## E3; }; \</span>
+<a name="l00562"></a>00562 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span>
+<a name="l00563"></a>00563 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span>
+<a name="l00564"></a>00564 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span>
+<a name="l00565"></a>00565 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,3,-1&gt; E2 ## E0 ## E3; }; \</span>
+<a name="l00566"></a>00566 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span>
+<a name="l00567"></a>00567 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span>
+<a name="l00568"></a>00568 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span>
+<a name="l00569"></a>00569 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,3,-1&gt; E2 ## E1 ## E3; }; \</span>
+<a name="l00570"></a>00570 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span>
+<a name="l00571"></a>00571 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span>
+<a name="l00572"></a>00572 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,2,-1&gt; E2 ## E2 ## E2; }; \</span>
+<a name="l00573"></a>00573 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,3,-1&gt; E2 ## E2 ## E3; }; \</span>
+<a name="l00574"></a>00574 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,3,0,-1&gt; E2 ## E3 ## E0; }; \</span>
+<a name="l00575"></a>00575 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,3,1,-1&gt; E2 ## E3 ## E1; }; \</span>
+<a name="l00576"></a>00576 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,3,2,-1&gt; E2 ## E3 ## E2; }; \</span>
+<a name="l00577"></a>00577 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,3,3,-1&gt; E2 ## E3 ## E3; }; \</span>
+<a name="l00578"></a>00578 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,0,0,-1&gt; E3 ## E0 ## E0; }; \</span>
+<a name="l00579"></a>00579 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,0,1,-1&gt; E3 ## E0 ## E1; }; \</span>
+<a name="l00580"></a>00580 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,0,2,-1&gt; E3 ## E0 ## E2; }; \</span>
+<a name="l00581"></a>00581 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,0,3,-1&gt; E3 ## E0 ## E3; }; \</span>
+<a name="l00582"></a>00582 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,1,0,-1&gt; E3 ## E1 ## E0; }; \</span>
+<a name="l00583"></a>00583 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,1,1,-1&gt; E3 ## E1 ## E1; }; \</span>
+<a name="l00584"></a>00584 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,1,2,-1&gt; E3 ## E1 ## E2; }; \</span>
+<a name="l00585"></a>00585 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,1,3,-1&gt; E3 ## E1 ## E3; }; \</span>
+<a name="l00586"></a>00586 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,2,0,-1&gt; E3 ## E2 ## E0; }; \</span>
+<a name="l00587"></a>00587 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,2,1,-1&gt; E3 ## E2 ## E1; }; \</span>
+<a name="l00588"></a>00588 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,2,2,-1&gt; E3 ## E2 ## E2; }; \</span>
+<a name="l00589"></a>00589 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,2,3,-1&gt; E3 ## E2 ## E3; }; \</span>
+<a name="l00590"></a>00590 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,3,0,-1&gt; E3 ## E3 ## E0; }; \</span>
+<a name="l00591"></a>00591 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,3,1,-1&gt; E3 ## E3 ## E1; }; \</span>
+<a name="l00592"></a>00592 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,3,2,-1&gt; E3 ## E3 ## E2; }; \</span>
+<a name="l00593"></a>00593 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,3,3,-1&gt; E3 ## E3 ## E3; };  </span>
+<a name="l00594"></a>00594 <span class="preprocessor"></span>
+<a name="l00595"></a>00595 <span class="preprocessor">#define _GLM_SWIZZLE4_4_MEMBERS(T,P,E0,E1,E2,E3) \</span>
+<a name="l00596"></a>00596 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00597"></a>00597 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00598"></a>00598 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span>
+<a name="l00599"></a>00599 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,0,3&gt; E0 ## E0 ## E0 ## E3; }; \</span>
+<a name="l00600"></a>00600 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00601"></a>00601 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00602"></a>00602 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span>
+<a name="l00603"></a>00603 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,1,3&gt; E0 ## E0 ## E1 ## E3; }; \</span>
+<a name="l00604"></a>00604 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span>
+<a name="l00605"></a>00605 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span>
+<a name="l00606"></a>00606 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span>
+<a name="l00607"></a>00607 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,2,3&gt; E0 ## E0 ## E2 ## E3; }; \</span>
+<a name="l00608"></a>00608 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,3,0&gt; E0 ## E0 ## E3 ## E0; }; \</span>
+<a name="l00609"></a>00609 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,3,1&gt; E0 ## E0 ## E3 ## E1; }; \</span>
+<a name="l00610"></a>00610 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,3,2&gt; E0 ## E0 ## E3 ## E2; }; \</span>
+<a name="l00611"></a>00611 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,3,3&gt; E0 ## E0 ## E3 ## E3; }; \</span>
+<a name="l00612"></a>00612 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00613"></a>00613 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00614"></a>00614 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span>
+<a name="l00615"></a>00615 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,0,3&gt; E0 ## E1 ## E0 ## E3; }; \</span>
+<a name="l00616"></a>00616 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00617"></a>00617 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span>
+<a name="l00618"></a>00618 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span>
+<a name="l00619"></a>00619 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,1,3&gt; E0 ## E1 ## E1 ## E3; }; \</span>
+<a name="l00620"></a>00620 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span>
+<a name="l00621"></a>00621 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span>
+<a name="l00622"></a>00622 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span>
+<a name="l00623"></a>00623 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,2,3&gt; E0 ## E1 ## E2 ## E3; }; \</span>
+<a name="l00624"></a>00624 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,3,0&gt; E0 ## E1 ## E3 ## E0; }; \</span>
+<a name="l00625"></a>00625 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,3,1&gt; E0 ## E1 ## E3 ## E1; }; \</span>
+<a name="l00626"></a>00626 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,3,2&gt; E0 ## E1 ## E3 ## E2; }; \</span>
+<a name="l00627"></a>00627 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,3,3&gt; E0 ## E1 ## E3 ## E3; }; \</span>
+<a name="l00628"></a>00628 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span>
+<a name="l00629"></a>00629 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span>
+<a name="l00630"></a>00630 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span>
+<a name="l00631"></a>00631 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,0,3&gt; E0 ## E2 ## E0 ## E3; }; \</span>
+<a name="l00632"></a>00632 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span>
+<a name="l00633"></a>00633 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span>
+<a name="l00634"></a>00634 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span>
+<a name="l00635"></a>00635 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,1,3&gt; E0 ## E2 ## E1 ## E3; }; \</span>
+<a name="l00636"></a>00636 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span>
+<a name="l00637"></a>00637 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span>
+<a name="l00638"></a>00638 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span>
+<a name="l00639"></a>00639 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,2,3&gt; E0 ## E2 ## E2 ## E3; }; \</span>
+<a name="l00640"></a>00640 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,3,0&gt; E0 ## E2 ## E3 ## E0; }; \</span>
+<a name="l00641"></a>00641 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,3,1&gt; E0 ## E2 ## E3 ## E1; }; \</span>
+<a name="l00642"></a>00642 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,3,2&gt; E0 ## E2 ## E3 ## E2; }; \</span>
+<a name="l00643"></a>00643 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,3,3&gt; E0 ## E2 ## E3 ## E3; }; \</span>
+<a name="l00644"></a>00644 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00645"></a>00645 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00646"></a>00646 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span>
+<a name="l00647"></a>00647 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,0,3&gt; E1 ## E0 ## E0 ## E3; }; \</span>
+<a name="l00648"></a>00648 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00649"></a>00649 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00650"></a>00650 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span>
+<a name="l00651"></a>00651 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,1,3&gt; E1 ## E0 ## E1 ## E3; }; \</span>
+<a name="l00652"></a>00652 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span>
+<a name="l00653"></a>00653 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span>
+<a name="l00654"></a>00654 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span>
+<a name="l00655"></a>00655 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,2,3&gt; E1 ## E0 ## E2 ## E3; }; \</span>
+<a name="l00656"></a>00656 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,3,0&gt; E1 ## E0 ## E3 ## E0; }; \</span>
+<a name="l00657"></a>00657 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,3,1&gt; E1 ## E0 ## E3 ## E1; }; \</span>
+<a name="l00658"></a>00658 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,3,2&gt; E1 ## E0 ## E3 ## E2; }; \</span>
+<a name="l00659"></a>00659 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,3,3&gt; E1 ## E0 ## E3 ## E3; }; \</span>
+<a name="l00660"></a>00660 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00661"></a>00661 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00662"></a>00662 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span>
+<a name="l00663"></a>00663 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,0,3&gt; E1 ## E1 ## E0 ## E3; }; \</span>
+<a name="l00664"></a>00664 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00665"></a>00665 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span>
+<a name="l00666"></a>00666 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span>
+<a name="l00667"></a>00667 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,1,3&gt; E1 ## E1 ## E1 ## E3; }; \</span>
+<a name="l00668"></a>00668 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span>
+<a name="l00669"></a>00669 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span>
+<a name="l00670"></a>00670 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span>
+<a name="l00671"></a>00671 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,2,3&gt; E1 ## E1 ## E2 ## E3; }; \</span>
+<a name="l00672"></a>00672 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,3,0&gt; E1 ## E1 ## E3 ## E0; }; \</span>
+<a name="l00673"></a>00673 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,3,1&gt; E1 ## E1 ## E3 ## E1; }; \</span>
+<a name="l00674"></a>00674 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,3,2&gt; E1 ## E1 ## E3 ## E2; }; \</span>
+<a name="l00675"></a>00675 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,3,3&gt; E1 ## E1 ## E3 ## E3; }; \</span>
+<a name="l00676"></a>00676 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span>
+<a name="l00677"></a>00677 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span>
+<a name="l00678"></a>00678 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span>
+<a name="l00679"></a>00679 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,0,3&gt; E1 ## E2 ## E0 ## E3; }; \</span>
+<a name="l00680"></a>00680 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span>
+<a name="l00681"></a>00681 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span>
+<a name="l00682"></a>00682 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span>
+<a name="l00683"></a>00683 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,1,3&gt; E1 ## E2 ## E1 ## E3; }; \</span>
+<a name="l00684"></a>00684 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span>
+<a name="l00685"></a>00685 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span>
+<a name="l00686"></a>00686 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span>
+<a name="l00687"></a>00687 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,2,3&gt; E1 ## E2 ## E2 ## E3; }; \</span>
+<a name="l00688"></a>00688 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,3,0&gt; E1 ## E2 ## E3 ## E0; }; \</span>
+<a name="l00689"></a>00689 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,3,1&gt; E1 ## E2 ## E3 ## E1; }; \</span>
+<a name="l00690"></a>00690 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,3,2&gt; E1 ## E2 ## E3 ## E2; }; \</span>
+<a name="l00691"></a>00691 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,3,3&gt; E1 ## E2 ## E3 ## E3; }; \</span>
+<a name="l00692"></a>00692 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,0,0&gt; E1 ## E3 ## E0 ## E0; }; \</span>
+<a name="l00693"></a>00693 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,0,1&gt; E1 ## E3 ## E0 ## E1; }; \</span>
+<a name="l00694"></a>00694 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,0,2&gt; E1 ## E3 ## E0 ## E2; }; \</span>
+<a name="l00695"></a>00695 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,0,3&gt; E1 ## E3 ## E0 ## E3; }; \</span>
+<a name="l00696"></a>00696 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,1,0&gt; E1 ## E3 ## E1 ## E0; }; \</span>
+<a name="l00697"></a>00697 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,1,1&gt; E1 ## E3 ## E1 ## E1; }; \</span>
+<a name="l00698"></a>00698 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,1,2&gt; E1 ## E3 ## E1 ## E2; }; \</span>
+<a name="l00699"></a>00699 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,1,3&gt; E1 ## E3 ## E1 ## E3; }; \</span>
+<a name="l00700"></a>00700 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,2,0&gt; E1 ## E3 ## E2 ## E0; }; \</span>
+<a name="l00701"></a>00701 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,2,1&gt; E1 ## E3 ## E2 ## E1; }; \</span>
+<a name="l00702"></a>00702 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,2,2&gt; E1 ## E3 ## E2 ## E2; }; \</span>
+<a name="l00703"></a>00703 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,2,3&gt; E1 ## E3 ## E2 ## E3; }; \</span>
+<a name="l00704"></a>00704 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,3,0&gt; E1 ## E3 ## E3 ## E0; }; \</span>
+<a name="l00705"></a>00705 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,3,1&gt; E1 ## E3 ## E3 ## E1; }; \</span>
+<a name="l00706"></a>00706 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,3,2&gt; E1 ## E3 ## E3 ## E2; }; \</span>
+<a name="l00707"></a>00707 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,3,3&gt; E1 ## E3 ## E3 ## E3; }; \</span>
+<a name="l00708"></a>00708 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00709"></a>00709 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00710"></a>00710 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span>
+<a name="l00711"></a>00711 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,0,3&gt; E2 ## E0 ## E0 ## E3; }; \</span>
+<a name="l00712"></a>00712 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00713"></a>00713 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00714"></a>00714 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span>
+<a name="l00715"></a>00715 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,1,3&gt; E2 ## E0 ## E1 ## E3; }; \</span>
+<a name="l00716"></a>00716 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span>
+<a name="l00717"></a>00717 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span>
+<a name="l00718"></a>00718 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span>
+<a name="l00719"></a>00719 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,2,3&gt; E2 ## E0 ## E2 ## E3; }; \</span>
+<a name="l00720"></a>00720 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,3,0&gt; E2 ## E0 ## E3 ## E0; }; \</span>
+<a name="l00721"></a>00721 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,3,1&gt; E2 ## E0 ## E3 ## E1; }; \</span>
+<a name="l00722"></a>00722 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,3,2&gt; E2 ## E0 ## E3 ## E2; }; \</span>
+<a name="l00723"></a>00723 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,3,3&gt; E2 ## E0 ## E3 ## E3; }; \</span>
+<a name="l00724"></a>00724 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00725"></a>00725 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00726"></a>00726 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span>
+<a name="l00727"></a>00727 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,0,3&gt; E2 ## E1 ## E0 ## E3; }; \</span>
+<a name="l00728"></a>00728 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00729"></a>00729 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span>
+<a name="l00730"></a>00730 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span>
+<a name="l00731"></a>00731 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,1,3&gt; E2 ## E1 ## E1 ## E3; }; \</span>
+<a name="l00732"></a>00732 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span>
+<a name="l00733"></a>00733 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span>
+<a name="l00734"></a>00734 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span>
+<a name="l00735"></a>00735 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,2,3&gt; E2 ## E1 ## E2 ## E3; }; \</span>
+<a name="l00736"></a>00736 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,3,0&gt; E2 ## E1 ## E3 ## E0; }; \</span>
+<a name="l00737"></a>00737 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,3,1&gt; E2 ## E1 ## E3 ## E1; }; \</span>
+<a name="l00738"></a>00738 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,3,2&gt; E2 ## E1 ## E3 ## E2; }; \</span>
+<a name="l00739"></a>00739 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,3,3&gt; E2 ## E1 ## E3 ## E3; }; \</span>
+<a name="l00740"></a>00740 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span>
+<a name="l00741"></a>00741 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span>
+<a name="l00742"></a>00742 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span>
+<a name="l00743"></a>00743 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,0,3&gt; E2 ## E2 ## E0 ## E3; }; \</span>
+<a name="l00744"></a>00744 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span>
+<a name="l00745"></a>00745 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span>
+<a name="l00746"></a>00746 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span>
+<a name="l00747"></a>00747 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,1,3&gt; E2 ## E2 ## E1 ## E3; }; \</span>
+<a name="l00748"></a>00748 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span>
+<a name="l00749"></a>00749 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span>
+<a name="l00750"></a>00750 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; \</span>
+<a name="l00751"></a>00751 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,2,3&gt; E2 ## E2 ## E2 ## E3; }; \</span>
+<a name="l00752"></a>00752 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,3,0&gt; E2 ## E2 ## E3 ## E0; }; \</span>
+<a name="l00753"></a>00753 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,3,1&gt; E2 ## E2 ## E3 ## E1; }; \</span>
+<a name="l00754"></a>00754 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,3,2&gt; E2 ## E2 ## E3 ## E2; }; \</span>
+<a name="l00755"></a>00755 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,3,3&gt; E2 ## E2 ## E3 ## E3; }; \</span>
+<a name="l00756"></a>00756 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,0,0&gt; E2 ## E3 ## E0 ## E0; }; \</span>
+<a name="l00757"></a>00757 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,0,1&gt; E2 ## E3 ## E0 ## E1; }; \</span>
+<a name="l00758"></a>00758 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,0,2&gt; E2 ## E3 ## E0 ## E2; }; \</span>
+<a name="l00759"></a>00759 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,0,3&gt; E2 ## E3 ## E0 ## E3; }; \</span>
+<a name="l00760"></a>00760 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,1,0&gt; E2 ## E3 ## E1 ## E0; }; \</span>
+<a name="l00761"></a>00761 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,1,1&gt; E2 ## E3 ## E1 ## E1; }; \</span>
+<a name="l00762"></a>00762 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,1,2&gt; E2 ## E3 ## E1 ## E2; }; \</span>
+<a name="l00763"></a>00763 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,1,3&gt; E2 ## E3 ## E1 ## E3; }; \</span>
+<a name="l00764"></a>00764 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,2,0&gt; E2 ## E3 ## E2 ## E0; }; \</span>
+<a name="l00765"></a>00765 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,2,1&gt; E2 ## E3 ## E2 ## E1; }; \</span>
+<a name="l00766"></a>00766 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,2,2&gt; E2 ## E3 ## E2 ## E2; }; \</span>
+<a name="l00767"></a>00767 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,2,3&gt; E2 ## E3 ## E2 ## E3; }; \</span>
+<a name="l00768"></a>00768 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,3,0&gt; E2 ## E3 ## E3 ## E0; }; \</span>
+<a name="l00769"></a>00769 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,3,1&gt; E2 ## E3 ## E3 ## E1; }; \</span>
+<a name="l00770"></a>00770 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,3,2&gt; E2 ## E3 ## E3 ## E2; }; \</span>
+<a name="l00771"></a>00771 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,3,3&gt; E2 ## E3 ## E3 ## E3; }; \</span>
+<a name="l00772"></a>00772 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,0,0&gt; E3 ## E0 ## E0 ## E0; }; \</span>
+<a name="l00773"></a>00773 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,0,1&gt; E3 ## E0 ## E0 ## E1; }; \</span>
+<a name="l00774"></a>00774 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,0,2&gt; E3 ## E0 ## E0 ## E2; }; \</span>
+<a name="l00775"></a>00775 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,0,3&gt; E3 ## E0 ## E0 ## E3; }; \</span>
+<a name="l00776"></a>00776 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,1,0&gt; E3 ## E0 ## E1 ## E0; }; \</span>
+<a name="l00777"></a>00777 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,1,1&gt; E3 ## E0 ## E1 ## E1; }; \</span>
+<a name="l00778"></a>00778 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,1,2&gt; E3 ## E0 ## E1 ## E2; }; \</span>
+<a name="l00779"></a>00779 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,1,3&gt; E3 ## E0 ## E1 ## E3; }; \</span>
+<a name="l00780"></a>00780 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,2,0&gt; E3 ## E0 ## E2 ## E0; }; \</span>
+<a name="l00781"></a>00781 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,2,1&gt; E3 ## E0 ## E2 ## E1; }; \</span>
+<a name="l00782"></a>00782 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,2,2&gt; E3 ## E0 ## E2 ## E2; }; \</span>
+<a name="l00783"></a>00783 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,2,3&gt; E3 ## E0 ## E2 ## E3; }; \</span>
+<a name="l00784"></a>00784 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,3,0&gt; E3 ## E0 ## E3 ## E0; }; \</span>
+<a name="l00785"></a>00785 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,3,1&gt; E3 ## E0 ## E3 ## E1; }; \</span>
+<a name="l00786"></a>00786 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,3,2&gt; E3 ## E0 ## E3 ## E2; }; \</span>
+<a name="l00787"></a>00787 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,3,3&gt; E3 ## E0 ## E3 ## E3; }; \</span>
+<a name="l00788"></a>00788 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,0,0&gt; E3 ## E1 ## E0 ## E0; }; \</span>
+<a name="l00789"></a>00789 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,0,1&gt; E3 ## E1 ## E0 ## E1; }; \</span>
+<a name="l00790"></a>00790 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,0,2&gt; E3 ## E1 ## E0 ## E2; }; \</span>
+<a name="l00791"></a>00791 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,0,3&gt; E3 ## E1 ## E0 ## E3; }; \</span>
+<a name="l00792"></a>00792 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,1,0&gt; E3 ## E1 ## E1 ## E0; }; \</span>
+<a name="l00793"></a>00793 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,1,1&gt; E3 ## E1 ## E1 ## E1; }; \</span>
+<a name="l00794"></a>00794 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,1,2&gt; E3 ## E1 ## E1 ## E2; }; \</span>
+<a name="l00795"></a>00795 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,1,3&gt; E3 ## E1 ## E1 ## E3; }; \</span>
+<a name="l00796"></a>00796 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,2,0&gt; E3 ## E1 ## E2 ## E0; }; \</span>
+<a name="l00797"></a>00797 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,2,1&gt; E3 ## E1 ## E2 ## E1; }; \</span>
+<a name="l00798"></a>00798 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,2,2&gt; E3 ## E1 ## E2 ## E2; }; \</span>
+<a name="l00799"></a>00799 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,2,3&gt; E3 ## E1 ## E2 ## E3; }; \</span>
+<a name="l00800"></a>00800 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,3,0&gt; E3 ## E1 ## E3 ## E0; }; \</span>
+<a name="l00801"></a>00801 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,3,1&gt; E3 ## E1 ## E3 ## E1; }; \</span>
+<a name="l00802"></a>00802 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,3,2&gt; E3 ## E1 ## E3 ## E2; }; \</span>
+<a name="l00803"></a>00803 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,3,3&gt; E3 ## E1 ## E3 ## E3; }; \</span>
+<a name="l00804"></a>00804 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,0,0&gt; E3 ## E2 ## E0 ## E0; }; \</span>
+<a name="l00805"></a>00805 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,0,1&gt; E3 ## E2 ## E0 ## E1; }; \</span>
+<a name="l00806"></a>00806 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,0,2&gt; E3 ## E2 ## E0 ## E2; }; \</span>
+<a name="l00807"></a>00807 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,0,3&gt; E3 ## E2 ## E0 ## E3; }; \</span>
+<a name="l00808"></a>00808 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,1,0&gt; E3 ## E2 ## E1 ## E0; }; \</span>
+<a name="l00809"></a>00809 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,1,1&gt; E3 ## E2 ## E1 ## E1; }; \</span>
+<a name="l00810"></a>00810 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,1,2&gt; E3 ## E2 ## E1 ## E2; }; \</span>
+<a name="l00811"></a>00811 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,1,3&gt; E3 ## E2 ## E1 ## E3; }; \</span>
+<a name="l00812"></a>00812 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,2,0&gt; E3 ## E2 ## E2 ## E0; }; \</span>
+<a name="l00813"></a>00813 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,2,1&gt; E3 ## E2 ## E2 ## E1; }; \</span>
+<a name="l00814"></a>00814 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,2,2&gt; E3 ## E2 ## E2 ## E2; }; \</span>
+<a name="l00815"></a>00815 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,2,3&gt; E3 ## E2 ## E2 ## E3; }; \</span>
+<a name="l00816"></a>00816 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,3,0&gt; E3 ## E2 ## E3 ## E0; }; \</span>
+<a name="l00817"></a>00817 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,3,1&gt; E3 ## E2 ## E3 ## E1; }; \</span>
+<a name="l00818"></a>00818 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,3,2&gt; E3 ## E2 ## E3 ## E2; }; \</span>
+<a name="l00819"></a>00819 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,3,3&gt; E3 ## E2 ## E3 ## E3; }; \</span>
+<a name="l00820"></a>00820 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,0,0&gt; E3 ## E3 ## E0 ## E0; }; \</span>
+<a name="l00821"></a>00821 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,0,1&gt; E3 ## E3 ## E0 ## E1; }; \</span>
+<a name="l00822"></a>00822 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,0,2&gt; E3 ## E3 ## E0 ## E2; }; \</span>
+<a name="l00823"></a>00823 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,0,3&gt; E3 ## E3 ## E0 ## E3; }; \</span>
+<a name="l00824"></a>00824 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,1,0&gt; E3 ## E3 ## E1 ## E0; }; \</span>
+<a name="l00825"></a>00825 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,1,1&gt; E3 ## E3 ## E1 ## E1; }; \</span>
+<a name="l00826"></a>00826 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,1,2&gt; E3 ## E3 ## E1 ## E2; }; \</span>
+<a name="l00827"></a>00827 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,1,3&gt; E3 ## E3 ## E1 ## E3; }; \</span>
+<a name="l00828"></a>00828 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,2,0&gt; E3 ## E3 ## E2 ## E0; }; \</span>
+<a name="l00829"></a>00829 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,2,1&gt; E3 ## E3 ## E2 ## E1; }; \</span>
+<a name="l00830"></a>00830 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,2,2&gt; E3 ## E3 ## E2 ## E2; }; \</span>
+<a name="l00831"></a>00831 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,2,3&gt; E3 ## E3 ## E2 ## E3; }; \</span>
+<a name="l00832"></a>00832 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,3,0&gt; E3 ## E3 ## E3 ## E0; }; \</span>
+<a name="l00833"></a>00833 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,3,1&gt; E3 ## E3 ## E3 ## E1; }; \</span>
+<a name="l00834"></a>00834 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,3,2&gt; E3 ## E3 ## E3 ## E2; }; \</span>
+<a name="l00835"></a>00835 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,3,3&gt; E3 ## E3 ## E3 ## E3; }; </span>
+<a name="l00836"></a>00836 <span class="preprocessor"></span>
+<a name="l00837"></a>00837 <span class="preprocessor">#endif//glm_core_swizzle</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 21 - 21
doc/api-0.9.3/a00006.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tmat2x2 Struct Reference</title>
+<title>_swizzle_func.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,46 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00006.html">tmat2x2</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">tmat2x2 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">_swizzle_func.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tmat2x2" -->
-<p><a href="a00236.html">List of all members.</a></p>
+
+<p><a href="a00006_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for 2 * 2 matrix of floating-point numbers. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2011-10-16 / 2011-10-16 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+
+<p>Definition in file <a class="el" href="a00006_source.html">_swizzle_func.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 853 - 0
doc/api-0.9.3/a00006_source.html

@@ -0,0 +1,853 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>_swizzle_func.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">_swizzle_func.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00006.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_core_swizzle_func</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_swizzle_func</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span>
+<a name="l00033"></a>00033 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; A ## B() CONST \</span>
+<a name="l00034"></a>00034 <span class="preprocessor">        { \</span>
+<a name="l00035"></a>00035 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B); \</span>
+<a name="l00036"></a>00036 <span class="preprocessor">        }</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span>
+<a name="l00039"></a>00039 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; A ## B ## C() CONST \</span>
+<a name="l00040"></a>00040 <span class="preprocessor">        { \</span>
+<a name="l00041"></a>00041 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span>
+<a name="l00042"></a>00042 <span class="preprocessor">        }</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span>
+<a name="l00044"></a>00044 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span>
+<a name="l00045"></a>00045 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; A ## B ## C ## D() CONST \</span>
+<a name="l00046"></a>00046 <span class="preprocessor">        { \</span>
+<a name="l00047"></a>00047 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span>
+<a name="l00048"></a>00048 <span class="preprocessor">        }</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span>
+<a name="l00051"></a>00051 <span class="preprocessor">        template &lt;typename TMPL_TYPE&gt; \</span>
+<a name="l00052"></a>00052 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE&gt;::A ## B() CONST \</span>
+<a name="l00053"></a>00053 <span class="preprocessor">        { \</span>
+<a name="l00054"></a>00054 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B); \</span>
+<a name="l00055"></a>00055 <span class="preprocessor">        }</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span>
+<a name="l00057"></a>00057 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span>
+<a name="l00058"></a>00058 <span class="preprocessor">        template &lt;typename TMPL_TYPE&gt; \</span>
+<a name="l00059"></a>00059 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE&gt;::A ## B ## C() CONST \</span>
+<a name="l00060"></a>00060 <span class="preprocessor">        { \</span>
+<a name="l00061"></a>00061 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span>
+<a name="l00062"></a>00062 <span class="preprocessor">        }</span>
+<a name="l00063"></a>00063 <span class="preprocessor"></span>
+<a name="l00064"></a>00064 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span>
+<a name="l00065"></a>00065 <span class="preprocessor">        template &lt;typename TMPL_TYPE&gt; \</span>
+<a name="l00066"></a>00066 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE&gt;::A ## B ## C ## D() CONST \</span>
+<a name="l00067"></a>00067 <span class="preprocessor">        { \</span>
+<a name="l00068"></a>00068 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span>
+<a name="l00069"></a>00069 <span class="preprocessor">        }</span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span>
+<a name="l00071"></a>00071 <span class="preprocessor">#define GLM_MUTABLE</span>
+<a name="l00072"></a>00072 <span class="preprocessor"></span>
+<a name="l00073"></a>00073 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span>
+<a name="l00074"></a>00074 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span>
+<a name="l00075"></a>00075 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span>
+<a name="l00077"></a>00077 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \</span>
+<a name="l00078"></a>00078 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \</span>
+<a name="l00079"></a>00079 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \</span>
+<a name="l00080"></a>00080 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)</span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span>
+<a name="l00082"></a>00082 <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)</span>
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
+<a name="l00085"></a>00085 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span>
+<a name="l00086"></a>00086 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span>
+<a name="l00087"></a>00087 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span>
+<a name="l00088"></a>00088 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span>
+<a name="l00089"></a>00089 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span>
+<a name="l00090"></a>00090 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)</span>
+<a name="l00091"></a>00091 <span class="preprocessor"></span>
+<a name="l00092"></a>00092 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
+<a name="l00093"></a>00093 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \</span>
+<a name="l00094"></a>00094 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \</span>
+<a name="l00095"></a>00095 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \</span>
+<a name="l00096"></a>00096 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \</span>
+<a name="l00097"></a>00097 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \</span>
+<a name="l00098"></a>00098 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)</span>
+<a name="l00099"></a>00099 <span class="preprocessor"></span>
+<a name="l00100"></a>00100 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span>
+<a name="l00101"></a>00101 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span>
+<a name="l00102"></a>00102 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span>
+<a name="l00104"></a>00104 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \</span>
+<a name="l00105"></a>00105 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \</span>
+<a name="l00106"></a>00106 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \</span>
+<a name="l00107"></a>00107 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, q)</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span>
+<a name="l00109"></a>00109 <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)</span>
+<a name="l00110"></a>00110 
+<a name="l00111"></a>00111 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
+<a name="l00112"></a>00112 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span>
+<a name="l00113"></a>00113 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span>
+<a name="l00114"></a>00114 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \</span>
+<a name="l00115"></a>00115 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span>
+<a name="l00116"></a>00116 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span>
+<a name="l00117"></a>00117 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \</span>
+<a name="l00118"></a>00118 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span>
+<a name="l00119"></a>00119 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \</span>
+<a name="l00120"></a>00120 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \</span>
+<a name="l00121"></a>00121 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \</span>
+<a name="l00122"></a>00122 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \</span>
+<a name="l00123"></a>00123 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)</span>
+<a name="l00124"></a>00124 <span class="preprocessor"></span>
+<a name="l00125"></a>00125 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
+<a name="l00126"></a>00126 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \</span>
+<a name="l00127"></a>00127 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \</span>
+<a name="l00128"></a>00128 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \</span>
+<a name="l00129"></a>00129 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \</span>
+<a name="l00130"></a>00130 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \</span>
+<a name="l00131"></a>00131 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \</span>
+<a name="l00132"></a>00132 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \</span>
+<a name="l00133"></a>00133 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \</span>
+<a name="l00134"></a>00134 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \</span>
+<a name="l00135"></a>00135 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \</span>
+<a name="l00136"></a>00136 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \</span>
+<a name="l00137"></a>00137 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \</span>
+<a name="l00138"></a>00138 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \</span>
+<a name="l00139"></a>00139 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \</span>
+<a name="l00140"></a>00140 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \</span>
+<a name="l00141"></a>00141 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \</span>
+<a name="l00142"></a>00142 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \</span>
+<a name="l00143"></a>00143 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \</span>
+<a name="l00144"></a>00144 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \</span>
+<a name="l00145"></a>00145 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \</span>
+<a name="l00146"></a>00146 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \</span>
+<a name="l00147"></a>00147 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \</span>
+<a name="l00148"></a>00148 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \</span>
+<a name="l00149"></a>00149 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)</span>
+<a name="l00150"></a>00150 <span class="preprocessor"></span>
+<a name="l00151"></a>00151 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
+<a name="l00152"></a>00152 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \</span>
+<a name="l00153"></a>00153 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \</span>
+<a name="l00154"></a>00154 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \</span>
+<a name="l00155"></a>00155 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \</span>
+<a name="l00156"></a>00156 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \</span>
+<a name="l00157"></a>00157 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \</span>
+<a name="l00158"></a>00158 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \</span>
+<a name="l00159"></a>00159 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \</span>
+<a name="l00160"></a>00160 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \</span>
+<a name="l00161"></a>00161 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \</span>
+<a name="l00162"></a>00162 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \</span>
+<a name="l00163"></a>00163 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \</span>
+<a name="l00164"></a>00164 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \</span>
+<a name="l00165"></a>00165 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \</span>
+<a name="l00166"></a>00166 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \</span>
+<a name="l00167"></a>00167 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \</span>
+<a name="l00168"></a>00168 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \</span>
+<a name="l00169"></a>00169 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \</span>
+<a name="l00170"></a>00170 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \</span>
+<a name="l00171"></a>00171 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \</span>
+<a name="l00172"></a>00172 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \</span>
+<a name="l00173"></a>00173 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \</span>
+<a name="l00174"></a>00174 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \</span>
+<a name="l00175"></a>00175 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)</span>
+<a name="l00176"></a>00176 <span class="preprocessor"></span>
+<a name="l00177"></a>00177 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span>
+<a name="l00178"></a>00178 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span>
+<a name="l00179"></a>00179 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span>
+<a name="l00180"></a>00180 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span>
+<a name="l00181"></a>00181 <span class="preprocessor"></span>
+<a name="l00182"></a>00182 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span>
+<a name="l00183"></a>00183 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span>
+<a name="l00184"></a>00184 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span>
+<a name="l00185"></a>00185 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q, p)</span>
+<a name="l00186"></a>00186 <span class="preprocessor"></span>
+<a name="l00187"></a>00187 <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)</span>
+<a name="l00188"></a>00188 
+<a name="l00189"></a>00189 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span>
+<a name="l00190"></a>00190 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span>
+<a name="l00191"></a>00191 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span>
+<a name="l00192"></a>00192 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span>
+<a name="l00193"></a>00193 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)</span>
+<a name="l00194"></a>00194 <span class="preprocessor"></span>
+<a name="l00195"></a>00195 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span>
+<a name="l00196"></a>00196 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span>
+<a name="l00197"></a>00197 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span>
+<a name="l00198"></a>00198 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span>
+<a name="l00199"></a>00199 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span>
+<a name="l00200"></a>00200 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span>
+<a name="l00201"></a>00201 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span>
+<a name="l00202"></a>00202 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span>
+<a name="l00203"></a>00203 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)</span>
+<a name="l00204"></a>00204 <span class="preprocessor"></span>
+<a name="l00205"></a>00205 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span>
+<a name="l00206"></a>00206 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span>
+<a name="l00207"></a>00207 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span>
+<a name="l00208"></a>00208 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span>
+<a name="l00209"></a>00209 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span>
+<a name="l00210"></a>00210 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span>
+<a name="l00211"></a>00211 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span>
+<a name="l00212"></a>00212 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span>
+<a name="l00213"></a>00213 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span>
+<a name="l00214"></a>00214 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span>
+<a name="l00215"></a>00215 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span>
+<a name="l00216"></a>00216 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span>
+<a name="l00217"></a>00217 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span>
+<a name="l00218"></a>00218 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span>
+<a name="l00219"></a>00219 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span>
+<a name="l00220"></a>00220 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span>
+<a name="l00221"></a>00221 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)</span>
+<a name="l00222"></a>00222 <span class="preprocessor"></span>
+<a name="l00223"></a>00223 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \</span>
+<a name="l00224"></a>00224 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \</span>
+<a name="l00225"></a>00225 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \</span>
+<a name="l00226"></a>00226 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)</span>
+<a name="l00227"></a>00227 <span class="preprocessor"></span>
+<a name="l00228"></a>00228 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span>
+<a name="l00229"></a>00229 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \</span>
+<a name="l00230"></a>00230 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \</span>
+<a name="l00231"></a>00231 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)</span>
+<a name="l00232"></a>00232 <span class="preprocessor"></span>
+<a name="l00233"></a>00233 <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)</span>
+<a name="l00234"></a>00234 
+<a name="l00235"></a>00235 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
+<a name="l00236"></a>00236 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span>
+<a name="l00237"></a>00237 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span>
+<a name="l00238"></a>00238 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span>
+<a name="l00239"></a>00239 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span>
+<a name="l00240"></a>00240 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span>
+<a name="l00241"></a>00241 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span>
+<a name="l00242"></a>00242 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span>
+<a name="l00243"></a>00243 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span>
+<a name="l00244"></a>00244 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)</span>
+<a name="l00245"></a>00245 <span class="preprocessor"></span>
+<a name="l00246"></a>00246 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
+<a name="l00247"></a>00247 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span>
+<a name="l00248"></a>00248 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span>
+<a name="l00249"></a>00249 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span>
+<a name="l00250"></a>00250 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span>
+<a name="l00251"></a>00251 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span>
+<a name="l00252"></a>00252 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span>
+<a name="l00253"></a>00253 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span>
+<a name="l00254"></a>00254 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span>
+<a name="l00255"></a>00255 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span>
+<a name="l00256"></a>00256 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span>
+<a name="l00257"></a>00257 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span>
+<a name="l00258"></a>00258 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span>
+<a name="l00259"></a>00259 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span>
+<a name="l00260"></a>00260 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span>
+<a name="l00261"></a>00261 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span>
+<a name="l00262"></a>00262 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span>
+<a name="l00263"></a>00263 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span>
+<a name="l00264"></a>00264 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span>
+<a name="l00265"></a>00265 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span>
+<a name="l00266"></a>00266 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span>
+<a name="l00267"></a>00267 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span>
+<a name="l00268"></a>00268 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span>
+<a name="l00269"></a>00269 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span>
+<a name="l00270"></a>00270 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span>
+<a name="l00271"></a>00271 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span>
+<a name="l00272"></a>00272 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span>
+<a name="l00273"></a>00273 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)</span>
+<a name="l00274"></a>00274 <span class="preprocessor"></span>
+<a name="l00275"></a>00275 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
+<a name="l00276"></a>00276 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span>
+<a name="l00277"></a>00277 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span>
+<a name="l00278"></a>00278 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span>
+<a name="l00279"></a>00279 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span>
+<a name="l00280"></a>00280 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span>
+<a name="l00281"></a>00281 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span>
+<a name="l00282"></a>00282 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span>
+<a name="l00283"></a>00283 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span>
+<a name="l00284"></a>00284 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span>
+<a name="l00285"></a>00285 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span>
+<a name="l00286"></a>00286 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span>
+<a name="l00287"></a>00287 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span>
+<a name="l00288"></a>00288 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span>
+<a name="l00289"></a>00289 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span>
+<a name="l00290"></a>00290 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span>
+<a name="l00291"></a>00291 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span>
+<a name="l00292"></a>00292 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span>
+<a name="l00293"></a>00293 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span>
+<a name="l00294"></a>00294 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span>
+<a name="l00295"></a>00295 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span>
+<a name="l00296"></a>00296 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span>
+<a name="l00297"></a>00297 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span>
+<a name="l00298"></a>00298 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span>
+<a name="l00299"></a>00299 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span>
+<a name="l00300"></a>00300 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span>
+<a name="l00301"></a>00301 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span>
+<a name="l00302"></a>00302 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span>
+<a name="l00303"></a>00303 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span>
+<a name="l00304"></a>00304 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span>
+<a name="l00305"></a>00305 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span>
+<a name="l00306"></a>00306 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span>
+<a name="l00307"></a>00307 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span>
+<a name="l00308"></a>00308 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span>
+<a name="l00309"></a>00309 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span>
+<a name="l00310"></a>00310 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span>
+<a name="l00311"></a>00311 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span>
+<a name="l00312"></a>00312 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span>
+<a name="l00313"></a>00313 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span>
+<a name="l00314"></a>00314 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span>
+<a name="l00315"></a>00315 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span>
+<a name="l00316"></a>00316 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span>
+<a name="l00317"></a>00317 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span>
+<a name="l00318"></a>00318 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span>
+<a name="l00319"></a>00319 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span>
+<a name="l00320"></a>00320 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span>
+<a name="l00321"></a>00321 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span>
+<a name="l00322"></a>00322 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span>
+<a name="l00323"></a>00323 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span>
+<a name="l00324"></a>00324 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span>
+<a name="l00325"></a>00325 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span>
+<a name="l00326"></a>00326 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span>
+<a name="l00327"></a>00327 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span>
+<a name="l00328"></a>00328 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span>
+<a name="l00329"></a>00329 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span>
+<a name="l00330"></a>00330 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span>
+<a name="l00331"></a>00331 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span>
+<a name="l00332"></a>00332 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span>
+<a name="l00333"></a>00333 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span>
+<a name="l00334"></a>00334 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span>
+<a name="l00335"></a>00335 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span>
+<a name="l00336"></a>00336 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span>
+<a name="l00337"></a>00337 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span>
+<a name="l00338"></a>00338 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span>
+<a name="l00339"></a>00339 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span>
+<a name="l00340"></a>00340 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span>
+<a name="l00341"></a>00341 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span>
+<a name="l00342"></a>00342 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span>
+<a name="l00343"></a>00343 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span>
+<a name="l00344"></a>00344 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span>
+<a name="l00345"></a>00345 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span>
+<a name="l00346"></a>00346 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span>
+<a name="l00347"></a>00347 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span>
+<a name="l00348"></a>00348 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span>
+<a name="l00349"></a>00349 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span>
+<a name="l00350"></a>00350 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span>
+<a name="l00351"></a>00351 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span>
+<a name="l00352"></a>00352 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span>
+<a name="l00353"></a>00353 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span>
+<a name="l00354"></a>00354 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span>
+<a name="l00355"></a>00355 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span>
+<a name="l00356"></a>00356 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span>
+<a name="l00357"></a>00357 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span>
+<a name="l00358"></a>00358 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span>
+<a name="l00359"></a>00359 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span>
+<a name="l00360"></a>00360 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span>
+<a name="l00361"></a>00361 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span>
+<a name="l00362"></a>00362 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span>
+<a name="l00363"></a>00363 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span>
+<a name="l00364"></a>00364 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span>
+<a name="l00365"></a>00365 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span>
+<a name="l00366"></a>00366 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span>
+<a name="l00367"></a>00367 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span>
+<a name="l00368"></a>00368 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span>
+<a name="l00369"></a>00369 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span>
+<a name="l00370"></a>00370 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span>
+<a name="l00371"></a>00371 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span>
+<a name="l00372"></a>00372 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span>
+<a name="l00373"></a>00373 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span>
+<a name="l00374"></a>00374 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span>
+<a name="l00375"></a>00375 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span>
+<a name="l00376"></a>00376 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span>
+<a name="l00377"></a>00377 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span>
+<a name="l00378"></a>00378 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span>
+<a name="l00379"></a>00379 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span>
+<a name="l00380"></a>00380 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span>
+<a name="l00381"></a>00381 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span>
+<a name="l00382"></a>00382 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span>
+<a name="l00383"></a>00383 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span>
+<a name="l00384"></a>00384 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span>
+<a name="l00385"></a>00385 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span>
+<a name="l00386"></a>00386 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span>
+<a name="l00387"></a>00387 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span>
+<a name="l00388"></a>00388 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span>
+<a name="l00389"></a>00389 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span>
+<a name="l00390"></a>00390 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span>
+<a name="l00391"></a>00391 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span>
+<a name="l00392"></a>00392 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span>
+<a name="l00393"></a>00393 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span>
+<a name="l00394"></a>00394 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span>
+<a name="l00395"></a>00395 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span>
+<a name="l00396"></a>00396 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span>
+<a name="l00397"></a>00397 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span>
+<a name="l00398"></a>00398 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span>
+<a name="l00399"></a>00399 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span>
+<a name="l00400"></a>00400 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span>
+<a name="l00401"></a>00401 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span>
+<a name="l00402"></a>00402 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span>
+<a name="l00403"></a>00403 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span>
+<a name="l00404"></a>00404 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span>
+<a name="l00405"></a>00405 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span>
+<a name="l00406"></a>00406 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span>
+<a name="l00407"></a>00407 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span>
+<a name="l00408"></a>00408 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span>
+<a name="l00409"></a>00409 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span>
+<a name="l00410"></a>00410 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span>
+<a name="l00411"></a>00411 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span>
+<a name="l00412"></a>00412 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span>
+<a name="l00413"></a>00413 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span>
+<a name="l00414"></a>00414 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span>
+<a name="l00415"></a>00415 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span>
+<a name="l00416"></a>00416 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span>
+<a name="l00417"></a>00417 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span>
+<a name="l00418"></a>00418 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span>
+<a name="l00419"></a>00419 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C)</span>
+<a name="l00420"></a>00420 <span class="preprocessor"></span>
+<a name="l00421"></a>00421 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \</span>
+<a name="l00422"></a>00422 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \</span>
+<a name="l00423"></a>00423 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span>
+<a name="l00424"></a>00424 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)</span>
+<a name="l00425"></a>00425 <span class="preprocessor"></span>
+<a name="l00426"></a>00426 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span>
+<a name="l00427"></a>00427 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \</span>
+<a name="l00428"></a>00428 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \</span>
+<a name="l00429"></a>00429 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q)</span>
+<a name="l00430"></a>00430 <span class="preprocessor"></span>
+<a name="l00431"></a>00431 <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)</span>
+<a name="l00432"></a>00432 
+<a name="l00433"></a>00433 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
+<a name="l00434"></a>00434 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span>
+<a name="l00435"></a>00435 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span>
+<a name="l00436"></a>00436 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span>
+<a name="l00437"></a>00437 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \</span>
+<a name="l00438"></a>00438 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span>
+<a name="l00439"></a>00439 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span>
+<a name="l00440"></a>00440 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span>
+<a name="l00441"></a>00441 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \</span>
+<a name="l00442"></a>00442 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span>
+<a name="l00443"></a>00443 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span>
+<a name="l00444"></a>00444 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \</span>
+<a name="l00445"></a>00445 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \</span>
+<a name="l00446"></a>00446 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \</span>
+<a name="l00447"></a>00447 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \</span>
+<a name="l00448"></a>00448 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \</span>
+<a name="l00449"></a>00449 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)</span>
+<a name="l00450"></a>00450 <span class="preprocessor"></span>
+<a name="l00451"></a>00451 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
+<a name="l00452"></a>00452 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span>
+<a name="l00453"></a>00453 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span>
+<a name="l00454"></a>00454 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span>
+<a name="l00455"></a>00455 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \</span>
+<a name="l00456"></a>00456 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span>
+<a name="l00457"></a>00457 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span>
+<a name="l00458"></a>00458 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span>
+<a name="l00459"></a>00459 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \</span>
+<a name="l00460"></a>00460 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span>
+<a name="l00461"></a>00461 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span>
+<a name="l00462"></a>00462 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span>
+<a name="l00463"></a>00463 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \</span>
+<a name="l00464"></a>00464 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \</span>
+<a name="l00465"></a>00465 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \</span>
+<a name="l00466"></a>00466 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \</span>
+<a name="l00467"></a>00467 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \</span>
+<a name="l00468"></a>00468 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span>
+<a name="l00469"></a>00469 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span>
+<a name="l00470"></a>00470 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span>
+<a name="l00471"></a>00471 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \</span>
+<a name="l00472"></a>00472 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span>
+<a name="l00473"></a>00473 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span>
+<a name="l00474"></a>00474 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span>
+<a name="l00475"></a>00475 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \</span>
+<a name="l00476"></a>00476 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span>
+<a name="l00477"></a>00477 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span>
+<a name="l00478"></a>00478 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span>
+<a name="l00479"></a>00479 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \</span>
+<a name="l00480"></a>00480 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \</span>
+<a name="l00481"></a>00481 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \</span>
+<a name="l00482"></a>00482 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \</span>
+<a name="l00483"></a>00483 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \</span>
+<a name="l00484"></a>00484 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span>
+<a name="l00485"></a>00485 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span>
+<a name="l00486"></a>00486 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span>
+<a name="l00487"></a>00487 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \</span>
+<a name="l00488"></a>00488 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span>
+<a name="l00489"></a>00489 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span>
+<a name="l00490"></a>00490 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span>
+<a name="l00491"></a>00491 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \</span>
+<a name="l00492"></a>00492 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span>
+<a name="l00493"></a>00493 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span>
+<a name="l00494"></a>00494 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \</span>
+<a name="l00495"></a>00495 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \</span>
+<a name="l00496"></a>00496 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \</span>
+<a name="l00497"></a>00497 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \</span>
+<a name="l00498"></a>00498 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \</span>
+<a name="l00499"></a>00499 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \</span>
+<a name="l00500"></a>00500 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \</span>
+<a name="l00501"></a>00501 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \</span>
+<a name="l00502"></a>00502 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \</span>
+<a name="l00503"></a>00503 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \</span>
+<a name="l00504"></a>00504 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \</span>
+<a name="l00505"></a>00505 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \</span>
+<a name="l00506"></a>00506 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \</span>
+<a name="l00507"></a>00507 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \</span>
+<a name="l00508"></a>00508 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \</span>
+<a name="l00509"></a>00509 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \</span>
+<a name="l00510"></a>00510 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \</span>
+<a name="l00511"></a>00511 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \</span>
+<a name="l00512"></a>00512 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \</span>
+<a name="l00513"></a>00513 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \</span>
+<a name="l00514"></a>00514 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \</span>
+<a name="l00515"></a>00515 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)</span>
+<a name="l00516"></a>00516 <span class="preprocessor"></span>
+<a name="l00517"></a>00517 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
+<a name="l00518"></a>00518 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span>
+<a name="l00519"></a>00519 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span>
+<a name="l00520"></a>00520 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span>
+<a name="l00521"></a>00521 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \</span>
+<a name="l00522"></a>00522 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span>
+<a name="l00523"></a>00523 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span>
+<a name="l00524"></a>00524 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span>
+<a name="l00525"></a>00525 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \</span>
+<a name="l00526"></a>00526 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span>
+<a name="l00527"></a>00527 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span>
+<a name="l00528"></a>00528 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span>
+<a name="l00529"></a>00529 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \</span>
+<a name="l00530"></a>00530 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \</span>
+<a name="l00531"></a>00531 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \</span>
+<a name="l00532"></a>00532 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \</span>
+<a name="l00533"></a>00533 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \</span>
+<a name="l00534"></a>00534 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span>
+<a name="l00535"></a>00535 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span>
+<a name="l00536"></a>00536 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span>
+<a name="l00537"></a>00537 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \</span>
+<a name="l00538"></a>00538 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span>
+<a name="l00539"></a>00539 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span>
+<a name="l00540"></a>00540 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span>
+<a name="l00541"></a>00541 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \</span>
+<a name="l00542"></a>00542 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span>
+<a name="l00543"></a>00543 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span>
+<a name="l00544"></a>00544 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span>
+<a name="l00545"></a>00545 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \</span>
+<a name="l00546"></a>00546 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \</span>
+<a name="l00547"></a>00547 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \</span>
+<a name="l00548"></a>00548 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \</span>
+<a name="l00549"></a>00549 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \</span>
+<a name="l00550"></a>00550 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span>
+<a name="l00551"></a>00551 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span>
+<a name="l00552"></a>00552 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span>
+<a name="l00553"></a>00553 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \</span>
+<a name="l00554"></a>00554 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span>
+<a name="l00555"></a>00555 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span>
+<a name="l00556"></a>00556 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span>
+<a name="l00557"></a>00557 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \</span>
+<a name="l00558"></a>00558 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span>
+<a name="l00559"></a>00559 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span>
+<a name="l00560"></a>00560 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span>
+<a name="l00561"></a>00561 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \</span>
+<a name="l00562"></a>00562 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \</span>
+<a name="l00563"></a>00563 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \</span>
+<a name="l00564"></a>00564 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \</span>
+<a name="l00565"></a>00565 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \</span>
+<a name="l00566"></a>00566 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span>
+<a name="l00567"></a>00567 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span>
+<a name="l00568"></a>00568 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span>
+<a name="l00569"></a>00569 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \</span>
+<a name="l00570"></a>00570 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span>
+<a name="l00571"></a>00571 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span>
+<a name="l00572"></a>00572 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span>
+<a name="l00573"></a>00573 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \</span>
+<a name="l00574"></a>00574 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span>
+<a name="l00575"></a>00575 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span>
+<a name="l00576"></a>00576 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span>
+<a name="l00577"></a>00577 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \</span>
+<a name="l00578"></a>00578 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \</span>
+<a name="l00579"></a>00579 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \</span>
+<a name="l00580"></a>00580 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \</span>
+<a name="l00581"></a>00581 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \</span>
+<a name="l00582"></a>00582 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span>
+<a name="l00583"></a>00583 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span>
+<a name="l00584"></a>00584 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span>
+<a name="l00585"></a>00585 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \</span>
+<a name="l00586"></a>00586 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span>
+<a name="l00587"></a>00587 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span>
+<a name="l00588"></a>00588 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span>
+<a name="l00589"></a>00589 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \</span>
+<a name="l00590"></a>00590 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span>
+<a name="l00591"></a>00591 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span>
+<a name="l00592"></a>00592 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span>
+<a name="l00593"></a>00593 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \</span>
+<a name="l00594"></a>00594 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \</span>
+<a name="l00595"></a>00595 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \</span>
+<a name="l00596"></a>00596 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \</span>
+<a name="l00597"></a>00597 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \</span>
+<a name="l00598"></a>00598 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span>
+<a name="l00599"></a>00599 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span>
+<a name="l00600"></a>00600 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span>
+<a name="l00601"></a>00601 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \</span>
+<a name="l00602"></a>00602 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span>
+<a name="l00603"></a>00603 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span>
+<a name="l00604"></a>00604 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span>
+<a name="l00605"></a>00605 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \</span>
+<a name="l00606"></a>00606 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span>
+<a name="l00607"></a>00607 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span>
+<a name="l00608"></a>00608 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span>
+<a name="l00609"></a>00609 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \</span>
+<a name="l00610"></a>00610 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \</span>
+<a name="l00611"></a>00611 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \</span>
+<a name="l00612"></a>00612 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \</span>
+<a name="l00613"></a>00613 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \</span>
+<a name="l00614"></a>00614 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span>
+<a name="l00615"></a>00615 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span>
+<a name="l00616"></a>00616 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span>
+<a name="l00617"></a>00617 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \</span>
+<a name="l00618"></a>00618 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span>
+<a name="l00619"></a>00619 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span>
+<a name="l00620"></a>00620 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span>
+<a name="l00621"></a>00621 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \</span>
+<a name="l00622"></a>00622 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span>
+<a name="l00623"></a>00623 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span>
+<a name="l00624"></a>00624 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span>
+<a name="l00625"></a>00625 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \</span>
+<a name="l00626"></a>00626 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \</span>
+<a name="l00627"></a>00627 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \</span>
+<a name="l00628"></a>00628 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \</span>
+<a name="l00629"></a>00629 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \</span>
+<a name="l00630"></a>00630 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span>
+<a name="l00631"></a>00631 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span>
+<a name="l00632"></a>00632 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span>
+<a name="l00633"></a>00633 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \</span>
+<a name="l00634"></a>00634 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span>
+<a name="l00635"></a>00635 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span>
+<a name="l00636"></a>00636 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span>
+<a name="l00637"></a>00637 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \</span>
+<a name="l00638"></a>00638 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span>
+<a name="l00639"></a>00639 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span>
+<a name="l00640"></a>00640 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span>
+<a name="l00641"></a>00641 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \</span>
+<a name="l00642"></a>00642 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \</span>
+<a name="l00643"></a>00643 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \</span>
+<a name="l00644"></a>00644 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \</span>
+<a name="l00645"></a>00645 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \</span>
+<a name="l00646"></a>00646 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span>
+<a name="l00647"></a>00647 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span>
+<a name="l00648"></a>00648 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span>
+<a name="l00649"></a>00649 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \</span>
+<a name="l00650"></a>00650 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span>
+<a name="l00651"></a>00651 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span>
+<a name="l00652"></a>00652 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span>
+<a name="l00653"></a>00653 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \</span>
+<a name="l00654"></a>00654 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span>
+<a name="l00655"></a>00655 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span>
+<a name="l00656"></a>00656 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span>
+<a name="l00657"></a>00657 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \</span>
+<a name="l00658"></a>00658 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \</span>
+<a name="l00659"></a>00659 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \</span>
+<a name="l00660"></a>00660 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \</span>
+<a name="l00661"></a>00661 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \</span>
+<a name="l00662"></a>00662 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span>
+<a name="l00663"></a>00663 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span>
+<a name="l00664"></a>00664 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span>
+<a name="l00665"></a>00665 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \</span>
+<a name="l00666"></a>00666 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span>
+<a name="l00667"></a>00667 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span>
+<a name="l00668"></a>00668 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span>
+<a name="l00669"></a>00669 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \</span>
+<a name="l00670"></a>00670 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span>
+<a name="l00671"></a>00671 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span>
+<a name="l00672"></a>00672 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span>
+<a name="l00673"></a>00673 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \</span>
+<a name="l00674"></a>00674 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \</span>
+<a name="l00675"></a>00675 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \</span>
+<a name="l00676"></a>00676 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \</span>
+<a name="l00677"></a>00677 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \</span>
+<a name="l00678"></a>00678 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span>
+<a name="l00679"></a>00679 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span>
+<a name="l00680"></a>00680 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span>
+<a name="l00681"></a>00681 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \</span>
+<a name="l00682"></a>00682 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span>
+<a name="l00683"></a>00683 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span>
+<a name="l00684"></a>00684 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span>
+<a name="l00685"></a>00685 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \</span>
+<a name="l00686"></a>00686 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span>
+<a name="l00687"></a>00687 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span>
+<a name="l00688"></a>00688 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span>
+<a name="l00689"></a>00689 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \</span>
+<a name="l00690"></a>00690 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \</span>
+<a name="l00691"></a>00691 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \</span>
+<a name="l00692"></a>00692 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \</span>
+<a name="l00693"></a>00693 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \</span>
+<a name="l00694"></a>00694 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span>
+<a name="l00695"></a>00695 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span>
+<a name="l00696"></a>00696 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span>
+<a name="l00697"></a>00697 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \</span>
+<a name="l00698"></a>00698 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span>
+<a name="l00699"></a>00699 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span>
+<a name="l00700"></a>00700 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span>
+<a name="l00701"></a>00701 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \</span>
+<a name="l00702"></a>00702 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span>
+<a name="l00703"></a>00703 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span>
+<a name="l00704"></a>00704 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span>
+<a name="l00705"></a>00705 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \</span>
+<a name="l00706"></a>00706 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \</span>
+<a name="l00707"></a>00707 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \</span>
+<a name="l00708"></a>00708 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \</span>
+<a name="l00709"></a>00709 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \</span>
+<a name="l00710"></a>00710 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span>
+<a name="l00711"></a>00711 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span>
+<a name="l00712"></a>00712 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span>
+<a name="l00713"></a>00713 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \</span>
+<a name="l00714"></a>00714 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span>
+<a name="l00715"></a>00715 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span>
+<a name="l00716"></a>00716 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span>
+<a name="l00717"></a>00717 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \</span>
+<a name="l00718"></a>00718 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span>
+<a name="l00719"></a>00719 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span>
+<a name="l00720"></a>00720 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span>
+<a name="l00721"></a>00721 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \</span>
+<a name="l00722"></a>00722 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \</span>
+<a name="l00723"></a>00723 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \</span>
+<a name="l00724"></a>00724 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \</span>
+<a name="l00725"></a>00725 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \</span>
+<a name="l00726"></a>00726 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span>
+<a name="l00727"></a>00727 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span>
+<a name="l00728"></a>00728 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span>
+<a name="l00729"></a>00729 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \</span>
+<a name="l00730"></a>00730 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span>
+<a name="l00731"></a>00731 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span>
+<a name="l00732"></a>00732 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span>
+<a name="l00733"></a>00733 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \</span>
+<a name="l00734"></a>00734 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span>
+<a name="l00735"></a>00735 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span>
+<a name="l00736"></a>00736 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span>
+<a name="l00737"></a>00737 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \</span>
+<a name="l00738"></a>00738 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \</span>
+<a name="l00739"></a>00739 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \</span>
+<a name="l00740"></a>00740 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \</span>
+<a name="l00741"></a>00741 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \</span>
+<a name="l00742"></a>00742 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span>
+<a name="l00743"></a>00743 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span>
+<a name="l00744"></a>00744 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span>
+<a name="l00745"></a>00745 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \</span>
+<a name="l00746"></a>00746 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span>
+<a name="l00747"></a>00747 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span>
+<a name="l00748"></a>00748 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span>
+<a name="l00749"></a>00749 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \</span>
+<a name="l00750"></a>00750 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span>
+<a name="l00751"></a>00751 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span>
+<a name="l00752"></a>00752 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span>
+<a name="l00753"></a>00753 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \</span>
+<a name="l00754"></a>00754 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \</span>
+<a name="l00755"></a>00755 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \</span>
+<a name="l00756"></a>00756 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \</span>
+<a name="l00757"></a>00757 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \</span>
+<a name="l00758"></a>00758 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span>
+<a name="l00759"></a>00759 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span>
+<a name="l00760"></a>00760 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span>
+<a name="l00761"></a>00761 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \</span>
+<a name="l00762"></a>00762 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span>
+<a name="l00763"></a>00763 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span>
+<a name="l00764"></a>00764 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span>
+<a name="l00765"></a>00765 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \</span>
+<a name="l00766"></a>00766 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span>
+<a name="l00767"></a>00767 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span>
+<a name="l00768"></a>00768 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \</span>
+<a name="l00769"></a>00769 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \</span>
+<a name="l00770"></a>00770 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \</span>
+<a name="l00771"></a>00771 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \</span>
+<a name="l00772"></a>00772 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \</span>
+<a name="l00773"></a>00773 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)</span>
+<a name="l00774"></a>00774 <span class="preprocessor"></span>
+<a name="l00775"></a>00775 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span>
+<a name="l00776"></a>00776 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span>
+<a name="l00777"></a>00777 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span>
+<a name="l00778"></a>00778 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span>
+<a name="l00779"></a>00779 <span class="preprocessor"></span>
+<a name="l00780"></a>00780 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span>
+<a name="l00781"></a>00781 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span>
+<a name="l00782"></a>00782 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span>
+<a name="l00783"></a>00783 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q, p)</span>
+<a name="l00784"></a>00784 <span class="preprocessor"></span>
+<a name="l00785"></a>00785 <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)</span>
+<a name="l00786"></a>00786 
+<a name="l00787"></a>00787 <span class="preprocessor">#endif//glm_core_swizzle_func</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 21 - 21
doc/api-0.9.3/a00007.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tmat2x3 Struct Reference</title>
+<title>_vectorize.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,46 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00007.html">tmat2x3</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">tmat2x3 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">_vectorize.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tmat2x3" -->
-<p><a href="a00237.html">List of all members.</a></p>
+
+<p><a href="a00007_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for 2 columns and 3 rows matrix of floating-point numbers. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2011-10-14 / 2011-10-14 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+
+<p>Definition in file <a class="el" href="a00007_source.html">_vectorize.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 225 - 0
doc/api-0.9.3/a00007_source.html

@@ -0,0 +1,225 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>_vectorize.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">_vectorize.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00007.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="preprocessor">#define VECTORIZE2_VEC(func) \</span>
+<a name="l00030"></a>00030 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00031"></a>00031 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; func( \</span>
+<a name="l00032"></a>00032 <span class="preprocessor">                detail::tvec2&lt;T&gt; const &amp; v) \</span>
+<a name="l00033"></a>00033 <span class="preprocessor">    { \</span>
+<a name="l00034"></a>00034 <span class="preprocessor">        return detail::tvec2&lt;T&gt;( \</span>
+<a name="l00035"></a>00035 <span class="preprocessor">            func(v.x), \</span>
+<a name="l00036"></a>00036 <span class="preprocessor">            func(v.y)); \</span>
+<a name="l00037"></a>00037 <span class="preprocessor">    }</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span>
+<a name="l00039"></a>00039 <span class="preprocessor">#define VECTORIZE3_VEC(func) \</span>
+<a name="l00040"></a>00040 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00041"></a>00041 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; func( \</span>
+<a name="l00042"></a>00042 <span class="preprocessor">                detail::tvec3&lt;T&gt; const &amp; v) \</span>
+<a name="l00043"></a>00043 <span class="preprocessor">    { \</span>
+<a name="l00044"></a>00044 <span class="preprocessor">        return detail::tvec3&lt;T&gt;( \</span>
+<a name="l00045"></a>00045 <span class="preprocessor">            func(v.x), \</span>
+<a name="l00046"></a>00046 <span class="preprocessor">            func(v.y), \</span>
+<a name="l00047"></a>00047 <span class="preprocessor">            func(v.z)); \</span>
+<a name="l00048"></a>00048 <span class="preprocessor">    }</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="preprocessor">#define VECTORIZE4_VEC(func) \</span>
+<a name="l00051"></a>00051 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00052"></a>00052 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; func( \</span>
+<a name="l00053"></a>00053 <span class="preprocessor">                detail::tvec4&lt;T&gt; const &amp; v) \</span>
+<a name="l00054"></a>00054 <span class="preprocessor">    { \</span>
+<a name="l00055"></a>00055 <span class="preprocessor">        return detail::tvec4&lt;T&gt;( \</span>
+<a name="l00056"></a>00056 <span class="preprocessor">            func(v.x), \</span>
+<a name="l00057"></a>00057 <span class="preprocessor">            func(v.y), \</span>
+<a name="l00058"></a>00058 <span class="preprocessor">            func(v.z), \</span>
+<a name="l00059"></a>00059 <span class="preprocessor">            func(v.w)); \</span>
+<a name="l00060"></a>00060 <span class="preprocessor">    }</span>
+<a name="l00061"></a>00061 <span class="preprocessor"></span>
+<a name="l00062"></a>00062 <span class="preprocessor">#define VECTORIZE_VEC(func) \</span>
+<a name="l00063"></a>00063 <span class="preprocessor">        VECTORIZE2_VEC(func) \</span>
+<a name="l00064"></a>00064 <span class="preprocessor">        VECTORIZE3_VEC(func) \</span>
+<a name="l00065"></a>00065 <span class="preprocessor">        VECTORIZE4_VEC(func)</span>
+<a name="l00066"></a>00066 <span class="preprocessor"></span>
+<a name="l00067"></a>00067 <span class="preprocessor">#define VECTORIZE2_VEC_SCA(func) \</span>
+<a name="l00068"></a>00068 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00069"></a>00069 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; func \</span>
+<a name="l00070"></a>00070 <span class="preprocessor">        ( \</span>
+<a name="l00071"></a>00071 <span class="preprocessor">                detail::tvec2&lt;T&gt; const &amp; x,  \</span>
+<a name="l00072"></a>00072 <span class="preprocessor">                typename detail::tvec2&lt;T&gt;::value_type const &amp; y \</span>
+<a name="l00073"></a>00073 <span class="preprocessor">        ) \</span>
+<a name="l00074"></a>00074 <span class="preprocessor">    { \</span>
+<a name="l00075"></a>00075 <span class="preprocessor">        return detail::tvec2&lt;T&gt;( \</span>
+<a name="l00076"></a>00076 <span class="preprocessor">            func(x.x, y), \</span>
+<a name="l00077"></a>00077 <span class="preprocessor">            func(x.y, y)); \</span>
+<a name="l00078"></a>00078 <span class="preprocessor">    }</span>
+<a name="l00079"></a>00079 <span class="preprocessor"></span>
+<a name="l00080"></a>00080 <span class="preprocessor">#define VECTORIZE3_VEC_SCA(func) \</span>
+<a name="l00081"></a>00081 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00082"></a>00082 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; func \</span>
+<a name="l00083"></a>00083 <span class="preprocessor">        ( \</span>
+<a name="l00084"></a>00084 <span class="preprocessor">                detail::tvec3&lt;T&gt; const &amp; x,  \</span>
+<a name="l00085"></a>00085 <span class="preprocessor">                typename detail::tvec3&lt;T&gt;::value_type const &amp; y \</span>
+<a name="l00086"></a>00086 <span class="preprocessor">        ) \</span>
+<a name="l00087"></a>00087 <span class="preprocessor">    { \</span>
+<a name="l00088"></a>00088 <span class="preprocessor">        return detail::tvec3&lt;T&gt;( \</span>
+<a name="l00089"></a>00089 <span class="preprocessor">            func(x.x, y), \</span>
+<a name="l00090"></a>00090 <span class="preprocessor">            func(x.y, y), \</span>
+<a name="l00091"></a>00091 <span class="preprocessor">            func(x.z, y)); \</span>
+<a name="l00092"></a>00092 <span class="preprocessor">    }</span>
+<a name="l00093"></a>00093 <span class="preprocessor"></span>
+<a name="l00094"></a>00094 <span class="preprocessor">#define VECTORIZE4_VEC_SCA(func) \</span>
+<a name="l00095"></a>00095 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00096"></a>00096 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; func \</span>
+<a name="l00097"></a>00097 <span class="preprocessor">        ( \</span>
+<a name="l00098"></a>00098 <span class="preprocessor">                detail::tvec4&lt;T&gt; const &amp; x,  \</span>
+<a name="l00099"></a>00099 <span class="preprocessor">                typename detail::tvec4&lt;T&gt;::value_type const &amp; y \</span>
+<a name="l00100"></a>00100 <span class="preprocessor">        ) \</span>
+<a name="l00101"></a>00101 <span class="preprocessor">    { \</span>
+<a name="l00102"></a>00102 <span class="preprocessor">        return detail::tvec4&lt;T&gt;( \</span>
+<a name="l00103"></a>00103 <span class="preprocessor">            func(x.x, y), \</span>
+<a name="l00104"></a>00104 <span class="preprocessor">            func(x.y, y), \</span>
+<a name="l00105"></a>00105 <span class="preprocessor">            func(x.z, y), \</span>
+<a name="l00106"></a>00106 <span class="preprocessor">            func(x.w, y)); \</span>
+<a name="l00107"></a>00107 <span class="preprocessor">    }</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span>
+<a name="l00109"></a>00109 <span class="preprocessor">#define VECTORIZE_VEC_SCA(func) \</span>
+<a name="l00110"></a>00110 <span class="preprocessor">        VECTORIZE2_VEC_SCA(func) \</span>
+<a name="l00111"></a>00111 <span class="preprocessor">        VECTORIZE3_VEC_SCA(func) \</span>
+<a name="l00112"></a>00112 <span class="preprocessor">        VECTORIZE4_VEC_SCA(func)</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span>
+<a name="l00114"></a>00114 <span class="preprocessor">#define VECTORIZE2_VEC_VEC(func) \</span>
+<a name="l00115"></a>00115 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00116"></a>00116 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; func \</span>
+<a name="l00117"></a>00117 <span class="preprocessor">        ( \</span>
+<a name="l00118"></a>00118 <span class="preprocessor">                detail::tvec2&lt;T&gt; const &amp; x,  \</span>
+<a name="l00119"></a>00119 <span class="preprocessor">                detail::tvec2&lt;T&gt; const &amp; y \</span>
+<a name="l00120"></a>00120 <span class="preprocessor">        ) \</span>
+<a name="l00121"></a>00121 <span class="preprocessor">    { \</span>
+<a name="l00122"></a>00122 <span class="preprocessor">        return detail::tvec2&lt;T&gt;( \</span>
+<a name="l00123"></a>00123 <span class="preprocessor">            func(x.x, y.x), \</span>
+<a name="l00124"></a>00124 <span class="preprocessor">            func(x.y, y.y)); \</span>
+<a name="l00125"></a>00125 <span class="preprocessor">    }</span>
+<a name="l00126"></a>00126 <span class="preprocessor"></span>
+<a name="l00127"></a>00127 <span class="preprocessor">#define VECTORIZE3_VEC_VEC(func) \</span>
+<a name="l00128"></a>00128 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00129"></a>00129 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; func \</span>
+<a name="l00130"></a>00130 <span class="preprocessor">        ( \</span>
+<a name="l00131"></a>00131 <span class="preprocessor">                detail::tvec3&lt;T&gt; const &amp; x,  \</span>
+<a name="l00132"></a>00132 <span class="preprocessor">                detail::tvec3&lt;T&gt; const &amp; y \</span>
+<a name="l00133"></a>00133 <span class="preprocessor">        ) \</span>
+<a name="l00134"></a>00134 <span class="preprocessor">    { \</span>
+<a name="l00135"></a>00135 <span class="preprocessor">        return detail::tvec3&lt;T&gt;( \</span>
+<a name="l00136"></a>00136 <span class="preprocessor">            func(x.x, y.x), \</span>
+<a name="l00137"></a>00137 <span class="preprocessor">            func(x.y, y.y), \</span>
+<a name="l00138"></a>00138 <span class="preprocessor">            func(x.z, y.z)); \</span>
+<a name="l00139"></a>00139 <span class="preprocessor">    }</span>
+<a name="l00140"></a>00140 <span class="preprocessor"></span>
+<a name="l00141"></a>00141 <span class="preprocessor">#define VECTORIZE4_VEC_VEC(func) \</span>
+<a name="l00142"></a>00142 <span class="preprocessor">    template &lt;typename T&gt; \</span>
+<a name="l00143"></a>00143 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; func \</span>
+<a name="l00144"></a>00144 <span class="preprocessor">        ( \</span>
+<a name="l00145"></a>00145 <span class="preprocessor">                detail::tvec4&lt;T&gt; const &amp; x,  \</span>
+<a name="l00146"></a>00146 <span class="preprocessor">                detail::tvec4&lt;T&gt; const &amp; y \</span>
+<a name="l00147"></a>00147 <span class="preprocessor">        ) \</span>
+<a name="l00148"></a>00148 <span class="preprocessor">    { \</span>
+<a name="l00149"></a>00149 <span class="preprocessor">        return detail::tvec4&lt;T&gt;( \</span>
+<a name="l00150"></a>00150 <span class="preprocessor">            func(x.x, y.x), \</span>
+<a name="l00151"></a>00151 <span class="preprocessor">            func(x.y, y.y), \</span>
+<a name="l00152"></a>00152 <span class="preprocessor">            func(x.z, y.z), \</span>
+<a name="l00153"></a>00153 <span class="preprocessor">            func(x.w, y.w)); \</span>
+<a name="l00154"></a>00154 <span class="preprocessor">    }</span>
+<a name="l00155"></a>00155 <span class="preprocessor"></span>
+<a name="l00156"></a>00156 <span class="preprocessor">#define VECTORIZE_VEC_VEC(func) \</span>
+<a name="l00157"></a>00157 <span class="preprocessor">        VECTORIZE2_VEC_VEC(func) \</span>
+<a name="l00158"></a>00158 <span class="preprocessor">        VECTORIZE3_VEC_VEC(func) \</span>
+<a name="l00159"></a>00159 <span class="preprocessor">        VECTORIZE4_VEC_VEC(func)</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 24 - 21
doc/api-0.9.3/a00008.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tmat2x4 Struct Reference</title>
+<title>associated_min_max.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,49 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00008.html">tmat2x4</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">tmat2x4 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">associated_min_max.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tmat2x4" -->
-<p><a href="a00238.html">List of all members.</a></p>
+
+<p><a href="a00008_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for 2 columns and 4 rows matrix of floating-point numbers. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00152.html">GLM_GTX_associated_min_max: Associated Min/Max</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-03-10 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00164.html" title="Min and max functions for 3 to 4 parameters.">GLM_GTX_extented_min_max: Extended min max</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00008_source.html">associated_min_max.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 157 - 0
doc/api-0.9.3/a00008_source.html

@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>associated_min_max.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">associated_min_max.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00008.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_associated_min_max</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_associated_min_max GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_associated_min_max extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
+<a name="l00056"></a>00056         genTypeU associatedMin(
+<a name="l00057"></a>00057                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
+<a name="l00058"></a>00058                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b);
+<a name="l00059"></a>00059 
+<a name="l00062"></a>00062         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
+<a name="l00063"></a>00063         genTypeU associatedMin(
+<a name="l00064"></a>00064                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
+<a name="l00065"></a>00065                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b, 
+<a name="l00066"></a>00066                 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c);
+<a name="l00067"></a>00067 
+<a name="l00070"></a>00070         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
+<a name="l00071"></a>00071         genTypeU associatedMin(
+<a name="l00072"></a>00072                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
+<a name="l00073"></a>00073                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b, 
+<a name="l00074"></a>00074                 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c, 
+<a name="l00075"></a>00075                 <span class="keyword">const</span> genTypeT&amp; w, <span class="keyword">const</span> genTypeU&amp; d);
+<a name="l00076"></a>00076 
+<a name="l00079"></a>00079         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
+<a name="l00080"></a>00080         genTypeU associatedMax(
+<a name="l00081"></a>00081                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
+<a name="l00082"></a>00082                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b);
+<a name="l00083"></a>00083 
+<a name="l00086"></a>00086         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
+<a name="l00087"></a>00087         genTypeU associatedMax(
+<a name="l00088"></a>00088                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
+<a name="l00089"></a>00089                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b, 
+<a name="l00090"></a>00090                 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c);
+<a name="l00091"></a>00091 
+<a name="l00094"></a>00094         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
+<a name="l00095"></a>00095         genTypeU associatedMax(
+<a name="l00096"></a>00096                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
+<a name="l00097"></a>00097                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b, 
+<a name="l00098"></a>00098                 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c, 
+<a name="l00099"></a>00099                 <span class="keyword">const</span> genTypeT&amp; w, <span class="keyword">const</span> genTypeU&amp; d);
+<a name="l00100"></a>00100 
+<a name="l00102"></a>00102 } <span class="comment">//namespace glm</span>
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104 <span class="preprocessor">#include &quot;associated_min_max.inl&quot;</span>
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106 <span class="preprocessor">#endif//GLM_GTX_associated_min_max</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 31 - 21
doc/api-0.9.3/a00009.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tmat3x2 Struct Reference</title>
+<title>bit.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,56 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00009.html">tmat3x2</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">tmat3x2 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">bit.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tmat3x2" -->
-<p><a href="a00239.html">List of all members.</a></p>
+
+<p><a href="a00009_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for 3 columns and 2 rows matrix of floating-point numbers. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00153.html">GLM_GTX_bit: Extended bitwise operations</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2007-03-14 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00141.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence)</dd></dl>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00153.html">GLM_GTX_bit: Extended bitwise operations</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-30 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00009_source.html">bit.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 174 - 0
doc/api-0.9.3/a00009_source.html

@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>bit.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">bit.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00009.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_bit</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_bit GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_bit extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
+<a name="l00054"></a>00054 
+<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIType&gt;
+<a name="l00058"></a>00058         genIType mask(genIType <span class="keyword">const</span> &amp; count);
+<a name="l00059"></a>00059 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType, <span class="keyword">typename</span> sizeType&gt;
+<a name="l00064"></a>00064         genIUType extractField(
+<a name="l00065"></a>00065                 genIUType <span class="keyword">const</span> &amp; v, 
+<a name="l00066"></a>00066                 sizeType <span class="keyword">const</span> &amp; first, 
+<a name="l00067"></a>00067                 sizeType <span class="keyword">const</span> &amp; count);
+<a name="l00068"></a>00068 
+<a name="l00071"></a>00071         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00072"></a>00072         <span class="keywordtype">int</span> lowestBit(genType <span class="keyword">const</span> &amp; value);
+<a name="l00073"></a>00073 
+<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00077"></a>00077         <span class="keywordtype">int</span> highestBit(genType <span class="keyword">const</span> &amp; value);
+<a name="l00078"></a>00078 
+<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00082"></a>00082         genType highestBitValue(genType <span class="keyword">const</span> &amp; value);
+<a name="l00083"></a>00083 
+<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00087"></a>00087         <span class="keywordtype">bool</span> isPowerOfTwo(genType <span class="keyword">const</span> &amp; value);
+<a name="l00088"></a>00088 
+<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00092"></a>00092         genType powerOfTwoAbove(genType <span class="keyword">const</span> &amp; value);
+<a name="l00093"></a>00093 
+<a name="l00096"></a>00096         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00097"></a>00097         genType powerOfTwoBelow(genType <span class="keyword">const</span> &amp; value);
+<a name="l00098"></a>00098 
+<a name="l00101"></a>00101         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00102"></a>00102         genType powerOfTwoNearest(genType <span class="keyword">const</span> &amp; value);
+<a name="l00103"></a>00103 
+<a name="l00106"></a>00106         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00107"></a>00107         genType bitRevert(genType <span class="keyword">const</span> &amp; value);
+<a name="l00108"></a>00108 
+<a name="l00111"></a>00111         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00112"></a>00112         genType bitRotateRight(genType <span class="keyword">const</span> &amp; In, std::size_t Shift);
+<a name="l00113"></a>00113 
+<a name="l00116"></a>00116         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00117"></a>00117         genType bitRotateLeft(genType <span class="keyword">const</span> &amp; In, std::size_t Shift);
+<a name="l00118"></a>00118 
+<a name="l00121"></a>00121         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
+<a name="l00122"></a>00122         genIUType fillBitfieldWithOne(
+<a name="l00123"></a>00123                 genIUType <span class="keyword">const</span> &amp; Value,
+<a name="l00124"></a>00124                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; FromBit, 
+<a name="l00125"></a>00125                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; ToBit);
+<a name="l00126"></a>00126 
+<a name="l00129"></a>00129         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
+<a name="l00130"></a>00130         genIUType fillBitfieldWithZero(
+<a name="l00131"></a>00131                 genIUType <span class="keyword">const</span> &amp; Value,
+<a name="l00132"></a>00132                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; FromBit, 
+<a name="l00133"></a>00133                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; ToBit);
+<a name="l00134"></a>00134 
+<a name="l00136"></a>00136 } <span class="comment">//namespace glm</span>
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138 <span class="preprocessor">#include &quot;bit.inl&quot;</span>
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140 <span class="preprocessor">#endif//GLM_GTX_bit</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 127 - 0
doc/api-0.9.3/a00010_source.html

@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>closest_point.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">closest_point.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_closest_point</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_closest_point GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00056"></a>00056         detail::tvec3&lt;T&gt; closestPointOnLine(
+<a name="l00057"></a>00057                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; point, 
+<a name="l00058"></a>00058                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; a, 
+<a name="l00059"></a>00059                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; b);
+<a name="l00060"></a>00060 
+<a name="l00062"></a>00062 }<span class="comment">// namespace glm</span>
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="preprocessor">#include &quot;closest_point.inl&quot;</span>
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066 <span class="preprocessor">#endif//GLM_GTX_closest_point</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 24 - 21
doc/api-0.9.3/a00011.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tmat3x4 Struct Reference</title>
+<title>color_cast.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,49 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00011.html">tmat3x4</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">tmat3x4 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">color_cast.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tmat3x4" -->
-<p><a href="a00241.html">List of all members.</a></p>
+
+<p><a href="a00011_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for 3 columns and 4 rows matrix of floating-point numbers. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00155.html">GLM_GTX_color_cast: Color conversion</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2007-06-21 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00186.html" title="Defined size types.">GLM_GTX_number_precision: Number precision</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00011_source.html">color_cast.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 183 - 0
doc/api-0.9.3/a00011_source.html

@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>color_cast.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">color_cast.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00011.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_color_cast</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_color_cast GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtx/number_precision.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_color_cast extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
+<a name="l00054"></a>00054 
+<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; uint8 u8channel_cast(valType a);
+<a name="l00058"></a>00058 
+<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;     uint16 u16channel_cast(valType a);
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 u32_rgbx_cast(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; c);          
+<a name="l00064"></a>00064         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 u32_xrgb_cast(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; c);          
+<a name="l00065"></a>00065         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 u32_bgrx_cast(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; c);          
+<a name="l00066"></a>00066         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 u32_xbgr_cast(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; c);          
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 u32_rgba_cast(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; c);          
+<a name="l00069"></a>00069         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 u32_argb_cast(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; c);          
+<a name="l00070"></a>00070         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 u32_bgra_cast(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; c);          
+<a name="l00071"></a>00071         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 u32_abgr_cast(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; c);          
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 u64_rgbx_cast(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; c);          
+<a name="l00074"></a>00074         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 u64_xrgb_cast(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; c);          
+<a name="l00075"></a>00075         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 u64_bgrx_cast(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; c);          
+<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 u64_xbgr_cast(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; c);          
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 u64_rgba_cast(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; c);          
+<a name="l00079"></a>00079         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 u64_argb_cast(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; c);          
+<a name="l00080"></a>00080         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 u64_bgra_cast(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; c);          
+<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 u64_abgr_cast(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; c);          
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16 f16_channel_cast(T a);        
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16vec3 f16_rgbx_cast(T c);               
+<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16vec3 f16_xrgb_cast(T c);               
+<a name="l00087"></a>00087         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16vec3 f16_bgrx_cast(T c);               
+<a name="l00088"></a>00088         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16vec3 f16_xbgr_cast(T c);               
+<a name="l00089"></a>00089 
+<a name="l00090"></a>00090         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16vec4 f16_rgba_cast(T c);               
+<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16vec4 f16_argb_cast(T c);               
+<a name="l00092"></a>00092         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16vec4 f16_bgra_cast(T c);               
+<a name="l00093"></a>00093         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f16vec4 f16_abgr_cast(T c);               
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32 f32_channel_cast(T a);                
+<a name="l00096"></a>00096 
+<a name="l00097"></a>00097         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32vec3 f32_rgbx_cast(T c);               
+<a name="l00098"></a>00098         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32vec3 f32_xrgb_cast(T c);               
+<a name="l00099"></a>00099         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32vec3 f32_bgrx_cast(T c);               
+<a name="l00100"></a>00100         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32vec3 f32_xbgr_cast(T c);               
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32vec4 f32_rgba_cast(T c);               
+<a name="l00103"></a>00103         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32vec4 f32_argb_cast(T c);               
+<a name="l00104"></a>00104         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32vec4 f32_bgra_cast(T c);               
+<a name="l00105"></a>00105         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f32vec4 f32_abgr_cast(T c);               
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64 f64_channel_cast(T a);                
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64vec3 f64_rgbx_cast(T c);               
+<a name="l00110"></a>00110         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64vec3 f64_xrgb_cast(T c);               
+<a name="l00111"></a>00111         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64vec3 f64_bgrx_cast(T c);               
+<a name="l00112"></a>00112         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64vec3 f64_xbgr_cast(T c);               
+<a name="l00113"></a>00113 
+<a name="l00114"></a>00114         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64vec4 f64_rgba_cast(T c);               
+<a name="l00115"></a>00115         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64vec4 f64_argb_cast(T c);               
+<a name="l00116"></a>00116         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64vec4 f64_bgra_cast(T c);               
+<a name="l00117"></a>00117         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; f64vec4 f64_abgr_cast(T c);               
+<a name="l00118"></a>00118 
+<a name="l00120"></a>00120 }<span class="comment">//namespace glm</span>
+<a name="l00121"></a>00121 
+<a name="l00122"></a>00122 <span class="preprocessor">#include &quot;color_cast.inl&quot;</span>
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124 <span class="preprocessor">#endif//GLM_GTX_color_cast</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 22 - 21
doc/api-0.9.3/a00012.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tmat4x2 Struct Reference</title>
+<title>color_space.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,47 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00012.html">tmat4x2</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">tmat4x2 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">color_space.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tmat4x2" -->
-<p><a href="a00242.html">List of all members.</a></p>
+
+<p><a href="a00012_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for 4 columns and 2 rows matrix of floating-point numbers. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00156.html">GLM_GTX_color_space: RGB to HSV conversion</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00012_source.html">color_space.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 147 - 0
doc/api-0.9.3/a00012_source.html

@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>color_space.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">color_space.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00012.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_color_space</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_color_space GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_color_space extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00056"></a>00056         detail::tvec3&lt;valType&gt; rgbColor(
+<a name="l00057"></a>00057                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; hsvValue);
+<a name="l00058"></a>00058 
+<a name="l00061"></a>00061     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00062"></a>00062         detail::tvec3&lt;valType&gt; hsvColor(
+<a name="l00063"></a>00063                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; rgbValue);
+<a name="l00064"></a>00064                 
+<a name="l00067"></a>00067     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00068"></a>00068         detail::tmat4x4&lt;valType&gt; saturation(
+<a name="l00069"></a>00069                 valType <span class="keyword">const</span> s);
+<a name="l00070"></a>00070 
+<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00074"></a>00074         detail::tvec3&lt;valType&gt; saturation(
+<a name="l00075"></a>00075                 valType <span class="keyword">const</span> s, 
+<a name="l00076"></a>00076                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; color);
+<a name="l00077"></a>00077                 
+<a name="l00080"></a>00080     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00081"></a>00081         detail::tvec4&lt;valType&gt; saturation(
+<a name="l00082"></a>00082                 valType <span class="keyword">const</span> s, 
+<a name="l00083"></a>00083                 detail::tvec4&lt;valType&gt; <span class="keyword">const</span> &amp; color);
+<a name="l00084"></a>00084                 
+<a name="l00087"></a>00087         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00088"></a>00088         valType luminosity(
+<a name="l00089"></a>00089                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; color);
+<a name="l00090"></a>00090 
+<a name="l00092"></a>00092 }<span class="comment">//namespace glm</span>
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094 <span class="preprocessor">#include &quot;color_space.inl&quot;</span>
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096 <span class="preprocessor">#endif//GLM_GTX_color_space</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 22 - 21
doc/api-0.9.3/a00013.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tmat4x3 Struct Reference</title>
+<title>color_space_YCoCg.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,47 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00013.html">tmat4x3</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">tmat4x3 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">color_space_YCoCg.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tmat4x3" -->
-<p><a href="a00243.html">List of all members.</a></p>
+
+<p><a href="a00013_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for 4 columns and 3 rows matrix of floating-point numbers. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00157.html">GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-10-28 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00013_source.html">color_space_YCoCg.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 137 - 0
doc/api-0.9.3/a00013_source.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>color_space_YCoCg.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">color_space_YCoCg.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00013.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef glm_gtx_color_space_YCoCg</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define glm_gtx_color_space_YCoCg GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_color_space_YCoCg extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00056"></a>00056         detail::tvec3&lt;valType&gt; rgb2YCoCg(
+<a name="l00057"></a>00057                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; rgbColor);
+<a name="l00058"></a>00058 
+<a name="l00061"></a>00061     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00062"></a>00062         detail::tvec3&lt;valType&gt; YCoCg2rgb(
+<a name="l00063"></a>00063                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; YCoCgColor);
+<a name="l00064"></a>00064 
+<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00069"></a>00069         detail::tvec3&lt;valType&gt; rgb2YCoCgR(
+<a name="l00070"></a>00070                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; rgbColor);
+<a name="l00071"></a>00071 
+<a name="l00075"></a>00075     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00076"></a>00076         detail::tvec3&lt;valType&gt; YCoCgR2rgb(
+<a name="l00077"></a>00077                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; YCoCgColor);
+<a name="l00078"></a>00078 
+<a name="l00080"></a>00080 }<span class="comment">//namespace glm</span>
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082 <span class="preprocessor">#include &quot;color_space_YCoCg.inl&quot;</span>
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084 <span class="preprocessor">#endif//glm_gtx_color_space_YCoCg</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 24 - 21
doc/api-0.9.3/a00014.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tmat4x4 Struct Reference</title>
+<title>compatibility.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,47 +32,49 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00014.html">tmat4x4</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">tmat4x4 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">compatibility.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tmat4x4" -->
-<p><a href="a00244.html">List of all members.</a></p>
+
+<p><a href="a00014_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for 4 * 4 matrix of floating-point numbers. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00158.html">GLM_GTX_compatibility: Cg and HLSL compatibility</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2007-01-24 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00141.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00014_source.html">compatibility.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 243 - 0
doc/api-0.9.3/a00014_source.html

@@ -0,0 +1,243 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>compatibility.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">compatibility.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00014.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_compatibility</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_compatibility GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>  
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_compatibility extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#include &lt;cfloat&gt;</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#endif//GLM_COMPILER</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span>
+<a name="l00056"></a>00056 <span class="keyword">namespace </span>glm
+<a name="l00057"></a>00057 {
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}                                                                                                                                                                    
+<a name="l00062"></a>00062         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; lerp(<span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}                                                 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; lerp(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}                                                 
+<a name="l00064"></a>00064         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; lerp(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}                                                 
+<a name="l00065"></a>00065         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; lerp(<span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; y, <span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}   
+<a name="l00066"></a>00066         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; lerp(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; y, <span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}   
+<a name="l00067"></a>00067         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; lerp(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; y, <span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}   
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T saturate(T x){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}                                                                                                          
+<a name="l00070"></a>00070         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; saturate(<span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}                                     
+<a name="l00071"></a>00071         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; saturate(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}                                     
+<a name="l00072"></a>00072         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; saturate(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00125.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}                                     
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T atan2(T x, T y){<span class="keywordflow">return</span> <a class="code" href="a00132.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(x, y);}                                                                                                                          
+<a name="l00075"></a>00075         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; atan2(<span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00132.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(x, y);}       
+<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; atan2(<span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec3&lt;T&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00132.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(x, y);}       
+<a name="l00077"></a>00077         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; atan2(<span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; x, <span class="keyword">const</span> detail::tvec4&lt;T&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00132.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(x, y);}       
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> isfinite(genType <span class="keyword">const</span> &amp; x);                                                                                   
+<a name="l00080"></a>00080         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; detail::tvec2&lt;bool&gt; isfinite(<span class="keyword">const</span> detail::tvec2&lt;valType&gt;&amp; x);                              
+<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; detail::tvec3&lt;bool&gt; isfinite(<span class="keyword">const</span> detail::tvec3&lt;valType&gt;&amp; x);                              
+<a name="l00082"></a>00082         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; detail::tvec4&lt;bool&gt; isfinite(<span class="keyword">const</span> detail::tvec4&lt;valType&gt;&amp; x);                              
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00125.html#ga69fcbd40e0ce359f832329c0c93d5912" 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);                                                                                                              
+<a name="l00085"></a>00085         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec2&lt;bool&gt; <a class="code" href="a00125.html#ga69fcbd40e0ce359f832329c0c93d5912" title="Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...">isinf</a>(<span class="keyword">const</span> detail::tvec2&lt;genType&gt;&amp; x);                                 
+<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec3&lt;bool&gt; <a class="code" href="a00125.html#ga69fcbd40e0ce359f832329c0c93d5912" title="Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...">isinf</a>(<span class="keyword">const</span> detail::tvec3&lt;genType&gt;&amp; x);                                 
+<a name="l00087"></a>00087         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec4&lt;bool&gt; <a class="code" href="a00125.html#ga69fcbd40e0ce359f832329c0c93d5912" title="Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...">isinf</a>(<span class="keyword">const</span> detail::tvec4&lt;genType&gt;&amp; x);                                 
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00125.html#ga5efda4205aed487be515b5f2921303f8" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(genType <span class="keyword">const</span> &amp; x);                                                                                                              
+<a name="l00090"></a>00090         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec2&lt;bool&gt; <a class="code" href="a00125.html#ga5efda4205aed487be515b5f2921303f8" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(<span class="keyword">const</span> detail::tvec2&lt;genType&gt;&amp; x);                                 
+<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec3&lt;bool&gt; <a class="code" href="a00125.html#ga5efda4205aed487be515b5f2921303f8" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(<span class="keyword">const</span> detail::tvec3&lt;genType&gt;&amp; x);                                 
+<a name="l00092"></a>00092         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec4&lt;bool&gt; <a class="code" href="a00125.html#ga5efda4205aed487be515b5f2921303f8" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(<span class="keyword">const</span> detail::tvec4&lt;genType&gt;&amp; x);                                 
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094         <span class="keyword">typedef</span> <span class="keywordtype">bool</span>                                            bool1;                  
+<a name="l00095"></a>00095         <span class="keyword">typedef</span> detail::tvec2&lt;bool&gt;                     bool2;                  
+<a name="l00096"></a>00096         <span class="keyword">typedef</span> detail::tvec3&lt;bool&gt;                     bool3;                  
+<a name="l00097"></a>00097         <span class="keyword">typedef</span> detail::tvec4&lt;bool&gt;                     bool4;                  
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099         <span class="keyword">typedef</span> <span class="keywordtype">bool</span>                                            bool1x1;                
+<a name="l00100"></a>00100         <span class="keyword">typedef</span> detail::tmat2x2&lt;bool&gt;           bool2x2;                
+<a name="l00101"></a>00101         <span class="keyword">typedef</span> detail::tmat2x3&lt;bool&gt;           bool2x3;                
+<a name="l00102"></a>00102         <span class="keyword">typedef</span> detail::tmat2x4&lt;bool&gt;           bool2x4;                
+<a name="l00103"></a>00103         <span class="keyword">typedef</span> detail::tmat3x2&lt;bool&gt;           bool3x2;                
+<a name="l00104"></a>00104         <span class="keyword">typedef</span> detail::tmat3x3&lt;bool&gt;           bool3x3;                
+<a name="l00105"></a>00105         <span class="keyword">typedef</span> detail::tmat3x4&lt;bool&gt;           bool3x4;                
+<a name="l00106"></a>00106         <span class="keyword">typedef</span> detail::tmat4x2&lt;bool&gt;           bool4x2;                
+<a name="l00107"></a>00107         <span class="keyword">typedef</span> detail::tmat4x3&lt;bool&gt;           bool4x3;                
+<a name="l00108"></a>00108         <span class="keyword">typedef</span> detail::tmat4x4&lt;bool&gt;           bool4x4;                
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110         <span class="keyword">typedef</span> <span class="keywordtype">int</span>                                                     int1;                   
+<a name="l00111"></a>00111         <span class="keyword">typedef</span> detail::tvec2&lt;int&gt;                      int2;                   
+<a name="l00112"></a>00112         <span class="keyword">typedef</span> detail::tvec3&lt;int&gt;                      int3;                   
+<a name="l00113"></a>00113         <span class="keyword">typedef</span> detail::tvec4&lt;int&gt;                      int4;                   
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115         <span class="keyword">typedef</span> <span class="keywordtype">int</span>                                                     int1x1;                 
+<a name="l00116"></a>00116         <span class="keyword">typedef</span> detail::tmat2x2&lt;int&gt;            int2x2;                 
+<a name="l00117"></a>00117         <span class="keyword">typedef</span> detail::tmat2x3&lt;int&gt;            int2x3;                 
+<a name="l00118"></a>00118         <span class="keyword">typedef</span> detail::tmat2x4&lt;int&gt;            int2x4;                 
+<a name="l00119"></a>00119         <span class="keyword">typedef</span> detail::tmat3x2&lt;int&gt;            int3x2;                 
+<a name="l00120"></a>00120         <span class="keyword">typedef</span> detail::tmat3x3&lt;int&gt;            int3x3;                 
+<a name="l00121"></a>00121         <span class="keyword">typedef</span> detail::tmat3x4&lt;int&gt;            int3x4;                 
+<a name="l00122"></a>00122         <span class="keyword">typedef</span> detail::tmat4x2&lt;int&gt;            int4x2;                 
+<a name="l00123"></a>00123         <span class="keyword">typedef</span> detail::tmat4x3&lt;int&gt;            int4x3;                 
+<a name="l00124"></a>00124         <span class="keyword">typedef</span> detail::tmat4x4&lt;int&gt;            int4x4;                 
+<a name="l00125"></a>00125 
+<a name="l00126"></a>00126         <span class="keyword">typedef</span> detail::half                                    half1;                  
+<a name="l00127"></a>00127         <span class="keyword">typedef</span> detail::tvec2&lt;detail::half&gt;     half2;                  
+<a name="l00128"></a>00128         <span class="keyword">typedef</span> detail::tvec3&lt;detail::half&gt;     half3;                  
+<a name="l00129"></a>00129         <span class="keyword">typedef</span> detail::tvec4&lt;detail::half&gt;     half4;                  
+<a name="l00130"></a>00130 
+<a name="l00131"></a>00131         <span class="keyword">typedef</span> detail::half                                    half1x1;                
+<a name="l00132"></a>00132         <span class="keyword">typedef</span> detail::tmat2x2&lt;detail::half&gt;   half2x2;                
+<a name="l00133"></a>00133         <span class="keyword">typedef</span> detail::tmat2x3&lt;detail::half&gt;   half2x3;                
+<a name="l00134"></a>00134         <span class="keyword">typedef</span> detail::tmat2x4&lt;detail::half&gt;   half2x4;                
+<a name="l00135"></a>00135         <span class="keyword">typedef</span> detail::tmat3x2&lt;detail::half&gt;   half3x2;                
+<a name="l00136"></a>00136         <span class="keyword">typedef</span> detail::tmat3x3&lt;detail::half&gt;   half3x3;                
+<a name="l00137"></a>00137         <span class="keyword">typedef</span> detail::tmat3x4&lt;detail::half&gt;   half3x4;                
+<a name="l00138"></a>00138         <span class="keyword">typedef</span> detail::tmat4x2&lt;detail::half&gt;   half4x2;                
+<a name="l00139"></a>00139         <span class="keyword">typedef</span> detail::tmat4x3&lt;detail::half&gt;   half4x3;                
+<a name="l00140"></a>00140         <span class="keyword">typedef</span> detail::tmat4x4&lt;detail::half&gt;   half4x4;                
+<a name="l00141"></a>00141 
+<a name="l00142"></a>00142         <span class="keyword">typedef</span> <span class="keywordtype">float</span>                                           float1;                 
+<a name="l00143"></a>00143         <span class="keyword">typedef</span> detail::tvec2&lt;float&gt;            float2;                 
+<a name="l00144"></a>00144         <span class="keyword">typedef</span> detail::tvec3&lt;float&gt;            float3;                 
+<a name="l00145"></a>00145         <span class="keyword">typedef</span> detail::tvec4&lt;float&gt;            float4;                 
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147         <span class="keyword">typedef</span> <span class="keywordtype">float</span>                                           float1x1;               
+<a name="l00148"></a>00148         <span class="keyword">typedef</span> detail::tmat2x2&lt;float&gt;          float2x2;               
+<a name="l00149"></a>00149         <span class="keyword">typedef</span> detail::tmat2x3&lt;float&gt;          float2x3;               
+<a name="l00150"></a>00150         <span class="keyword">typedef</span> detail::tmat2x4&lt;float&gt;          float2x4;               
+<a name="l00151"></a>00151         <span class="keyword">typedef</span> detail::tmat3x2&lt;float&gt;          float3x2;               
+<a name="l00152"></a>00152         <span class="keyword">typedef</span> detail::tmat3x3&lt;float&gt;          float3x3;               
+<a name="l00153"></a>00153         <span class="keyword">typedef</span> detail::tmat3x4&lt;float&gt;          float3x4;               
+<a name="l00154"></a>00154         <span class="keyword">typedef</span> detail::tmat4x2&lt;float&gt;          float4x2;               
+<a name="l00155"></a>00155         <span class="keyword">typedef</span> detail::tmat4x3&lt;float&gt;          float4x3;               
+<a name="l00156"></a>00156         <span class="keyword">typedef</span> detail::tmat4x4&lt;float&gt;          float4x4;               
+<a name="l00157"></a>00157 
+<a name="l00158"></a>00158         <span class="keyword">typedef</span> <span class="keywordtype">double</span>                                          double1;                
+<a name="l00159"></a>00159         <span class="keyword">typedef</span> detail::tvec2&lt;double&gt;           double2;                
+<a name="l00160"></a>00160         <span class="keyword">typedef</span> detail::tvec3&lt;double&gt;           double3;                
+<a name="l00161"></a>00161         <span class="keyword">typedef</span> detail::tvec4&lt;double&gt;           double4;                
+<a name="l00162"></a>00162 
+<a name="l00163"></a>00163         <span class="keyword">typedef</span> <span class="keywordtype">double</span>                                          double1x1;              
+<a name="l00164"></a>00164         <span class="keyword">typedef</span> detail::tmat2x2&lt;double&gt;         double2x2;              
+<a name="l00165"></a>00165         <span class="keyword">typedef</span> detail::tmat2x3&lt;double&gt;         double2x3;              
+<a name="l00166"></a>00166         <span class="keyword">typedef</span> detail::tmat2x4&lt;double&gt;         double2x4;              
+<a name="l00167"></a>00167         <span class="keyword">typedef</span> detail::tmat3x2&lt;double&gt;         double3x2;              
+<a name="l00168"></a>00168         <span class="keyword">typedef</span> detail::tmat3x3&lt;double&gt;         double3x3;              
+<a name="l00169"></a>00169         <span class="keyword">typedef</span> detail::tmat3x4&lt;double&gt;         double3x4;              
+<a name="l00170"></a>00170         <span class="keyword">typedef</span> detail::tmat4x2&lt;double&gt;         double4x2;              
+<a name="l00171"></a>00171         <span class="keyword">typedef</span> detail::tmat4x3&lt;double&gt;         double4x3;              
+<a name="l00172"></a>00172         <span class="keyword">typedef</span> detail::tmat4x4&lt;double&gt;         double4x4;              
+<a name="l00173"></a>00173 
+<a name="l00175"></a>00175 }<span class="comment">//namespace glm</span>
+<a name="l00176"></a>00176 
+<a name="l00177"></a>00177 <span class="preprocessor">#include &quot;compatibility.inl&quot;</span>
+<a name="l00178"></a>00178     
+<a name="l00179"></a>00179 <span class="preprocessor">#endif//GLM_GTX_compatibility</span>
+<a name="l00180"></a>00180 <span class="preprocessor"></span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 22 - 30
doc/api-0.9.3/a00015.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tquat Struct Reference</title>
+<title>component_wise.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,56 +32,47 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00015.html">tquat</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#pub-methods">Public Member Functions</a>  </div>
   <div class="headertitle">
-<div class="title">tquat Struct Reference<div class="ingroups"><a class="el" href="a00164.html">GLM_GTC_quaternion: Quaternion types and functions</a></div></div>  </div>
-</div>
+<div class="title">component_wise.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tquat" -->
-<p><a href="a00245.html">List of all members.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8c3222280a87cec13532e5bbd558595"></a><!-- doxytag: member="glm::detail::tquat::tquat" ref="aa8c3222280a87cec13532e5bbd558595" args="(tvec3&lt; T &gt; const &amp;eulerAngles)" -->
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#aa8c3222280a87cec13532e5bbd558595">tquat</a> (<a class="el" href="a00017.html">tvec3</a>&lt; T &gt; const &amp;eulerAngles)</td></tr>
-</table>
+
+<p><a href="a00015_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Template for quaternion. </p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00164.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion: Quaternion types and functions</a> </dd></dl>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00159.html">GLM_GTX_component_wise: Component wise</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2007-05-21 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00015_source.html">component_wise.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 137 - 0
doc/api-0.9.3/a00015_source.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>component_wise.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">component_wise.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00015.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_component_wise</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_component_wise GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_component_wise extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00056"></a>00056         <span class="keyword">typename</span> genType::value_type compAdd(
+<a name="l00057"></a>00057                 genType <span class="keyword">const</span> &amp; v);
+<a name="l00058"></a>00058 
+<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00062"></a>00062         <span class="keyword">typename</span> genType::value_type compMul(
+<a name="l00063"></a>00063                 genType <span class="keyword">const</span> &amp; v);
+<a name="l00064"></a>00064 
+<a name="l00067"></a>00067         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00068"></a>00068         <span class="keyword">typename</span> genType::value_type compMin(
+<a name="l00069"></a>00069                 genType <span class="keyword">const</span> &amp; v);
+<a name="l00070"></a>00070 
+<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00074"></a>00074         <span class="keyword">typename</span> genType::value_type compMax(
+<a name="l00075"></a>00075                 genType <span class="keyword">const</span> &amp; v);
+<a name="l00076"></a>00076 
+<a name="l00078"></a>00078 }<span class="comment">//namespace glm</span>
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080 <span class="preprocessor">#include &quot;component_wise.inl&quot;</span>
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082 <span class="preprocessor">#endif//GLM_GTX_component_wise</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 77 - 39
doc/api-0.9.3/a00016.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tvec2 Struct Reference</title>
+<title>constants.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,68 +32,105 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00016.html">tvec2</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
   <div class="summary">
-<a href="#pub-methods">Public Member Functions</a>  </div>
+<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">tvec2 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">constants.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tvec2" -->
-<p><a href="a00246.html">List of all members.</a></p>
+
+<p><a href="a00016_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr><td colspan="2"><h2><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a12fb5d03b1359053fe1115ac7ece78b9"></a><!-- doxytag: member="glm::detail::tvec2::tvec2" ref="a12fb5d03b1359053fe1115ac7ece78b9" args="(U const &amp;x)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00016.html#a12fb5d03b1359053fe1115ac7ece78b9">tvec2</a> (U const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="abc3dd1a40fb18209bb1a3c6b7558d732"></a><!-- doxytag: member="glm::detail::tvec2::tvec2" ref="abc3dd1a40fb18209bb1a3c6b7558d732" args="(U const &amp;x, V const &amp;y)" -->
-template&lt;typename U , typename V &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00016.html#abc3dd1a40fb18209bb1a3c6b7558d732">tvec2</a> (U const &amp;x, V const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a86782e24dade4e9edc94701d5ead73b0"></a><!-- doxytag: member="glm::detail::tvec2::tvec2" ref="a86782e24dade4e9edc94701d5ead73b0" args="(tvec2&lt; U &gt; const &amp;v)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00016.html#a86782e24dade4e9edc94701d5ead73b0">tvec2</a> (<a class="el" href="a00016.html">tvec2</a>&lt; U &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="af4de7420b70ad39552746d338df51648"></a><!-- doxytag: member="glm::detail::tvec2::tvec2" ref="af4de7420b70ad39552746d338df51648" args="(tvec3&lt; U &gt; const &amp;v)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00016.html#af4de7420b70ad39552746d338df51648">tvec2</a> (<a class="el" href="a00017.html">tvec3</a>&lt; U &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a22366da811da26c173d2bab4f72a3b59"></a><!-- doxytag: member="glm::detail::tvec2::tvec2" ref="a22366da811da26c173d2bab4f72a3b59" args="(tvec4&lt; U &gt; const &amp;v)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00016.html#a22366da811da26c173d2bab4f72a3b59">tvec2</a> (<a class="el" href="a00018.html">tvec4</a>&lt; U &gt; const &amp;v)</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gab932c1030b8bef04437a2d066dc9dc6e">e</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga73bc2500704c8c25dc3cde534134ca20">epsilon</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga4ff7948d6e7f40eaee43ce6cea887d22">euler</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga2a4f943607fcf389b7b4dd87e99e50b2">golden_ratio</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga7d3f5974acfdfee6bfb3d9dea93a7ba1">half_pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gab794cac99dec97664ba7cb0d160e3ac6">ln_ln_two</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga255e632bb482a96f8fa34482ab7f0c24">ln_ten</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gadeb5fef19262158f39a39abfe58558ad">ln_two</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gad8d83a66c551f43b816f146f20dcdb85">one</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga5d4fddb4150d38cc05f7a06adbc7be6f">one_over_pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga82228b772a59165585e05e37365b2e8b">one_over_root_two</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga91033e239e639b830ce0a4e7d84ff7b6">pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaa3878a0bb7cf0c77b899560a80847f12">quarter_pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaa907e64aeec08a407739aa090f399820">root_five</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gab1bc1acc5958f93a0e677756bdcb4a27">root_half_pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gae86af6ec13101467880e06b54e3e0d71">root_ln_four</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaa83b7a56d3a4386ab4c8ef6544a0e9aa">root_pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaaa0072128a49eef880068a8078594609">root_three</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaebae6e8300655e1e1147da9c25946785">root_two</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gae3334603a5994d3585fd786d98097d82">root_two_pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gab079778327ce3a341f95ceee16f1d03a">third</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaef0c7e4c219ae01db48a20eeb19f47b0">two_over_pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga8a412c16d1aa7bbdd0d03e29aff30ebb">two_over_root_pi</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga0ab78128af2f43e313e83eb60a00e321">two_thirds</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga9f4649d36b09c63ee2bccf180f6f3985">zero</a> ()</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>The basic 2D vector type. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00160.html">GLM_GTX_constants: Provide build-in constants</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2011-09-30 / 2011-09-30 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00141.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00016_source.html">constants.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 198 - 0
doc/api-0.9.3/a00016_source.html

@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>constants.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">constants.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00016.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_constants</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_constants GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_constants extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
+<a name="l00054"></a>00054 
+<a name="l00058"></a>00058         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00059"></a>00059         T <a class="code" href="a00160.html#ga73bc2500704c8c25dc3cde534134ca20" title="Return the epsilon constant for floating point types.">epsilon</a>();
+<a name="l00060"></a>00060 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00064"></a>00064         T <a class="code" href="a00160.html#ga9f4649d36b09c63ee2bccf180f6f3985" title="Return 0.">zero</a>();
+<a name="l00065"></a>00065 
+<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00069"></a>00069         T <a class="code" href="a00160.html#gad8d83a66c551f43b816f146f20dcdb85" title="Return 1.">one</a>();
+<a name="l00070"></a>00070 
+<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00074"></a>00074         T <a class="code" href="a00160.html#ga91033e239e639b830ce0a4e7d84ff7b6" title="Return the pi constant.">pi</a>();
+<a name="l00075"></a>00075 
+<a name="l00078"></a>00078         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00079"></a>00079         T <a class="code" href="a00160.html#gaa83b7a56d3a4386ab4c8ef6544a0e9aa" title="Return square root of pi.">root_pi</a>();
+<a name="l00080"></a>00080 
+<a name="l00083"></a>00083         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00084"></a>00084         T <a class="code" href="a00160.html#ga7d3f5974acfdfee6bfb3d9dea93a7ba1" title="Return pi / 2.">half_pi</a>();
+<a name="l00085"></a>00085 
+<a name="l00088"></a>00088         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00089"></a>00089         T <a class="code" href="a00160.html#gaa3878a0bb7cf0c77b899560a80847f12" title="Return pi / 4.">quarter_pi</a>();
+<a name="l00090"></a>00090 
+<a name="l00093"></a>00093         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00094"></a>00094         T <a class="code" href="a00160.html#ga5d4fddb4150d38cc05f7a06adbc7be6f" title="Return 1 / pi.">one_over_pi</a>();
+<a name="l00095"></a>00095 
+<a name="l00098"></a>00098         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00099"></a>00099         T <a class="code" href="a00160.html#gaef0c7e4c219ae01db48a20eeb19f47b0" title="Return 2 / pi.">two_over_pi</a>();
+<a name="l00100"></a>00100 
+<a name="l00103"></a>00103         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00104"></a>00104         T <a class="code" href="a00160.html#ga8a412c16d1aa7bbdd0d03e29aff30ebb" title="Return 2 / sqrt(pi).">two_over_root_pi</a>();
+<a name="l00105"></a>00105 
+<a name="l00108"></a>00108         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00109"></a>00109         T <a class="code" href="a00160.html#ga82228b772a59165585e05e37365b2e8b" title="Return 1 / sqrt(2).">one_over_root_two</a>();
+<a name="l00110"></a>00110 
+<a name="l00113"></a>00113         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00114"></a>00114         T <a class="code" href="a00160.html#gab1bc1acc5958f93a0e677756bdcb4a27" title="Return sqrt(pi / 2).">root_half_pi</a>();
+<a name="l00115"></a>00115 
+<a name="l00118"></a>00118         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00119"></a>00119         T <a class="code" href="a00160.html#gae3334603a5994d3585fd786d98097d82" title="Return sqrt(2 * pi).">root_two_pi</a>();
+<a name="l00120"></a>00120 
+<a name="l00123"></a>00123         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00124"></a>00124         T <a class="code" href="a00160.html#gae86af6ec13101467880e06b54e3e0d71" title="Return sqrt(ln(4)).">root_ln_four</a>();
+<a name="l00125"></a>00125 
+<a name="l00128"></a>00128         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00129"></a>00129         T <a class="code" href="a00160.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>();
+<a name="l00130"></a>00130 
+<a name="l00133"></a>00133         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00134"></a>00134         T <a class="code" href="a00160.html#ga4ff7948d6e7f40eaee43ce6cea887d22" title="Return Euler&#39;s constant.">euler</a>();
+<a name="l00135"></a>00135 
+<a name="l00138"></a>00138         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00139"></a>00139         T <a class="code" href="a00160.html#gaebae6e8300655e1e1147da9c25946785" title="Return sqrt(2).">root_two</a>();
+<a name="l00140"></a>00140 
+<a name="l00143"></a>00143         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00144"></a>00144         T <a class="code" href="a00160.html#gaaa0072128a49eef880068a8078594609" title="Return sqrt(3).">root_three</a>();
+<a name="l00145"></a>00145 
+<a name="l00148"></a>00148         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00149"></a>00149         T <a class="code" href="a00160.html#gaa907e64aeec08a407739aa090f399820" title="Return sqrt(5).">root_five</a>();
+<a name="l00150"></a>00150 
+<a name="l00153"></a>00153         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00154"></a>00154         T <a class="code" href="a00160.html#gadeb5fef19262158f39a39abfe58558ad" title="Return ln(2).">ln_two</a>();
+<a name="l00155"></a>00155 
+<a name="l00158"></a>00158         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00159"></a>00159         T <a class="code" href="a00160.html#ga255e632bb482a96f8fa34482ab7f0c24" title="Return ln(10).">ln_ten</a>();
+<a name="l00160"></a>00160 
+<a name="l00163"></a>00163         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00164"></a>00164         T <a class="code" href="a00160.html#gab794cac99dec97664ba7cb0d160e3ac6" title="Return ln(ln(2)).">ln_ln_two</a>();
+<a name="l00165"></a>00165 
+<a name="l00168"></a>00168         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00169"></a>00169         T <a class="code" href="a00160.html#gab079778327ce3a341f95ceee16f1d03a" title="Return 1 / 3.">third</a>();
+<a name="l00170"></a>00170 
+<a name="l00173"></a>00173         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00174"></a>00174         T <a class="code" href="a00160.html#ga0ab78128af2f43e313e83eb60a00e321" title="Return 2 / 3.">two_thirds</a>();
+<a name="l00175"></a>00175 
+<a name="l00178"></a>00178         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00179"></a>00179         T <a class="code" href="a00160.html#ga2a4f943607fcf389b7b4dd87e99e50b2" title="Return the golden ratio constant.">golden_ratio</a>();
+<a name="l00180"></a>00180 
+<a name="l00182"></a>00182 } <span class="comment">//namespace glm</span>
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184 <span class="preprocessor">#include &quot;constants.inl&quot;</span>
+<a name="l00185"></a>00185 
+<a name="l00186"></a>00186 <span class="preprocessor">#endif//GLM_GTX_constants</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 26 - 45
doc/api-0.9.3/a00017.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tvec3 Struct Reference</title>
+<title>epsilon.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,71 +32,51 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00017.html">tvec3</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#pub-methods">Public Member Functions</a>  </div>
   <div class="headertitle">
-<div class="title">tvec3 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">epsilon.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tvec3" -->
-<p><a href="a00247.html">List of all members.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aaa45a96d8b9adfa307c82699ef8ec46d"></a><!-- doxytag: member="glm::detail::tvec3::tvec3" ref="aaa45a96d8b9adfa307c82699ef8ec46d" args="(U const &amp;x)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00017.html#aaa45a96d8b9adfa307c82699ef8ec46d">tvec3</a> (U const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a59c4c840b3bf057c62c79cdc29a52013"></a><!-- doxytag: member="glm::detail::tvec3::tvec3" ref="a59c4c840b3bf057c62c79cdc29a52013" args="(U const &amp;x, V const &amp;y, W const &amp;z)" -->
-template&lt;typename U , typename V , typename W &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00017.html#a59c4c840b3bf057c62c79cdc29a52013">tvec3</a> (U const &amp;x, V const &amp;y, W const &amp;z)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a1887d05f487b5bb89699711c228e6a3f"></a><!-- doxytag: member="glm::detail::tvec3::tvec3" ref="a1887d05f487b5bb89699711c228e6a3f" args="(tvec2&lt; A &gt; const &amp;v, B const &amp;s)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00017.html#a1887d05f487b5bb89699711c228e6a3f">tvec3</a> (<a class="el" href="a00016.html">tvec2</a>&lt; A &gt; const &amp;v, B const &amp;s)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a8cf9f8e17b2caf9e44c8fbb833218d46"></a><!-- doxytag: member="glm::detail::tvec3::tvec3" ref="a8cf9f8e17b2caf9e44c8fbb833218d46" args="(A const &amp;s, tvec2&lt; B &gt; const &amp;v)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00017.html#a8cf9f8e17b2caf9e44c8fbb833218d46">tvec3</a> (A const &amp;s, <a class="el" href="a00016.html">tvec2</a>&lt; B &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ab3b0f9ec70d4363b6dd9d8282c436170"></a><!-- doxytag: member="glm::detail::tvec3::tvec3" ref="ab3b0f9ec70d4363b6dd9d8282c436170" args="(tvec3&lt; U &gt; const &amp;v)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00017.html#ab3b0f9ec70d4363b6dd9d8282c436170">tvec3</a> (<a class="el" href="a00017.html">tvec3</a>&lt; U &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a093c0e925518862593ae380f1844e64e"></a><!-- doxytag: member="glm::detail::tvec3::tvec3" ref="a093c0e925518862593ae380f1844e64e" args="(tvec4&lt; U &gt; const &amp;v)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00017.html#a093c0e925518862593ae380f1844e64e">tvec3</a> (<a class="el" href="a00018.html">tvec4</a>&lt; U &gt; const &amp;v)</td></tr>
-</table>
+
+<p><a href="a00017_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Basic 3D vector type. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00161.html">GLM_GTX_epsilon: Epsilon comparison</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2007-05-21 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00141.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00147.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion: Quaternion types and functions</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00017_source.html">epsilon.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 137 - 0
doc/api-0.9.3/a00017_source.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>epsilon.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">epsilon.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00017.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="preprocessor">#ifndef GLM_GTX_epsilon</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_epsilon GLM_VERSION</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span>
+<a name="l00043"></a>00043 <span class="comment">// Dependency:</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span>
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_epsilon extension included&quot;)</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span>
+<a name="l00052"></a>00052 <span class="keyword">namespace </span>glm
+<a name="l00053"></a>00053 {
+<a name="l00056"></a>00056 
+<a name="l00059"></a>00059         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt; 
+<a name="l00060"></a>00060         <span class="keywordtype">bool</span> equalEpsilon(
+<a name="l00061"></a>00061                 genTypeT <span class="keyword">const</span> &amp; x, 
+<a name="l00062"></a>00062                 genTypeT <span class="keyword">const</span> &amp; y, 
+<a name="l00063"></a>00063                 genTypeU <span class="keyword">const</span> &amp; <a class="code" href="a00160.html#ga73bc2500704c8c25dc3cde534134ca20" title="Return the epsilon constant for floating point types.">epsilon</a>);
+<a name="l00064"></a>00064                 
+<a name="l00067"></a>00067         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
+<a name="l00068"></a>00068         <span class="keywordtype">bool</span> notEqualEpsilon(
+<a name="l00069"></a>00069                 genTypeT <span class="keyword">const</span> &amp; x, 
+<a name="l00070"></a>00070                 genTypeT <span class="keyword">const</span> &amp; y, 
+<a name="l00071"></a>00071                 genTypeU <span class="keyword">const</span> &amp; <a class="code" href="a00160.html#ga73bc2500704c8c25dc3cde534134ca20" title="Return the epsilon constant for floating point types.">epsilon</a>);
+<a name="l00072"></a>00072 
+<a name="l00074"></a>00074 }<span class="comment">//namespace glm</span>
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 <span class="preprocessor">#include &quot;epsilon.inl&quot;</span>
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078 <span class="preprocessor">#endif//GLM_GTX_epsilon</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 24 - 78
doc/api-0.9.3/a00018.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>tvec4 Struct Reference</title>
+<title>euler_angles.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,104 +32,49 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="modules.html"><span>Modules</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
     </ul>
   </div>
   <div id="navrow2" class="tabs2">
     <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="nav-path" class="navpath">
-    <ul>
-      <li class="navelem"><b>glm</b>      </li>
-      <li class="navelem"><b>detail</b>      </li>
-      <li class="navelem"><a class="el" href="a00018.html">tvec4</a>      </li>
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#pub-methods">Public Member Functions</a>  </div>
   <div class="headertitle">
-<div class="title">tvec4 Struct Reference<div class="ingroups"><a class="el" href="a00157.html">Template types</a></div></div>  </div>
-</div>
+<div class="title">euler_angles.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
-<!-- doxytag: class="glm::detail::tvec4" -->
-<p><a href="a00248.html">List of all members.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aa4b1d0009d8f8215eeee0440d10cf30a"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="aa4b1d0009d8f8215eeee0440d10cf30a" args="(U const &amp;x)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#aa4b1d0009d8f8215eeee0440d10cf30a">tvec4</a> (U const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="af808a4802d23e62977efbbeb507f4d08"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="af808a4802d23e62977efbbeb507f4d08" args="(A const &amp;x, B const &amp;y, C const &amp;z, D const &amp;w)" -->
-template&lt;typename A , typename B , typename C , typename D &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#af808a4802d23e62977efbbeb507f4d08">tvec4</a> (A const &amp;x, B const &amp;y, C const &amp;z, D const &amp;w)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aebc760e42fb54f88dd9d1844a2aa4390"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="aebc760e42fb54f88dd9d1844a2aa4390" args="(tvec2&lt; A &gt; const &amp;v, B const &amp;s1, C const &amp;s2)" -->
-template&lt;typename A , typename B , typename C &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#aebc760e42fb54f88dd9d1844a2aa4390">tvec4</a> (<a class="el" href="a00016.html">tvec2</a>&lt; A &gt; const &amp;v, B const &amp;s1, C const &amp;s2)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a64c81dbd7b7e36fbb78f14958e328b5c"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a64c81dbd7b7e36fbb78f14958e328b5c" args="(A const &amp;s1, tvec2&lt; B &gt; const &amp;v, C const &amp;s2)" -->
-template&lt;typename A , typename B , typename C &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a64c81dbd7b7e36fbb78f14958e328b5c">tvec4</a> (A const &amp;s1, <a class="el" href="a00016.html">tvec2</a>&lt; B &gt; const &amp;v, C const &amp;s2)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a22458bc241a12cfe1f8960cb9aea34a9"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a22458bc241a12cfe1f8960cb9aea34a9" args="(A const &amp;s1, B const &amp;s2, tvec2&lt; C &gt; const &amp;v)" -->
-template&lt;typename A , typename B , typename C &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a22458bc241a12cfe1f8960cb9aea34a9">tvec4</a> (A const &amp;s1, B const &amp;s2, <a class="el" href="a00016.html">tvec2</a>&lt; C &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a0584bec5728a81f20bbb86a447e9c175"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a0584bec5728a81f20bbb86a447e9c175" args="(tvec3&lt; A &gt; const &amp;v, B const &amp;s)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a0584bec5728a81f20bbb86a447e9c175">tvec4</a> (<a class="el" href="a00017.html">tvec3</a>&lt; A &gt; const &amp;v, B const &amp;s)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a7819afd11e5f81ff1a8912e51ecce840"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a7819afd11e5f81ff1a8912e51ecce840" args="(A const &amp;s, tvec3&lt; B &gt; const &amp;v)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a7819afd11e5f81ff1a8912e51ecce840">tvec4</a> (A const &amp;s, <a class="el" href="a00017.html">tvec3</a>&lt; B &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a94d6caa3c39740742cb7ca123d9f7b4b"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a94d6caa3c39740742cb7ca123d9f7b4b" args="(tvec2&lt; A &gt; const &amp;v1, tvec2&lt; B &gt; const &amp;v2)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a94d6caa3c39740742cb7ca123d9f7b4b">tvec4</a> (<a class="el" href="a00016.html">tvec2</a>&lt; A &gt; const &amp;v1, <a class="el" href="a00016.html">tvec2</a>&lt; B &gt; const &amp;v2)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aee4776ac638ab46010806ea3e46e0a73"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="aee4776ac638ab46010806ea3e46e0a73" args="(tvec4&lt; U &gt; const &amp;v)" -->
-template&lt;typename U &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#aee4776ac638ab46010806ea3e46e0a73">tvec4</a> (<a class="el" href="a00018.html">tvec4</a>&lt; U &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2b88f7a5c6d9408dac6e28c2ccd42f5"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="aa2b88f7a5c6d9408dac6e28c2ccd42f5" args="(tref2&lt; A &gt; const &amp;v, B const &amp;s1, C const &amp;s2)" -->
-template&lt;typename A , typename B , typename C &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#aa2b88f7a5c6d9408dac6e28c2ccd42f5">tvec4</a> (tref2&lt; A &gt; const &amp;v, B const &amp;s1, C const &amp;s2)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a4b5a6a579933a6336696073fe7199e5e"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a4b5a6a579933a6336696073fe7199e5e" args="(A const &amp;s1, tref2&lt; B &gt; const &amp;v, C const &amp;s2)" -->
-template&lt;typename A , typename B , typename C &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a4b5a6a579933a6336696073fe7199e5e">tvec4</a> (A const &amp;s1, tref2&lt; B &gt; const &amp;v, C const &amp;s2)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a843ff55a1f8ccffe32541bd1dec2429f"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a843ff55a1f8ccffe32541bd1dec2429f" args="(A const &amp;s1, B const &amp;s2, tref2&lt; C &gt; const &amp;v)" -->
-template&lt;typename A , typename B , typename C &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a843ff55a1f8ccffe32541bd1dec2429f">tvec4</a> (A const &amp;s1, B const &amp;s2, tref2&lt; C &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a59aa4f07b5ad9e14aef34d8b606f7aa5"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a59aa4f07b5ad9e14aef34d8b606f7aa5" args="(tref3&lt; A &gt; const &amp;v, B const &amp;s)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a59aa4f07b5ad9e14aef34d8b606f7aa5">tvec4</a> (tref3&lt; A &gt; const &amp;v, B const &amp;s)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aca7740b82a876853ade8e67b20aeab6c"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="aca7740b82a876853ade8e67b20aeab6c" args="(A const &amp;s, tref3&lt; B &gt; const &amp;v)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#aca7740b82a876853ade8e67b20aeab6c">tvec4</a> (A const &amp;s, tref3&lt; B &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a3a5b72536d6153fa9327065172d21a3b"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a3a5b72536d6153fa9327065172d21a3b" args="(tref2&lt; A &gt; const &amp;v1, tref2&lt; B &gt; const &amp;v2)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a3a5b72536d6153fa9327065172d21a3b">tvec4</a> (tref2&lt; A &gt; const &amp;v1, tref2&lt; B &gt; const &amp;v2)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="af45e984c4109982e6f0dfa7e80af8323"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="af45e984c4109982e6f0dfa7e80af8323" args="(tvec2&lt; A &gt; const &amp;v1, tref2&lt; B &gt; const &amp;v2)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#af45e984c4109982e6f0dfa7e80af8323">tvec4</a> (<a class="el" href="a00016.html">tvec2</a>&lt; A &gt; const &amp;v1, tref2&lt; B &gt; const &amp;v2)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a8bada04fb59a8d5160f31b59cce0f736"></a><!-- doxytag: member="glm::detail::tvec4::tvec4" ref="a8bada04fb59a8d5160f31b59cce0f736" args="(tref2&lt; A &gt; const &amp;v1, tvec2&lt; B &gt; const &amp;v2)" -->
-template&lt;typename A , typename B &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a8bada04fb59a8d5160f31b59cce0f736">tvec4</a> (tref2&lt; A &gt; const &amp;v1, <a class="el" href="a00016.html">tvec2</a>&lt; B &gt; const &amp;v2)</td></tr>
-</table>
+
+<p><a href="a00018_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Basic 4D vector type. </p>
-</div></div>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00162.html">GLM_GTX_euler_angles: Matrix from euler angles</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00141.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00018_source.html">euler_angles.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 189 - 0
doc/api-0.9.3/a00018_source.html

@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>euler_angles.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">euler_angles.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00018.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_euler_angles</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_euler_angles GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_euler_angles extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
+<a name="l00054"></a>00054 
+<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00058"></a>00058         detail::tmat4x4&lt;valType&gt; eulerAngleX(
+<a name="l00059"></a>00059                 valType <span class="keyword">const</span> &amp; angleX);
+<a name="l00060"></a>00060 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00064"></a>00064         detail::tmat4x4&lt;valType&gt; eulerAngleY(
+<a name="l00065"></a>00065                 valType <span class="keyword">const</span> &amp; angleY);
+<a name="l00066"></a>00066 
+<a name="l00069"></a>00069         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00070"></a>00070         detail::tmat4x4&lt;valType&gt; eulerAngleZ(
+<a name="l00071"></a>00071                 valType <span class="keyword">const</span> &amp; angleZ);
+<a name="l00072"></a>00072 
+<a name="l00075"></a>00075         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00076"></a>00076         detail::tmat4x4&lt;valType&gt; eulerAngleXY(
+<a name="l00077"></a>00077                 valType <span class="keyword">const</span> &amp; angleX, 
+<a name="l00078"></a>00078                 valType <span class="keyword">const</span> &amp; angleY);
+<a name="l00079"></a>00079 
+<a name="l00082"></a>00082         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00083"></a>00083         detail::tmat4x4&lt;valType&gt; eulerAngleYX(
+<a name="l00084"></a>00084                 valType <span class="keyword">const</span> &amp; angleY, 
+<a name="l00085"></a>00085                 valType <span class="keyword">const</span> &amp; angleX);
+<a name="l00086"></a>00086 
+<a name="l00089"></a>00089         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00090"></a>00090         detail::tmat4x4&lt;valType&gt; eulerAngleXZ(
+<a name="l00091"></a>00091                 valType <span class="keyword">const</span> &amp; angleX, 
+<a name="l00092"></a>00092                 valType <span class="keyword">const</span> &amp; angleZ);
+<a name="l00093"></a>00093 
+<a name="l00096"></a>00096         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00097"></a>00097         detail::tmat4x4&lt;valType&gt; eulerAngleZX(
+<a name="l00098"></a>00098                 valType <span class="keyword">const</span> &amp; angleZ, 
+<a name="l00099"></a>00099                 valType <span class="keyword">const</span> &amp; angleX);
+<a name="l00100"></a>00100 
+<a name="l00103"></a>00103         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00104"></a>00104         detail::tmat4x4&lt;valType&gt; eulerAngleYZ(
+<a name="l00105"></a>00105                 valType <span class="keyword">const</span> &amp; angleY, 
+<a name="l00106"></a>00106                 valType <span class="keyword">const</span> &amp; angleZ);
+<a name="l00107"></a>00107 
+<a name="l00110"></a>00110         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00111"></a>00111         detail::tmat4x4&lt;valType&gt; eulerAngleZY(
+<a name="l00112"></a>00112                 valType <span class="keyword">const</span> &amp; angleZ, 
+<a name="l00113"></a>00113                 valType <span class="keyword">const</span> &amp; angleY);
+<a name="l00114"></a>00114 
+<a name="l00117"></a>00117         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00118"></a>00118         detail::tmat4x4&lt;valType&gt; eulerAngleYXZ(
+<a name="l00119"></a>00119                 valType <span class="keyword">const</span> &amp; yaw, 
+<a name="l00120"></a>00120                 valType <span class="keyword">const</span> &amp; pitch, 
+<a name="l00121"></a>00121                 valType <span class="keyword">const</span> &amp; roll);
+<a name="l00122"></a>00122 
+<a name="l00125"></a>00125         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00126"></a>00126         detail::tmat4x4&lt;valType&gt; yawPitchRoll(
+<a name="l00127"></a>00127                 valType <span class="keyword">const</span> &amp; yaw, 
+<a name="l00128"></a>00128                 valType <span class="keyword">const</span> &amp; pitch, 
+<a name="l00129"></a>00129                 valType <span class="keyword">const</span> &amp; roll);
+<a name="l00130"></a>00130 
+<a name="l00133"></a>00133         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00134"></a>00134         detail::tmat2x2&lt;T&gt; orientate2(T <span class="keyword">const</span> &amp; angle);
+<a name="l00135"></a>00135 
+<a name="l00138"></a>00138         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00139"></a>00139         detail::tmat3x3&lt;T&gt; orientate3(T <span class="keyword">const</span> &amp; angle);
+<a name="l00140"></a>00140 
+<a name="l00143"></a>00143         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00144"></a>00144         detail::tmat3x3&lt;T&gt; orientate3(detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; angles);
+<a name="l00145"></a>00145                 
+<a name="l00148"></a>00148         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00149"></a>00149         detail::tmat4x4&lt;T&gt; orientate4(detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; angles);
+<a name="l00150"></a>00150 
+<a name="l00152"></a>00152 }<span class="comment">//namespace glm</span>
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154 <span class="preprocessor">#include &quot;euler_angles.inl&quot;</span>
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156 <span class="preprocessor">#endif//GLM_GTX_euler_angles</span>
+</pre></div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 124 - 438
doc/api-0.9.3/a00019_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_detail.hpp Source File</title>
+<title>ext.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,12 +47,13 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_detail.hpp</div>  </div>
-</div>
+<div class="title">ext.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
-<a href="a00019.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 
 <a name="l00004"></a>00004 
@@ -79,445 +81,129 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_core_detail</span>
-<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_detail</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span>
-<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00098.html" title="OpenGL Mathematics (glm.g-truc.net)">setup.hpp</a>&quot;</span>
-<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;cassert&gt;</span>
-<a name="l00034"></a>00034 <span class="preprocessor">#if(defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L))</span>
-<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#include &lt;cstdint&gt;</span>
-<a name="l00036"></a>00036 <span class="preprocessor">#endif</span>
-<a name="l00037"></a>00037 <span class="preprocessor"></span>
-<a name="l00038"></a>00038 <span class="keyword">namespace </span>glm{
-<a name="l00039"></a>00039 <span class="keyword">namespace </span>detail
-<a name="l00040"></a>00040 {
-<a name="l00041"></a>00041         <span class="keyword">class </span><a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>;
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 
 <a name="l00042"></a>00042 
-<a name="l00043"></a>00043 <span class="preprocessor">#if(defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) // C99 detected, 64 bit types available</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <a class="code" href="a00167.html#ga322a7d7d2c2c68994dc872a33de63c61" title="64 bit signed integer type.">int64_t</a>                                                         sint64;
-<a name="l00045"></a>00045         <span class="keyword">typedef</span> <a class="code" href="a00167.html#ga3999d3e7ff22025c16ddb601e14dfdee" title="64 bit unsigned integer type.">uint64_t</a>                                                        uint64;
-<a name="l00046"></a>00046 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span>        <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64                                          sint64;
-<a name="l00048"></a>00048         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64                                        uint64;
-<a name="l00049"></a>00049 <span class="preprocessor">#elif(GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))</span>
-<a name="l00050"></a>00050 <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;
-<a name="l00051"></a>00051         __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>        uint64;
-<a name="l00052"></a>00052 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_BC)</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span>        <span class="keyword">typedef</span> Int64                                                           sint64;
-<a name="l00054"></a>00054         <span class="keyword">typedef</span> Uint64                                                          uint64;
-<a name="l00055"></a>00055 <span class="preprocessor">#else//unknown compiler</span>
-<a name="l00056"></a>00056 <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;
-<a name="l00057"></a>00057         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                      uint64;
-<a name="l00058"></a>00058 <span class="preprocessor">#endif//GLM_COMPILER</span>
-<a name="l00059"></a>00059 <span class="preprocessor"></span>
-<a name="l00060"></a>00060         <span class="keyword">template</span>&lt;<span class="keywordtype">bool</span> C&gt;
-<a name="l00061"></a>00061         <span class="keyword">struct </span>If
-<a name="l00062"></a>00062         {
-<a name="l00063"></a>00063                 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> F, <span class="keyword">typename</span> T&gt;
-<a name="l00064"></a>00064                 <span class="keyword">static</span> GLM_FUNC_QUALIFIER T apply(F functor, <span class="keyword">const</span> T&amp; val)
-<a name="l00065"></a>00065                 {
-<a name="l00066"></a>00066                         <span class="keywordflow">return</span> functor(val);
-<a name="l00067"></a>00067                 }
-<a name="l00068"></a>00068         };
-<a name="l00069"></a>00069 
-<a name="l00070"></a>00070         <span class="keyword">template</span>&lt;&gt;
-<a name="l00071"></a>00071         <span class="keyword">struct </span>If&lt;false&gt;
-<a name="l00072"></a>00072         {
-<a name="l00073"></a>00073                 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> F, <span class="keyword">typename</span> T&gt;
-<a name="l00074"></a>00074                 <span class="keyword">static</span> GLM_FUNC_QUALIFIER T apply(F, <span class="keyword">const</span> T&amp; val)
-<a name="l00075"></a>00075                 {
-<a name="l00076"></a>00076                         <span class="keywordflow">return</span> val;
-<a name="l00077"></a>00077                 }
-<a name="l00078"></a>00078         };
-<a name="l00079"></a>00079 
-<a name="l00080"></a>00080         <span class="comment">//template &lt;typename T&gt;</span>
-<a name="l00081"></a>00081         <span class="comment">//struct traits</span>
-<a name="l00082"></a>00082         <span class="comment">//{</span>
-<a name="l00083"></a>00083         <span class="comment">//      static const bool is_signed = false;</span>
-<a name="l00084"></a>00084         <span class="comment">//      static const bool is_float = false;</span>
-<a name="l00085"></a>00085         <span class="comment">//      static const bool is_vector = false;</span>
-<a name="l00086"></a>00086         <span class="comment">//      static const bool is_matrix = false;</span>
-<a name="l00087"></a>00087         <span class="comment">//      static const bool is_genType = false;</span>
-<a name="l00088"></a>00088         <span class="comment">//      static const bool is_genIType = false;</span>
-<a name="l00089"></a>00089         <span class="comment">//      static const bool is_genUType = false;</span>
-<a name="l00090"></a>00090         <span class="comment">//};</span>
-<a name="l00091"></a>00091 
-<a name="l00092"></a>00092         <span class="comment">//template &lt;&gt;</span>
-<a name="l00093"></a>00093         <span class="comment">//struct traits&lt;half&gt;</span>
-<a name="l00094"></a>00094         <span class="comment">//{</span>
-<a name="l00095"></a>00095         <span class="comment">//      static const bool is_float = true;</span>
-<a name="l00096"></a>00096         <span class="comment">//      static const bool is_genType = true;</span>
-<a name="l00097"></a>00097         <span class="comment">//};</span>
-<a name="l00098"></a>00098 
-<a name="l00099"></a>00099         <span class="comment">//template &lt;&gt;</span>
-<a name="l00100"></a>00100         <span class="comment">//struct traits&lt;float&gt;</span>
-<a name="l00101"></a>00101         <span class="comment">//{</span>
-<a name="l00102"></a>00102         <span class="comment">//      static const bool is_float = true;</span>
-<a name="l00103"></a>00103         <span class="comment">//      static const bool is_genType = true;</span>
-<a name="l00104"></a>00104         <span class="comment">//};</span>
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106         <span class="comment">//template &lt;&gt;</span>
-<a name="l00107"></a>00107         <span class="comment">//struct traits&lt;double&gt;</span>
-<a name="l00108"></a>00108         <span class="comment">//{</span>
-<a name="l00109"></a>00109         <span class="comment">//      static const bool is_float = true;</span>
-<a name="l00110"></a>00110         <span class="comment">//      static const bool is_genType = true;</span>
-<a name="l00111"></a>00111         <span class="comment">//};</span>
-<a name="l00112"></a>00112 
-<a name="l00113"></a>00113         <span class="comment">//template &lt;typename genType&gt;</span>
-<a name="l00114"></a>00114         <span class="comment">//struct desc</span>
-<a name="l00115"></a>00115         <span class="comment">//{</span>
-<a name="l00116"></a>00116         <span class="comment">//      typedef genType                                                 type;</span>
-<a name="l00117"></a>00117         <span class="comment">//      typedef genType *                                               pointer;</span>
-<a name="l00118"></a>00118         <span class="comment">//      typedef genType const*                                  const_pointer;</span>
-<a name="l00119"></a>00119         <span class="comment">//      typedef genType const *const                    const_pointer_const;</span>
-<a name="l00120"></a>00120         <span class="comment">//      typedef genType *const                                  pointer_const;</span>
-<a name="l00121"></a>00121         <span class="comment">//      typedef genType &amp;                                               reference;</span>
-<a name="l00122"></a>00122         <span class="comment">//      typedef genType const&amp;                                  const_reference;</span>
-<a name="l00123"></a>00123         <span class="comment">//      typedef genType const&amp;                                  param_type;</span>
-<a name="l00124"></a>00124 
-<a name="l00125"></a>00125         <span class="comment">//      typedef typename genType::value_type    value_type;</span>
-<a name="l00126"></a>00126         <span class="comment">//      typedef typename genType::size_type             size_type;</span>
-<a name="l00127"></a>00127         <span class="comment">//      static const typename size_type                 value_size;</span>
-<a name="l00128"></a>00128         <span class="comment">//};</span>
-<a name="l00129"></a>00129 
-<a name="l00130"></a>00130         <span class="comment">//template &lt;typename genType&gt;</span>
-<a name="l00131"></a>00131         <span class="comment">//const typename desc&lt;genType&gt;::size_type desc&lt;genType&gt;::value_size = genType::value_size();</span>
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133         <span class="keyword">union </span>uif32
-<a name="l00134"></a>00134         {
-<a name="l00135"></a>00135                 GLM_FUNC_QUALIFIER uif32() :
-<a name="l00136"></a>00136                         i(0)
-<a name="l00137"></a>00137                 {}
-<a name="l00138"></a>00138 
-<a name="l00139"></a>00139                 GLM_FUNC_QUALIFIER uif32(<span class="keywordtype">float</span> f) :
-<a name="l00140"></a>00140                         f(f)
-<a name="l00141"></a>00141                 {}
-<a name="l00142"></a>00142 
-<a name="l00143"></a>00143                 GLM_FUNC_QUALIFIER uif32(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i) :
-<a name="l00144"></a>00144                         i(i)
-<a name="l00145"></a>00145                 {}
-<a name="l00146"></a>00146 
-<a name="l00147"></a>00147                 <span class="keywordtype">float</span> f;
-<a name="l00148"></a>00148                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;
-<a name="l00149"></a>00149         };
-<a name="l00150"></a>00150 
-<a name="l00151"></a>00151         <span class="keyword">union </span>uif64
-<a name="l00152"></a>00152         {
-<a name="l00153"></a>00153                 GLM_FUNC_QUALIFIER uif64() :
-<a name="l00154"></a>00154                         i(0)
-<a name="l00155"></a>00155                 {}
-<a name="l00156"></a>00156 
-<a name="l00157"></a>00157                 GLM_FUNC_QUALIFIER uif64(<span class="keywordtype">double</span> f) :
-<a name="l00158"></a>00158                         f(f)
-<a name="l00159"></a>00159                 {}
-<a name="l00160"></a>00160 
-<a name="l00161"></a>00161                 GLM_FUNC_QUALIFIER uif64(uint64 i) :
-<a name="l00162"></a>00162                         i(i)
-<a name="l00163"></a>00163                 {}
-<a name="l00164"></a>00164 
-<a name="l00165"></a>00165                 <span class="keywordtype">double</span> f;
-<a name="l00166"></a>00166                 uint64 i;
-<a name="l00167"></a>00167         };
-<a name="l00168"></a>00168 
-<a name="l00169"></a>00169         <span class="keyword">typedef</span> uif32 uif;
-<a name="l00170"></a>00170 
-<a name="l00172"></a>00172         <span class="comment">// int</span>
-<a name="l00173"></a>00173 
-<a name="l00174"></a>00174         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00175"></a>00175         <span class="keyword">struct </span>is_int
-<a name="l00176"></a>00176         {
-<a name="l00177"></a>00177                 <span class="keyword">enum</span> is_int_enum
-<a name="l00178"></a>00178                 {
-<a name="l00179"></a>00179                         _YES = 0,
-<a name="l00180"></a>00180                         _NO = 1
-<a name="l00181"></a>00181                 };
-<a name="l00182"></a>00182         };
-<a name="l00183"></a>00183 
-<a name="l00184"></a>00184 <span class="preprocessor">#define GLM_DETAIL_IS_INT(T)    \</span>
-<a name="l00185"></a>00185 <span class="preprocessor">        template &lt;&gt;                                     \</span>
-<a name="l00186"></a>00186 <span class="preprocessor">        struct is_int&lt;T&gt;                        \</span>
-<a name="l00187"></a>00187 <span class="preprocessor">        {                                                       \</span>
-<a name="l00188"></a>00188 <span class="preprocessor">                enum is_int_enum                \</span>
-<a name="l00189"></a>00189 <span class="preprocessor">                {                                               \</span>
-<a name="l00190"></a>00190 <span class="preprocessor">                        _YES = 1,                       \</span>
-<a name="l00191"></a>00191 <span class="preprocessor">                        _NO = 0                         \</span>
-<a name="l00192"></a>00192 <span class="preprocessor">                };                                              \</span>
-<a name="l00193"></a>00193 <span class="preprocessor">        }</span>
-<a name="l00194"></a>00194 <span class="preprocessor"></span>
-<a name="l00196"></a>00196         <span class="comment">// uint</span>
-<a name="l00197"></a>00197 
-<a name="l00198"></a>00198         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00199"></a>00199         <span class="keyword">struct </span>is_uint
-<a name="l00200"></a>00200         {
-<a name="l00201"></a>00201                 <span class="keyword">enum</span> is_uint_enum
-<a name="l00202"></a>00202                 {
-<a name="l00203"></a>00203                         _YES = 0,
-<a name="l00204"></a>00204                         _NO = 1
-<a name="l00205"></a>00205                 };
-<a name="l00206"></a>00206         };
-<a name="l00207"></a>00207 
-<a name="l00208"></a>00208 <span class="preprocessor">#define GLM_DETAIL_IS_UINT(T)   \</span>
-<a name="l00209"></a>00209 <span class="preprocessor">        template &lt;&gt;                                     \</span>
-<a name="l00210"></a>00210 <span class="preprocessor">        struct is_uint&lt;T&gt;                       \</span>
-<a name="l00211"></a>00211 <span class="preprocessor">        {                                                       \</span>
-<a name="l00212"></a>00212 <span class="preprocessor">                enum is_uint_enum               \</span>
-<a name="l00213"></a>00213 <span class="preprocessor">                {                                               \</span>
-<a name="l00214"></a>00214 <span class="preprocessor">                        _YES = 1,                       \</span>
-<a name="l00215"></a>00215 <span class="preprocessor">                        _NO = 0                         \</span>
-<a name="l00216"></a>00216 <span class="preprocessor">                };                                              \</span>
-<a name="l00217"></a>00217 <span class="preprocessor">        }</span>
-<a name="l00218"></a>00218 <span class="preprocessor"></span>
-<a name="l00219"></a>00219         <span class="comment">//GLM_DETAIL_IS_UINT(unsigned long long)</span>
-<a name="l00220"></a>00220 
-<a name="l00222"></a>00222         <span class="comment">// float</span>
-<a name="l00223"></a>00223 
-<a name="l00224"></a>00224         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00225"></a>00225         <span class="keyword">struct </span>is_float
-<a name="l00226"></a>00226         {
-<a name="l00227"></a>00227                 <span class="keyword">enum</span> is_float_enum
-<a name="l00228"></a>00228                 {
-<a name="l00229"></a>00229                         _YES = 0,
-<a name="l00230"></a>00230                         _NO = 1
-<a name="l00231"></a>00231                 };
-<a name="l00232"></a>00232         };
-<a name="l00233"></a>00233 
-<a name="l00234"></a>00234 <span class="preprocessor">#define GLM_DETAIL_IS_FLOAT(T)  \</span>
-<a name="l00235"></a>00235 <span class="preprocessor">        template &lt;&gt;                                     \</span>
-<a name="l00236"></a>00236 <span class="preprocessor">        struct is_float&lt;T&gt;                      \</span>
-<a name="l00237"></a>00237 <span class="preprocessor">        {                                                       \</span>
-<a name="l00238"></a>00238 <span class="preprocessor">                enum is_float_enum              \</span>
-<a name="l00239"></a>00239 <span class="preprocessor">                {                                               \</span>
-<a name="l00240"></a>00240 <span class="preprocessor">                        _YES = 1,                       \</span>
-<a name="l00241"></a>00241 <span class="preprocessor">                        _NO = 0                         \</span>
-<a name="l00242"></a>00242 <span class="preprocessor">                };                                              \</span>
-<a name="l00243"></a>00243 <span class="preprocessor">        }</span>
-<a name="l00244"></a>00244 <span class="preprocessor"></span>
-<a name="l00245"></a>00245         GLM_DETAIL_IS_FLOAT(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a>);
-<a name="l00246"></a>00246         GLM_DETAIL_IS_FLOAT(<span class="keywordtype">float</span>);
-<a name="l00247"></a>00247         GLM_DETAIL_IS_FLOAT(<span class="keywordtype">double</span>);
-<a name="l00248"></a>00248         GLM_DETAIL_IS_FLOAT(<span class="keywordtype">long</span> <span class="keywordtype">double</span>);
-<a name="l00249"></a>00249 
-<a name="l00251"></a>00251         <span class="comment">// bool</span>
-<a name="l00252"></a>00252 
-<a name="l00253"></a>00253         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00254"></a>00254         <span class="keyword">struct </span>is_bool
-<a name="l00255"></a>00255         {
-<a name="l00256"></a>00256                 <span class="keyword">enum</span> is_bool_enum
-<a name="l00257"></a>00257                 {
-<a name="l00258"></a>00258                         _YES = 0,
-<a name="l00259"></a>00259                         _NO = 1
-<a name="l00260"></a>00260                 };
-<a name="l00261"></a>00261         };
-<a name="l00262"></a>00262         
-<a name="l00263"></a>00263         <span class="keyword">template</span> &lt;&gt;
-<a name="l00264"></a>00264         <span class="keyword">struct </span>is_bool&lt;bool&gt;
-<a name="l00265"></a>00265         {
-<a name="l00266"></a>00266                 <span class="keyword">enum</span> is_bool_enum
-<a name="l00267"></a>00267                 {
-<a name="l00268"></a>00268                         _YES = 1,
-<a name="l00269"></a>00269                         _NO = 0
-<a name="l00270"></a>00270                 };
-<a name="l00271"></a>00271         };
-<a name="l00272"></a>00272         
-<a name="l00274"></a>00274         <span class="comment">// vector</span>
-<a name="l00275"></a>00275 
-<a name="l00276"></a>00276         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00277"></a>00277         <span class="keyword">struct </span>is_vector
-<a name="l00278"></a>00278         {
-<a name="l00279"></a>00279                 <span class="keyword">enum</span> is_vector_enum
-<a name="l00280"></a>00280                 {
-<a name="l00281"></a>00281                         _YES = 0,
-<a name="l00282"></a>00282                         _NO = 1
-<a name="l00283"></a>00283                 };
-<a name="l00284"></a>00284         };
-<a name="l00285"></a>00285 
-<a name="l00286"></a>00286 <span class="preprocessor">#       define GLM_DETAIL_IS_VECTOR(TYPE) \</span>
-<a name="l00287"></a>00287 <span class="preprocessor">                template &lt;typename T&gt; \</span>
-<a name="l00288"></a>00288 <span class="preprocessor">                struct is_vector&lt;TYPE&lt;T&gt; &gt; \</span>
-<a name="l00289"></a>00289 <span class="preprocessor">                { \</span>
-<a name="l00290"></a>00290 <span class="preprocessor">                        enum is_vector_enum \</span>
-<a name="l00291"></a>00291 <span class="preprocessor">                        { \</span>
-<a name="l00292"></a>00292 <span class="preprocessor">                                _YES = 1, \</span>
-<a name="l00293"></a>00293 <span class="preprocessor">                                _NO = 0 \</span>
-<a name="l00294"></a>00294 <span class="preprocessor">                        }; \</span>
-<a name="l00295"></a>00295 <span class="preprocessor">                }</span>
-<a name="l00296"></a>00296 <span class="preprocessor"></span>
-<a name="l00298"></a>00298         <span class="comment">// matrix</span>
-<a name="l00299"></a>00299 
-<a name="l00300"></a>00300         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00301"></a>00301         <span class="keyword">struct </span>is_matrix
-<a name="l00302"></a>00302         {
-<a name="l00303"></a>00303                 <span class="keyword">enum</span> is_matrix_enum
-<a name="l00304"></a>00304                 {
-<a name="l00305"></a>00305                         _YES = 0,
-<a name="l00306"></a>00306                         _NO = 1
-<a name="l00307"></a>00307                 };
-<a name="l00308"></a>00308         };
-<a name="l00309"></a>00309 
-<a name="l00310"></a>00310 <span class="preprocessor">#define GLM_DETAIL_IS_MATRIX(T) \</span>
-<a name="l00311"></a>00311 <span class="preprocessor">        template &lt;&gt;                                     \</span>
-<a name="l00312"></a>00312 <span class="preprocessor">        struct is_matrix                        \</span>
-<a name="l00313"></a>00313 <span class="preprocessor">        {                                                       \</span>
-<a name="l00314"></a>00314 <span class="preprocessor">                enum is_matrix_enum             \</span>
-<a name="l00315"></a>00315 <span class="preprocessor">                {                                               \</span>
-<a name="l00316"></a>00316 <span class="preprocessor">                        _YES = 1,                       \</span>
-<a name="l00317"></a>00317 <span class="preprocessor">                        _NO = 0                         \</span>
-<a name="l00318"></a>00318 <span class="preprocessor">                };                                              \</span>
-<a name="l00319"></a>00319 <span class="preprocessor">        }</span>
-<a name="l00320"></a>00320 <span class="preprocessor"></span>
-<a name="l00322"></a>00322         <span class="comment">// type</span>
-<a name="l00323"></a>00323 
-<a name="l00324"></a>00324         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00325"></a>00325         <span class="keyword">struct </span>type
-<a name="l00326"></a>00326         {
-<a name="l00327"></a>00327                 <span class="keyword">enum</span> type_enum
-<a name="l00328"></a>00328                 {
-<a name="l00329"></a>00329                         is_float = is_float&lt;T&gt;::_YES,
-<a name="l00330"></a>00330                         is_int = is_int&lt;T&gt;::_YES,
-<a name="l00331"></a>00331                         is_uint = is_uint&lt;T&gt;::_YES,
-<a name="l00332"></a>00332                         is_bool = is_bool&lt;T&gt;::_YES
-<a name="l00333"></a>00333                 };
-<a name="l00334"></a>00334         };
-<a name="l00335"></a>00335         
-<a name="l00337"></a>00337         <span class="comment">// type</span>
-<a name="l00338"></a>00338         
-<a name="l00339"></a>00339         <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span>                                                     int8;
-<a name="l00340"></a>00340         <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span>                                            int16;
-<a name="l00341"></a>00341         <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span>                                                      int32;
-<a name="l00342"></a>00342         <span class="keyword">typedef</span> detail::sint64                                          int64;
-<a name="l00343"></a>00343         
-<a name="l00344"></a>00344         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>                                           uint8;
-<a name="l00345"></a>00345         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>                                          uint16;
-<a name="l00346"></a>00346         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                                            uint32;
-<a name="l00347"></a>00347         <span class="keyword">typedef</span> detail::uint64                                          uint64;
-<a name="l00348"></a>00348         
-<a name="l00349"></a>00349         <span class="keyword">typedef</span> detail<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">::half</a>                                            float16;
-<a name="l00350"></a>00350         <span class="keyword">typedef</span> <span class="keywordtype">float</span>                                                           float32;
-<a name="l00351"></a>00351         <span class="keyword">typedef</span> <span class="keywordtype">double</span>                                                          float64;
-<a name="l00352"></a>00352         
-<a name="l00354"></a>00354         <span class="comment">// float_or_int_trait </span>
-<a name="l00355"></a>00355 
-<a name="l00356"></a>00356         <span class="keyword">struct </span>float_or_int_value
-<a name="l00357"></a>00357         {
-<a name="l00358"></a>00358                 <span class="keyword">enum</span>
-<a name="l00359"></a>00359                 {
-<a name="l00360"></a>00360                         ERROR,
-<a name="l00361"></a>00361                         FLOAT,
-<a name="l00362"></a>00362                         INT
-<a name="l00363"></a>00363                 };
-<a name="l00364"></a>00364         };
-<a name="l00365"></a>00365 
-<a name="l00366"></a>00366         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00367"></a>00367         <span class="keyword">struct </span>float_or_int_trait
-<a name="l00368"></a>00368         {
-<a name="l00369"></a>00369                 <span class="keyword">enum</span>{ID = float_or_int_value::ERROR};
-<a name="l00370"></a>00370         };
-<a name="l00371"></a>00371 
-<a name="l00372"></a>00372         <span class="keyword">template</span> &lt;&gt;
-<a name="l00373"></a>00373         <span class="keyword">struct </span>float_or_int_trait&lt;int8&gt;
-<a name="l00374"></a>00374         {
-<a name="l00375"></a>00375                 <span class="keyword">enum</span>{ID = float_or_int_value::INT};
-<a name="l00376"></a>00376         };
-<a name="l00377"></a>00377 
-<a name="l00378"></a>00378         <span class="keyword">template</span> &lt;&gt;
-<a name="l00379"></a>00379         <span class="keyword">struct </span>float_or_int_trait&lt;int16&gt;
-<a name="l00380"></a>00380         {
-<a name="l00381"></a>00381                 <span class="keyword">enum</span>{ID = float_or_int_value::INT};
-<a name="l00382"></a>00382         };
-<a name="l00383"></a>00383 
-<a name="l00384"></a>00384         <span class="keyword">template</span> &lt;&gt;
-<a name="l00385"></a>00385         <span class="keyword">struct </span>float_or_int_trait&lt;int32&gt;
-<a name="l00386"></a>00386         {
-<a name="l00387"></a>00387                 <span class="keyword">enum</span>{ID = float_or_int_value::INT};
-<a name="l00388"></a>00388         };
-<a name="l00389"></a>00389 
-<a name="l00390"></a>00390         <span class="keyword">template</span> &lt;&gt;
-<a name="l00391"></a>00391         <span class="keyword">struct </span>float_or_int_trait&lt;int64&gt;
-<a name="l00392"></a>00392         {
-<a name="l00393"></a>00393                 <span class="keyword">enum</span>{ID = float_or_int_value::INT};
-<a name="l00394"></a>00394         };
-<a name="l00395"></a>00395 
-<a name="l00396"></a>00396         <span class="keyword">template</span> &lt;&gt;
-<a name="l00397"></a>00397         <span class="keyword">struct </span>float_or_int_trait&lt;uint8&gt;
-<a name="l00398"></a>00398         {
-<a name="l00399"></a>00399                 <span class="keyword">enum</span>{ID = float_or_int_value::INT};
-<a name="l00400"></a>00400         };
-<a name="l00401"></a>00401 
-<a name="l00402"></a>00402         <span class="keyword">template</span> &lt;&gt;
-<a name="l00403"></a>00403         <span class="keyword">struct </span>float_or_int_trait&lt;uint16&gt;
-<a name="l00404"></a>00404         {
-<a name="l00405"></a>00405                 <span class="keyword">enum</span>{ID = float_or_int_value::INT};
-<a name="l00406"></a>00406         };
-<a name="l00407"></a>00407 
-<a name="l00408"></a>00408         <span class="keyword">template</span> &lt;&gt;
-<a name="l00409"></a>00409         <span class="keyword">struct </span>float_or_int_trait&lt;uint32&gt;
-<a name="l00410"></a>00410         {
-<a name="l00411"></a>00411                 <span class="keyword">enum</span>{ID = float_or_int_value::INT};
-<a name="l00412"></a>00412         };
-<a name="l00413"></a>00413 
-<a name="l00414"></a>00414         <span class="keyword">template</span> &lt;&gt;
-<a name="l00415"></a>00415         <span class="keyword">struct </span>float_or_int_trait&lt;uint64&gt;
-<a name="l00416"></a>00416         {
-<a name="l00417"></a>00417                 <span class="keyword">enum</span>{ID = float_or_int_value::INT};
-<a name="l00418"></a>00418         };
-<a name="l00419"></a>00419 
-<a name="l00420"></a>00420         <span class="keyword">template</span> &lt;&gt;
-<a name="l00421"></a>00421         <span class="keyword">struct </span>float_or_int_trait&lt;float16&gt;
-<a name="l00422"></a>00422         {
-<a name="l00423"></a>00423                 <span class="keyword">enum</span>{ID = float_or_int_value::FLOAT};
-<a name="l00424"></a>00424         };
-<a name="l00425"></a>00425 
-<a name="l00426"></a>00426         <span class="keyword">template</span> &lt;&gt;
-<a name="l00427"></a>00427         <span class="keyword">struct </span>float_or_int_trait&lt;float32&gt;
-<a name="l00428"></a>00428         {
-<a name="l00429"></a>00429                 <span class="keyword">enum</span>{ID = float_or_int_value::FLOAT};
-<a name="l00430"></a>00430         };
-<a name="l00431"></a>00431 
-<a name="l00432"></a>00432         <span class="keyword">template</span> &lt;&gt;
-<a name="l00433"></a>00433         <span class="keyword">struct </span>float_or_int_trait&lt;float64&gt;
-<a name="l00434"></a>00434         {
-<a name="l00435"></a>00435                 <span class="keyword">enum</span>{ID = float_or_int_value::FLOAT};
-<a name="l00436"></a>00436         };
-<a name="l00437"></a>00437 
-<a name="l00438"></a>00438 }<span class="comment">//namespace detail</span>
-<a name="l00439"></a>00439 }<span class="comment">//namespace glm</span>
-<a name="l00440"></a>00440 
-<a name="l00441"></a>00441 <span class="preprocessor">#if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2005))</span>
-<a name="l00442"></a>00442 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_DEPRECATED __declspec(deprecated)</span>
-<a name="l00443"></a>00443 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGN(x) __declspec(align(x)) </span>
-<a name="l00444"></a>00444 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct </span>
-<a name="l00445"></a>00445 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT __declspec(restrict)</span>
-<a name="l00446"></a>00446 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT_VAR __restrict</span>
-<a name="l00447"></a>00447 <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>
-<a name="l00448"></a>00448 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_DEPRECATED __attribute__((__deprecated__))</span>
-<a name="l00449"></a>00449 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGN(x) __attribute__((aligned(x)))</span>
-<a name="l00450"></a>00450 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span>
-<a name="l00451"></a>00451 <span class="preprocessor"></span><span class="preprocessor">#       if(GLM_COMPILER &gt;= GLM_COMPILER_GCC33)</span>
-<a name="l00452"></a>00452 <span class="preprocessor"></span><span class="preprocessor">#               define GLM_RESTRICT __restrict__</span>
-<a name="l00453"></a>00453 <span class="preprocessor"></span><span class="preprocessor">#               define GLM_RESTRICT_VAR __restrict__</span>
-<a name="l00454"></a>00454 <span class="preprocessor"></span><span class="preprocessor">#       else</span>
-<a name="l00455"></a>00455 <span class="preprocessor"></span><span class="preprocessor">#               define GLM_RESTRICT</span>
-<a name="l00456"></a>00456 <span class="preprocessor"></span><span class="preprocessor">#               define GLM_RESTRICT_VAR</span>
-<a name="l00457"></a>00457 <span class="preprocessor"></span><span class="preprocessor">#       endif</span>
-<a name="l00458"></a>00458 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT __restrict__</span>
-<a name="l00459"></a>00459 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT_VAR __restrict__</span>
-<a name="l00460"></a>00460 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00461"></a>00461 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_DEPRECATED</span>
-<a name="l00462"></a>00462 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGN</span>
-<a name="l00463"></a>00463 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_ALIGNED_STRUCT(x) </span>
-<a name="l00464"></a>00464 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT</span>
-<a name="l00465"></a>00465 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_RESTRICT_VAR</span>
-<a name="l00466"></a>00466 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_COMPILER</span>
-<a name="l00467"></a>00467 <span class="preprocessor"></span>
-<a name="l00468"></a>00468 <span class="preprocessor">#endif//glm_core_detail</span>
-</pre></div></div>
-</div>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058 <span class="preprocessor">#ifndef glm_ext</span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#define glm_ext</span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span>
+<a name="l00061"></a>00061 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))</span>
+<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED</span>
+<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: All extensions included (not recommanded)&quot;)</span>
+<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGES</span>
+<a name="l00065"></a>00065 <span class="preprocessor"></span>
+<a name="l00066"></a>00066 <span class="preprocessor">#include &quot;<a class="code" href="a00036.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/half_float.hpp</a>&quot;</span>
+<a name="l00067"></a>00067 <span class="preprocessor">#include &quot;<a class="code" href="a00051.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/matrix_access.hpp</a>&quot;</span>
+<a name="l00068"></a>00068 <span class="preprocessor">#include &quot;<a class="code" href="a00053.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/matrix_integer.hpp</a>&quot;</span>
+<a name="l00069"></a>00069 <span class="preprocessor">#include &quot;<a class="code" href="a00055.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/matrix_inverse.hpp</a>&quot;</span>
+<a name="l00070"></a>00070 <span class="preprocessor">#include &quot;<a class="code" href="a00059.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/matrix_transform.hpp</a>&quot;</span>
+<a name="l00071"></a>00071 <span class="preprocessor">#include &quot;<a class="code" href="a00075.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/quaternion.hpp</a>&quot;</span>
+<a name="l00072"></a>00072 <span class="preprocessor">#include &quot;<a class="code" href="a00088.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/swizzle.hpp</a>&quot;</span>
+<a name="l00073"></a>00073 <span class="preprocessor">#include &quot;<a class="code" href="a00106.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/type_precision.hpp</a>&quot;</span>
+<a name="l00074"></a>00074 <span class="preprocessor">#include &quot;<a class="code" href="a00107.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/type_ptr.hpp</a>&quot;</span>
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 <span class="preprocessor">#include &quot;<a class="code" href="a00008.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/associated_min_max.hpp</a>&quot;</span>
+<a name="l00077"></a>00077 <span class="preprocessor">#include &quot;<a class="code" href="a00009.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/bit.hpp</a>&quot;</span>
+<a name="l00078"></a>00078 <span class="preprocessor">#include &quot;./gtx/closest_point.hpp&quot;</span>
+<a name="l00079"></a>00079 <span class="preprocessor">#include &quot;<a class="code" href="a00011.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/color_cast.hpp</a>&quot;</span>
+<a name="l00080"></a>00080 <span class="preprocessor">#include &quot;<a class="code" href="a00012.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/color_space.hpp</a>&quot;</span>
+<a name="l00081"></a>00081 <span class="preprocessor">#include &quot;<a class="code" href="a00013.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/color_space_YCoCg.hpp</a>&quot;</span>
+<a name="l00082"></a>00082 <span class="preprocessor">#include &quot;<a class="code" href="a00014.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/compatibility.hpp</a>&quot;</span>
+<a name="l00083"></a>00083 <span class="preprocessor">#include &quot;<a class="code" href="a00015.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/component_wise.hpp</a>&quot;</span>
+<a name="l00084"></a>00084 <span class="preprocessor">#include &quot;<a class="code" href="a00017.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/epsilon.hpp</a>&quot;</span>
+<a name="l00085"></a>00085 <span class="preprocessor">#include &quot;<a class="code" href="a00018.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/euler_angles.hpp</a>&quot;</span>
+<a name="l00086"></a>00086 <span class="preprocessor">#include &quot;<a class="code" href="a00020.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/extend.hpp</a>&quot;</span>
+<a name="l00087"></a>00087 <span class="preprocessor">#include &quot;<a class="code" href="a00021.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/extented_min_max.hpp</a>&quot;</span>
+<a name="l00088"></a>00088 <span class="preprocessor">#include &quot;<a class="code" href="a00022.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/fast_exponential.hpp</a>&quot;</span>
+<a name="l00089"></a>00089 <span class="preprocessor">#include &quot;<a class="code" href="a00023.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/fast_square_root.hpp</a>&quot;</span>
+<a name="l00090"></a>00090 <span class="preprocessor">#include &quot;<a class="code" href="a00024.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/fast_trigonometry.hpp</a>&quot;</span>
+<a name="l00091"></a>00091 <span class="preprocessor">#include &quot;<a class="code" href="a00035.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/gradient_paint.hpp</a>&quot;</span>
+<a name="l00092"></a>00092 <span class="preprocessor">#include &quot;<a class="code" href="a00037.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/handed_coordinate_space.hpp</a>&quot;</span>
+<a name="l00093"></a>00093 <span class="preprocessor">#include &quot;<a class="code" href="a00039.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/inertia.hpp</a>&quot;</span>
+<a name="l00094"></a>00094 <span class="preprocessor">#include &quot;<a class="code" href="a00040.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/int_10_10_10_2.hpp</a>&quot;</span>
+<a name="l00095"></a>00095 <span class="preprocessor">#include &quot;<a class="code" href="a00041.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/integer.hpp</a>&quot;</span>
+<a name="l00096"></a>00096 <span class="preprocessor">#include &quot;<a class="code" href="a00042.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/intersect.hpp</a>&quot;</span>
+<a name="l00097"></a>00097 <span class="preprocessor">#include &quot;<a class="code" href="a00049.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/log_base.hpp</a>&quot;</span>
+<a name="l00098"></a>00098 <span class="preprocessor">#include &quot;<a class="code" href="a00052.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_cross_product.hpp</a>&quot;</span>
+<a name="l00099"></a>00099 <span class="preprocessor">#include &quot;<a class="code" href="a00054.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_interpolation.hpp</a>&quot;</span>
+<a name="l00100"></a>00100 <span class="preprocessor">#include &quot;<a class="code" href="a00056.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_major_storage.hpp</a>&quot;</span>
+<a name="l00101"></a>00101 <span class="preprocessor">#include &quot;<a class="code" href="a00057.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_operation.hpp</a>&quot;</span>
+<a name="l00102"></a>00102 <span class="preprocessor">#include &quot;<a class="code" href="a00058.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_query.hpp</a>&quot;</span>
+<a name="l00103"></a>00103 <span class="preprocessor">#include &quot;<a class="code" href="a00060.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/mixed_product.hpp</a>&quot;</span>
+<a name="l00104"></a>00104 <span class="preprocessor">#include &quot;<a class="code" href="a00061.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/multiple.hpp</a>&quot;</span>
+<a name="l00105"></a>00105 <span class="preprocessor">#include &quot;<a class="code" href="a00063.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/noise.hpp</a>&quot;</span>
+<a name="l00106"></a>00106 <span class="preprocessor">#include &quot;<a class="code" href="a00064.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/norm.hpp</a>&quot;</span>
+<a name="l00107"></a>00107 <span class="preprocessor">#include &quot;<a class="code" href="a00065.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/normal.hpp</a>&quot;</span>
+<a name="l00108"></a>00108 <span class="preprocessor">#include &quot;<a class="code" href="a00066.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/normalize_dot.hpp</a>&quot;</span>
+<a name="l00109"></a>00109 <span class="preprocessor">#include &quot;<a class="code" href="a00067.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/number_precision.hpp</a>&quot;</span>
+<a name="l00110"></a>00110 <span class="preprocessor">#include &quot;<a class="code" href="a00068.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/ocl_type.hpp</a>&quot;</span>
+<a name="l00111"></a>00111 <span class="preprocessor">#include &quot;<a class="code" href="a00069.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/optimum_pow.hpp</a>&quot;</span>
+<a name="l00112"></a>00112 <span class="preprocessor">#include &quot;<a class="code" href="a00070.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/orthonormalize.hpp</a>&quot;</span>
+<a name="l00113"></a>00113 <span class="preprocessor">#include &quot;<a class="code" href="a00072.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/perpendicular.hpp</a>&quot;</span>
+<a name="l00114"></a>00114 <span class="preprocessor">#include &quot;<a class="code" href="a00073.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/polar_coordinates.hpp</a>&quot;</span>
+<a name="l00115"></a>00115 <span class="preprocessor">#include &quot;<a class="code" href="a00074.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/projection.hpp</a>&quot;</span>
+<a name="l00116"></a>00116 <span class="preprocessor">#include &quot;<a class="code" href="a00076.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/quaternion.hpp</a>&quot;</span>
+<a name="l00117"></a>00117 <span class="preprocessor">#include &quot;<a class="code" href="a00078.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/random.hpp</a>&quot;</span>
+<a name="l00118"></a>00118 <span class="preprocessor">#include &quot;<a class="code" href="a00079.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/raw_data.hpp</a>&quot;</span>
+<a name="l00119"></a>00119 <span class="preprocessor">#include &quot;<a class="code" href="a00080.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/reciprocal.hpp</a>&quot;</span>
+<a name="l00120"></a>00120 <span class="preprocessor">#include &quot;<a class="code" href="a00081.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/rotate_vector.hpp</a>&quot;</span>
+<a name="l00121"></a>00121 <span class="preprocessor">#include &quot;<a class="code" href="a00085.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/spline.hpp</a>&quot;</span>
+<a name="l00122"></a>00122 <span class="preprocessor">#include &quot;<a class="code" href="a00086.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/std_based_type.hpp</a>&quot;</span>
+<a name="l00123"></a>00123 <span class="preprocessor">#include &quot;<a class="code" href="a00087.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/string_cast.hpp</a>&quot;</span>
+<a name="l00124"></a>00124 <span class="preprocessor">#include &quot;<a class="code" href="a00089.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/transform.hpp</a>&quot;</span>
+<a name="l00125"></a>00125 <span class="preprocessor">#include &quot;<a class="code" href="a00090.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/transform2.hpp</a>&quot;</span>
+<a name="l00126"></a>00126 <span class="preprocessor">#include &quot;<a class="code" href="a00114.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/ulp.hpp</a>&quot;</span>
+<a name="l00127"></a>00127 <span class="preprocessor">#include &quot;<a class="code" href="a00116.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/vec1.hpp</a>&quot;</span>
+<a name="l00128"></a>00128 <span class="preprocessor">#include &quot;<a class="code" href="a00117.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/vector_access.hpp</a>&quot;</span>
+<a name="l00129"></a>00129 <span class="preprocessor">#include &quot;<a class="code" href="a00118.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/vector_angle.hpp</a>&quot;</span>
+<a name="l00130"></a>00130 <span class="preprocessor">#include &quot;<a class="code" href="a00119.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/vector_query.hpp</a>&quot;</span>
+<a name="l00131"></a>00131 <span class="preprocessor">#include &quot;<a class="code" href="a00120.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/verbose_operator.hpp</a>&quot;</span>
+<a name="l00132"></a>00132 <span class="preprocessor">#include &quot;<a class="code" href="a00121.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/wrap.hpp</a>&quot;</span>
+<a name="l00133"></a>00133 
+<a name="l00134"></a>00134 <span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE2)</span>
+<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#       include &quot;<a class="code" href="a00084.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/simd_vec4.hpp</a>&quot;</span>
+<a name="l00136"></a>00136 <span class="preprocessor">#       include &quot;./gtx/simd_mat4.hpp&quot;</span>
+<a name="l00137"></a>00137 <span class="preprocessor">#endif</span>
+<a name="l00138"></a>00138 <span class="preprocessor"></span>
+<a name="l00139"></a>00139 <span class="preprocessor">#include &quot;<a class="code" href="a00122.html" title="OpenGL Mathematics (glm.g-truc.net)">./virtrev/xstream.hpp</a>&quot;</span>
+<a name="l00140"></a>00140 
+<a name="l00141"></a>00141 <span class="comment">//const float goldenRatio = 1.618033988749894848f;</span>
+<a name="l00142"></a>00142 <span class="comment">//const float pi = 3.141592653589793238f;</span>
+<a name="l00143"></a>00143 
+<a name="l00144"></a>00144 <span class="preprocessor">#endif //glm_ext</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 13 - 11
doc/api-0.9.3/a00020.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_fixes.hpp File Reference</title>
+<title>extend.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -49,28 +50,29 @@
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_fixes.hpp File Reference</div>  </div>
-</div>
+<div class="title">extend.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00020_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2011-02-21 / 2011-11-22 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+<p><a class="el" href="a00163.html">GLM_GTX_extend: Position extending</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2006-01-07 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00020_source.html">_fixes.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00020_source.html">extend.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 41 - 27
doc/api-0.9.3/a00020_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_fixes.hpp Source File</title>
+<title>extend.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_fixes.hpp</div>  </div>
-</div>
+<div class="title">extend.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00020.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,34 +81,46 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00030"></a>00030 <span class="preprocessor">#ifdef max</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#undef max</span>
-<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00033"></a>00033 <span class="preprocessor"></span>
-<a name="l00035"></a>00035 <span class="preprocessor">#ifdef min</span>
-<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#undef min</span>
-<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#ifdef isnan</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#undef isnan</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00043"></a>00043 <span class="preprocessor"></span>
-<a name="l00045"></a>00045 <span class="preprocessor">#ifdef isinf</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#undef isinf</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="preprocessor">#ifdef log2</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#undef log2</span>
-<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span>
-</pre></div></div>
-</div>
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_extend</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_extend GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_extend extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00056"></a>00056         genType extend(
+<a name="l00057"></a>00057                 genType <span class="keyword">const</span> &amp; Origin, 
+<a name="l00058"></a>00058                 genType <span class="keyword">const</span> &amp; Source, 
+<a name="l00059"></a>00059                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);
+<a name="l00060"></a>00060 
+<a name="l00062"></a>00062 }<span class="comment">//namespace glm</span>
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="preprocessor">#include &quot;extend.inl&quot;</span>
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066 <span class="preprocessor">#endif//GLM_GTX_extend</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 15 - 23
doc/api-0.9.3/a00021.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_swizzle.hpp File Reference</title>
+<title>extented_min_max.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,41 +49,32 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#nested-classes">Classes</a>  </div>
   <div class="headertitle">
-<div class="title">_swizzle.hpp File Reference</div>  </div>
-</div>
+<div class="title">extented_min_max.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00021_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00002.html">_swizzle_base0</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal class for implementing swizzle operators.  <a href="a00002.html#details">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html">_swizzle_base2</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal class for implementing swizzle operators.  <a href="a00003.html#details">More...</a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html">_swizzle_base2&lt; ValueType, VecType, N, E0, E1, E2, E3, 1 &gt;</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization for swizzles containing duplicate elements. These cannot be modified.  <a href="a00004.html#details">More...</a><br/></td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2006-04-20 / 2011-02-16 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+<p><a class="el" href="a00164.html">GLM_GTX_extented_min_max: Extended min max</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2007-03-14 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtx_half_float (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00021_source.html">_swizzle.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00021_source.html">extented_min_max.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 146 - 802
doc/api-0.9.3/a00021_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_swizzle.hpp Source File</title>
+<title>extented_min_max.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_swizzle.hpp</div>  </div>
-</div>
+<div class="title">extented_min_max.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00021.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,810 +81,152 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_core_swizzle</span>
-<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_swizzle</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span>
-<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00022.html" title="OpenGL Mathematics (glm.g-truc.net)">_swizzle_func.hpp</a>&quot;</span>
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
 <a name="l00033"></a>00033 
-<a name="l00034"></a>00034 <span class="keyword">namespace </span>glm
-<a name="l00035"></a>00035 {
-<a name="l00036"></a>00036         <span class="keyword">enum</span> comp
-<a name="l00037"></a>00037         {
-<a name="l00038"></a>00038                 X = 0,
-<a name="l00039"></a>00039                 R = 0,
-<a name="l00040"></a>00040                 S = 0,
-<a name="l00041"></a>00041                 Y = 1,
-<a name="l00042"></a>00042                 G = 1,
-<a name="l00043"></a>00043                 T = 1,
-<a name="l00044"></a>00044                 Z = 2,
-<a name="l00045"></a>00045                 B = 2,
-<a name="l00046"></a>00046                 P = 2,
-<a name="l00047"></a>00047                 W = 3,
-<a name="l00048"></a>00048                 A = 3,
-<a name="l00049"></a>00049                 Q = 3
-<a name="l00050"></a>00050         };
-<a name="l00051"></a>00051 }<span class="comment">//namespace glm</span>
-<a name="l00052"></a>00052 
-<a name="l00053"></a>00053 <span class="keyword">namespace </span>glm{
-<a name="l00054"></a>00054 <span class="keyword">namespace </span>detail
-<a name="l00055"></a>00055 {
-<a name="l00057"></a>00057     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;
-<a name="l00058"></a>00058     <span class="keyword">struct </span>_swizzle_base0
-<a name="l00059"></a>00059     {
-<a name="l00060"></a>00060         <span class="keyword">typedef</span> T       value_type;
-<a name="l00061"></a>00061 
-<a name="l00062"></a>00062     <span class="keyword">protected</span>:
-<a name="l00063"></a>00063         value_type&amp;         elem   (<span class="keywordtype">size_t</span> i)       { <span class="keywordflow">return</span> (reinterpret_cast&lt;value_type*&gt;(_buffer))[i]; }
-<a name="l00064"></a>00064         <span class="keyword">const</span> value_type&amp;   elem   (<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (reinterpret_cast&lt;const value_type*&gt;(_buffer))[i]; }
-<a name="l00065"></a>00065 
-<a name="l00066"></a>00066         <span class="comment">// Use an opaque buffer to *ensure* the compiler doesn&#39;t call a constructor.</span>
-<a name="l00067"></a>00067         <span class="comment">// The size 1 buffer is assumed to aligned to the actual members so that the</span>
-<a name="l00068"></a>00068         <span class="comment">// elem() </span>
-<a name="l00069"></a>00069         <span class="keywordtype">char</span>    _buffer[1];
-<a name="l00070"></a>00070     };
-<a name="l00071"></a>00071 
-<a name="l00072"></a>00072     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> N&gt;
-<a name="l00073"></a>00073     <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0&lt;T,N&gt;
-<a name="l00074"></a>00074     {
-<a name="l00075"></a>00075     };
-<a name="l00076"></a>00076 
-<a name="l00077"></a>00077     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;
-<a name="l00078"></a>00078     <span class="keyword">struct </span>_swizzle_base1&lt;T,V,E0,E1,-1,-2,2&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T,2&gt;
-<a name="l00079"></a>00079     {
-<a name="l00080"></a>00080         V operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1)); }
-<a name="l00081"></a>00081     };
-<a name="l00082"></a>00082 
-<a name="l00083"></a>00083     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;
-<a name="l00084"></a>00084     <span class="keyword">struct </span>_swizzle_base1&lt;T,V,E0,E1,E2,-1,3&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T,3&gt;
-<a name="l00085"></a>00085     {
-<a name="l00086"></a>00086         V operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2)); }
-<a name="l00087"></a>00087     };
-<a name="l00088"></a>00088 
-<a name="l00089"></a>00089     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;
-<a name="l00090"></a>00090     <span class="keyword">struct </span>_swizzle_base1&lt;T,V,E0,E1,E2,E3,4&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T,4&gt;
-<a name="l00091"></a>00091     { 
-<a name="l00092"></a>00092         V operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2), this-&gt;elem(E3)); }
-<a name="l00093"></a>00093     };
-<a name="l00094"></a>00094 
-<a name="l00096"></a>00096 
-<a name="l00107"></a>00107     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEMENTS&gt;
-<a name="l00108"></a>00108     <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1&lt;ValueType,VecType,E0,E1,E2,E3,N&gt;
-<a name="l00109"></a>00109     {
-<a name="l00110"></a>00110                 <span class="keyword">typedef</span> VecType vec_type;
-<a name="l00111"></a>00111                 <span class="keyword">typedef</span> ValueType value_type;
-<a name="l00112"></a>00112 
-<a name="l00113"></a>00113                 _swizzle_base2&amp; operator= (<span class="keyword">const</span> ValueType&amp; t)
-<a name="l00114"></a>00114                 {
-<a name="l00115"></a>00115                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)
-<a name="l00116"></a>00116                                 (*<span class="keyword">this</span>)[i] = t;
-<a name="l00117"></a>00117                         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00118"></a>00118                 }
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120                 _swizzle_base2&amp; operator= (<span class="keyword">const</span> VecType&amp; that)
-<a name="l00121"></a>00121                 {
-<a name="l00122"></a>00122                         <span class="keyword">struct </span>op { 
-<a name="l00123"></a>00123                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00177.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e = t; } 
-<a name="l00124"></a>00124                         };
-<a name="l00125"></a>00125                         _apply_op(that, op());
-<a name="l00126"></a>00126                         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00127"></a>00127                 }
-<a name="l00128"></a>00128 
-<a name="l00129"></a>00129                 <span class="keywordtype">void</span> operator -= (<span class="keyword">const</span> VecType&amp; that)
-<a name="l00130"></a>00130                 {
-<a name="l00131"></a>00131                         <span class="keyword">struct </span>op { 
-<a name="l00132"></a>00132                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00177.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e -= t; } 
-<a name="l00133"></a>00133                         };
-<a name="l00134"></a>00134                         _apply_op(that, op());
-<a name="l00135"></a>00135                 }
-<a name="l00136"></a>00136 
-<a name="l00137"></a>00137                 <span class="keywordtype">void</span> operator += (<span class="keyword">const</span> VecType&amp; that)
-<a name="l00138"></a>00138                 {
-<a name="l00139"></a>00139                         <span class="keyword">struct </span>op { 
-<a name="l00140"></a>00140                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00177.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e += t; } 
-<a name="l00141"></a>00141                         };
-<a name="l00142"></a>00142                         _apply_op(that, op());
-<a name="l00143"></a>00143                 }
-<a name="l00144"></a>00144 
-<a name="l00145"></a>00145                 <span class="keywordtype">void</span> operator *= (<span class="keyword">const</span> VecType&amp; that)
-<a name="l00146"></a>00146                 {
-<a name="l00147"></a>00147                         <span class="keyword">struct </span>op { 
-<a name="l00148"></a>00148                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00177.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e *= t; } 
-<a name="l00149"></a>00149                         };
-<a name="l00150"></a>00150                         _apply_op(that, op());
-<a name="l00151"></a>00151                 }
-<a name="l00152"></a>00152 
-<a name="l00153"></a>00153                 <span class="keywordtype">void</span> operator /= (<span class="keyword">const</span> VecType&amp; that)
-<a name="l00154"></a>00154                 {
-<a name="l00155"></a>00155                         <span class="keyword">struct </span>op { 
-<a name="l00156"></a>00156                                 <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00177.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>, value_type&amp; t) { e /= t; } 
-<a name="l00157"></a>00157                         };
-<a name="l00158"></a>00158                         _apply_op(that, op());
-<a name="l00159"></a>00159                 }
-<a name="l00160"></a>00160 
-<a name="l00161"></a>00161                 value_type&amp; operator[]  (<span class="keywordtype">size_t</span> i)
-<a name="l00162"></a>00162                 {
-<a name="l00163"></a>00163                         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };
-<a name="l00164"></a>00164                         <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);
-<a name="l00165"></a>00165                 }
-<a name="l00166"></a>00166                 value_type  operator[]  (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span>
-<a name="l00167"></a>00167 <span class="keyword">                </span>{
-<a name="l00168"></a>00168                         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };
-<a name="l00169"></a>00169                         <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);
-<a name="l00170"></a>00170                 }
-<a name="l00171"></a>00171         <span class="keyword">protected</span>:
-<a name="l00172"></a>00172                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00173"></a>00173                 <span class="keywordtype">void</span> _apply_op(<span class="keyword">const</span> VecType&amp; that, T op)
-<a name="l00174"></a>00174                 {
-<a name="l00175"></a>00175                         <span class="comment">// Make a copy of the data in this == &amp;that.</span>
-<a name="l00176"></a>00176                         <span class="comment">// The copier should optimize out the copy in cases where the function is</span>
-<a name="l00177"></a>00177                         <span class="comment">// properly inlined and the copy is not necessary.</span>
-<a name="l00178"></a>00178                         ValueType t[N];
-<a name="l00179"></a>00179                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)
-<a name="l00180"></a>00180                                 t[i] = that[i];
-<a name="l00181"></a>00181                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)
-<a name="l00182"></a>00182                                 op( (*<span class="keyword">this</span>)[i], t[i] );
-<a name="l00183"></a>00183                 }
-<a name="l00184"></a>00184     };
-<a name="l00185"></a>00185 
-<a name="l00187"></a>00187         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;
-<a name="l00188"></a>00188         <span class="keyword">struct </span>_swizzle_base2&lt;ValueType,VecType,N,E0,E1,E2,E3,1&gt; : <span class="keyword">public</span> _swizzle_base1&lt;ValueType,VecType,E0,E1,E2,E3,N&gt;
-<a name="l00189"></a>00189         {
-<a name="l00190"></a>00190                 <span class="keyword">typedef</span> VecType         vec_type;        
-<a name="l00191"></a>00191                 <span class="keyword">typedef</span> ValueType       value_type;
-<a name="l00192"></a>00192 
-<a name="l00193"></a>00193                 <span class="keyword">struct </span>Stub {};
-<a name="l00194"></a>00194                 _swizzle_base2&amp; operator= (<span class="keyword">const</span> Stub&amp; that) {}
-<a name="l00195"></a>00195 
-<a name="l00196"></a>00196                 value_type  operator[]  (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span>
-<a name="l00197"></a>00197 <span class="keyword">                </span>{
-<a name="l00198"></a>00198                         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };
-<a name="l00199"></a>00199                         <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);
-<a name="l00200"></a>00200                 } 
-<a name="l00201"></a>00201         };
-<a name="l00202"></a>00202 
-<a name="l00203"></a>00203         <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N,<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> E0,<span class="keywordtype">int</span> E1,<span class="keywordtype">int</span> E2,<span class="keywordtype">int</span> E3&gt;
-<a name="l00204"></a>00204         <span class="keyword">struct </span>swizzle : <span class="keyword">public</span> _swizzle_base2&lt;ValueType,VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)&gt;
-<a name="l00205"></a>00205         {
-<a name="l00206"></a>00206                 <span class="keyword">typedef</span> _swizzle_base2&lt;ValueType,VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)&gt; base_type;
-<a name="l00207"></a>00207 
-<a name="l00208"></a>00208                 <span class="keyword">using</span> base_type::operator=;
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210                 operator VecType ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }
-<a name="l00211"></a>00211         };
-<a name="l00212"></a>00212 
-<a name="l00213"></a>00213 <span class="comment">//</span>
-<a name="l00214"></a>00214 <span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span>
-<a name="l00215"></a>00215 <span class="comment">//</span>
-<a name="l00216"></a>00216 <span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE1   template &lt;int N, typename T, typename V, int E0, int E1, int E2, int E3&gt;</span>
-<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE2   template &lt;int N, typename T, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3&gt;</span>
-<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor">#define _GLM_SWIZZLE_TYPE1       glm::detail::swizzle&lt;N,T,V,E0,E1,E2,E3&gt;</span>
-<a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#define _GLM_SWIZZLE_TYPE2       glm::detail::swizzle&lt;N,T,V,F0,F1,F2,F3&gt;</span>
-<a name="l00220"></a>00220 <span class="preprocessor"></span>
-<a name="l00221"></a>00221 <span class="comment">//</span>
-<a name="l00222"></a>00222 <span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span>
-<a name="l00223"></a>00223 <span class="comment">//</span>
-<a name="l00224"></a>00224 <span class="preprocessor">#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                 \</span>
-<a name="l00225"></a>00225 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE2                                                          \</span>
-<a name="l00226"></a>00226 <span class="preprocessor">        V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b)  \</span>
-<a name="l00227"></a>00227 <span class="preprocessor">        {                                                                               \</span>
-<a name="l00228"></a>00228 <span class="preprocessor">                return a() OPERAND b();                                                     \</span>
-<a name="l00229"></a>00229 <span class="preprocessor">        }                                                                               \</span>
-<a name="l00230"></a>00230 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
-<a name="l00231"></a>00231 <span class="preprocessor">        V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const V&amp; b)                   \</span>
-<a name="l00232"></a>00232 <span class="preprocessor">        {                                                                               \</span>
-<a name="l00233"></a>00233 <span class="preprocessor">                return a() OPERAND b;                                                       \</span>
-<a name="l00234"></a>00234 <span class="preprocessor">        }                                                                               \</span>
-<a name="l00235"></a>00235 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
-<a name="l00236"></a>00236 <span class="preprocessor">        V operator OPERAND ( const V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b)                   \</span>
-<a name="l00237"></a>00237 <span class="preprocessor">        {                                                                               \</span>
-<a name="l00238"></a>00238 <span class="preprocessor">                return a OPERAND b();                                                       \</span>
-<a name="l00239"></a>00239 <span class="preprocessor">        }</span>
-<a name="l00240"></a>00240 <span class="preprocessor"></span>
-<a name="l00241"></a>00241 <span class="comment">//</span>
-<a name="l00242"></a>00242 <span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span>
-<a name="l00243"></a>00243 <span class="comment">//</span>
-<a name="l00244"></a>00244 <span class="preprocessor">#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                 \</span>
-<a name="l00245"></a>00245 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
-<a name="l00246"></a>00246 <span class="preprocessor">        V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const T&amp; b)                   \</span>
-<a name="l00247"></a>00247 <span class="preprocessor">        {                                                                               \</span>
-<a name="l00248"></a>00248 <span class="preprocessor">                return a() OPERAND b;                                                       \</span>
-<a name="l00249"></a>00249 <span class="preprocessor">        }                                                                               \</span>
-<a name="l00250"></a>00250 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
-<a name="l00251"></a>00251 <span class="preprocessor">        V operator OPERAND ( const T&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b)                   \</span>
-<a name="l00252"></a>00252 <span class="preprocessor">        {                                                                               \</span>
-<a name="l00253"></a>00253 <span class="preprocessor">                return a OPERAND b();                                                       \</span>
-<a name="l00254"></a>00254 <span class="preprocessor">        }</span>
-<a name="l00255"></a>00255 <span class="preprocessor"></span>
-<a name="l00256"></a>00256 <span class="comment">//</span>
-<a name="l00257"></a>00257 <span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span>
-<a name="l00258"></a>00258 <span class="comment">//</span>
-<a name="l00259"></a>00259 <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION)                          \</span>
-<a name="l00260"></a>00260 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                          \</span>
-<a name="l00261"></a>00261 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a)  \</span>
-<a name="l00262"></a>00262 <span class="preprocessor">        {                                                                               \</span>
-<a name="l00263"></a>00263 <span class="preprocessor">                return FUNCTION(a());                                                       \</span>
-<a name="l00264"></a>00264 <span class="preprocessor">        }</span>
-<a name="l00265"></a>00265 <span class="preprocessor"></span>
-<a name="l00266"></a>00266 <span class="comment">//</span>
-<a name="l00267"></a>00267 <span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span>
-<a name="l00268"></a>00268 <span class="comment">//</span>
-<a name="l00269"></a>00269 <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION)                                                      \</span>
-<a name="l00270"></a>00270 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE2                                                                                      \</span>
-<a name="l00271"></a>00271 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b) \</span>
-<a name="l00272"></a>00272 <span class="preprocessor">        {                                                                                                           \</span>
-<a name="l00273"></a>00273 <span class="preprocessor">                return FUNCTION(a(), b());                                                                              \</span>
-<a name="l00274"></a>00274 <span class="preprocessor">        }                                                                                                           \</span>
-<a name="l00275"></a>00275 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                      \</span>
-<a name="l00276"></a>00276 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span>
-<a name="l00277"></a>00277 <span class="preprocessor">        {                                                                                                           \</span>
-<a name="l00278"></a>00278 <span class="preprocessor">                return FUNCTION(a(), b());                                                                              \</span>
-<a name="l00279"></a>00279 <span class="preprocessor">        }                                                                                                           \</span>
-<a name="l00280"></a>00280 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                      \</span>
-<a name="l00281"></a>00281 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const typename V&amp; b)         \</span>
-<a name="l00282"></a>00282 <span class="preprocessor">        {                                                                                                           \</span>
-<a name="l00283"></a>00283 <span class="preprocessor">                return FUNCTION(a(), b);                                                                                \</span>
-<a name="l00284"></a>00284 <span class="preprocessor">        }                                                                                                           \</span>
-<a name="l00285"></a>00285 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                      \</span>
-<a name="l00286"></a>00286 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b)                  \</span>
-<a name="l00287"></a>00287 <span class="preprocessor">        {                                                                                                           \</span>
-<a name="l00288"></a>00288 <span class="preprocessor">                return FUNCTION(a, b());                                                                                \</span>
-<a name="l00289"></a>00289 <span class="preprocessor">        } </span>
-<a name="l00290"></a>00290 <span class="preprocessor"></span>
-<a name="l00291"></a>00291 <span class="comment">//</span>
-<a name="l00292"></a>00292 <span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span>
-<a name="l00293"></a>00293 <span class="comment">//</span>
-<a name="l00294"></a>00294 <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION)                                                             \</span>
-<a name="l00295"></a>00295 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE2                                                                                                    \</span>
-<a name="l00296"></a>00296 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b, const T&amp; c)   \</span>
-<a name="l00297"></a>00297 <span class="preprocessor">        {                                                                                                                         \</span>
-<a name="l00298"></a>00298 <span class="preprocessor">                return FUNCTION(a(), b(), c);                                                                                         \</span>
-<a name="l00299"></a>00299 <span class="preprocessor">        }                                                                                                                         \</span>
-<a name="l00300"></a>00300 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span>
-<a name="l00301"></a>00301 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c)   \</span>
-<a name="l00302"></a>00302 <span class="preprocessor">        {                                                                                                                         \</span>
-<a name="l00303"></a>00303 <span class="preprocessor">                return FUNCTION(a(), b(), c);                                                                                         \</span>
-<a name="l00304"></a>00304 <span class="preprocessor">        }                                                                                                                         \</span>
-<a name="l00305"></a>00305 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span>
-<a name="l00306"></a>00306 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const typename S0::vec_type&amp; b, const T&amp; c)\</span>
-<a name="l00307"></a>00307 <span class="preprocessor">        {                                                                                                                         \</span>
-<a name="l00308"></a>00308 <span class="preprocessor">                return FUNCTION(a(), b, c);                                                                                           \</span>
-<a name="l00309"></a>00309 <span class="preprocessor">        }                                                                                                                         \</span>
-<a name="l00310"></a>00310 <span class="preprocessor">        _GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span>
-<a name="l00311"></a>00311 <span class="preprocessor">        typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c)           \</span>
-<a name="l00312"></a>00312 <span class="preprocessor">        {                                                                                                                         \</span>
-<a name="l00313"></a>00313 <span class="preprocessor">                return FUNCTION(a, b(), c);                                                                                           \</span>
-<a name="l00314"></a>00314 <span class="preprocessor">        } </span>
-<a name="l00315"></a>00315 <span class="preprocessor"></span> 
-<a name="l00316"></a>00316 }<span class="comment">//namespace detail </span>
-<a name="l00317"></a>00317 }<span class="comment">//namespace glm</span>
-<a name="l00318"></a>00318 
-<a name="l00319"></a>00319 <span class="keyword">namespace </span>glm
-<a name="l00320"></a>00320 {
-<a name="l00321"></a>00321         <span class="keyword">namespace </span>detail
-<a name="l00322"></a>00322         {
-<a name="l00323"></a>00323                 _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
-<a name="l00324"></a>00324                 _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
-<a name="l00325"></a>00325         
-<a name="l00326"></a>00326                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
-<a name="l00327"></a>00327                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
-<a name="l00328"></a>00328                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
-<a name="l00329"></a>00329                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
-<a name="l00330"></a>00330         }
-<a name="l00331"></a>00331 
-<a name="l00332"></a>00332     <span class="comment">//</span>
-<a name="l00333"></a>00333     <span class="comment">// Swizzles are distinct types from the unswizzled type.  The below macros will</span>
-<a name="l00334"></a>00334     <span class="comment">// provide template specializations for the swizzle types for the given functions</span>
-<a name="l00335"></a>00335     <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span>
-<a name="l00336"></a>00336     <span class="comment">// the function.</span>
-<a name="l00337"></a>00337     <span class="comment">//</span>
-<a name="l00338"></a>00338     <span class="comment">// The alternative is to use the operator()() when calling the function in order</span>
-<a name="l00339"></a>00339     <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span>
-<a name="l00340"></a>00340     <span class="comment">//</span>
-<a name="l00341"></a>00341 
-<a name="l00342"></a>00342     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    abs);</span>
-<a name="l00343"></a>00343     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acos);</span>
-<a name="l00344"></a>00344     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acosh);</span>
-<a name="l00345"></a>00345     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    all);</span>
-<a name="l00346"></a>00346     <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    any);</span>
-<a name="l00347"></a>00347     
-<a name="l00348"></a>00348     <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type,  dot);</span>
-<a name="l00349"></a>00349     <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    cross);</span>
-<a name="l00350"></a>00350     <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    step);    </span>
-<a name="l00351"></a>00351     <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span>
-<a name="l00352"></a>00352 }
-<a name="l00353"></a>00353 
-<a name="l00354"></a>00354 <span class="preprocessor">#define _GLM_SWIZZLE2_2_MEMBERS(T,P,E0,E1) \</span>
-<a name="l00355"></a>00355 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,0,-1,-2&gt; E0 ## E0; }; \</span>
-<a name="l00356"></a>00356 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,1,-1,-2&gt; E0 ## E1; }; \</span>
-<a name="l00357"></a>00357 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,0,-1,-2&gt; E1 ## E0; }; \</span>
-<a name="l00358"></a>00358 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,1,-1,-2&gt; E1 ## E1; }; </span>
-<a name="l00359"></a>00359 <span class="preprocessor"></span>
-<a name="l00360"></a>00360 <span class="preprocessor">#define _GLM_SWIZZLE2_3_MEMBERS(T,P2,E0,E1) \</span>
-<a name="l00361"></a>00361 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span>
-<a name="l00362"></a>00362 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span>
-<a name="l00363"></a>00363 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span>
-<a name="l00364"></a>00364 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span>
-<a name="l00365"></a>00365 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span>
-<a name="l00366"></a>00366 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span>
-<a name="l00367"></a>00367 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span>
-<a name="l00368"></a>00368 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P2,1,1,1,-1&gt; E1 ## E1 ## E1; };  </span>
-<a name="l00369"></a>00369 <span class="preprocessor"></span>
-<a name="l00370"></a>00370 <span class="preprocessor">#define _GLM_SWIZZLE2_4_MEMBERS(T,P2,E0,E1) \</span>
-<a name="l00371"></a>00371 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00372"></a>00372 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00373"></a>00373 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00374"></a>00374 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00375"></a>00375 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00376"></a>00376 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00377"></a>00377 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00378"></a>00378 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span>
-<a name="l00379"></a>00379 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00380"></a>00380 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00381"></a>00381 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00382"></a>00382 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00383"></a>00383 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00384"></a>00384 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00385"></a>00385 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00386"></a>00386 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,1&gt; E1 ## E1 ## E1 ## E1; };  </span>
-<a name="l00387"></a>00387 <span class="preprocessor"></span>
-<a name="l00388"></a>00388 <span class="preprocessor">#define _GLM_SWIZZLE3_2_MEMBERS(T,P2,E0,E1,E2) \</span>
-<a name="l00389"></a>00389 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,0,0,-1,-2&gt; E0 ## E0; }; \</span>
-<a name="l00390"></a>00390 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,0,1,-1,-2&gt; E0 ## E1; }; \</span>
-<a name="l00391"></a>00391 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,0,2,-1,-2&gt; E0 ## E2; }; \</span>
-<a name="l00392"></a>00392 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,1,0,-1,-2&gt; E1 ## E0; }; \</span>
-<a name="l00393"></a>00393 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,1,1,-1,-2&gt; E1 ## E1; }; \</span>
-<a name="l00394"></a>00394 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,1,2,-1,-2&gt; E1 ## E2; }; \</span>
-<a name="l00395"></a>00395 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,2,0,-1,-2&gt; E2 ## E0; }; \</span>
-<a name="l00396"></a>00396 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,2,1,-1,-2&gt; E2 ## E1; }; \</span>
-<a name="l00397"></a>00397 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P2,2,2,-1,-2&gt; E2 ## E2; }; </span>
-<a name="l00398"></a>00398 <span class="preprocessor"></span>
-<a name="l00399"></a>00399 <span class="preprocessor">#define _GLM_SWIZZLE3_3_MEMBERS(T,P,E0,E1,E2) \</span>
-<a name="l00400"></a>00400 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span>
-<a name="l00401"></a>00401 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span>
-<a name="l00402"></a>00402 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span>
-<a name="l00403"></a>00403 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span>
-<a name="l00404"></a>00404 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span>
-<a name="l00405"></a>00405 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span>
-<a name="l00406"></a>00406 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span>
-<a name="l00407"></a>00407 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span>
-<a name="l00408"></a>00408 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span>
-<a name="l00409"></a>00409 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span>
-<a name="l00410"></a>00410 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span>
-<a name="l00411"></a>00411 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span>
-<a name="l00412"></a>00412 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span>
-<a name="l00413"></a>00413 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span>
-<a name="l00414"></a>00414 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span>
-<a name="l00415"></a>00415 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span>
-<a name="l00416"></a>00416 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span>
-<a name="l00417"></a>00417 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span>
-<a name="l00418"></a>00418 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span>
-<a name="l00419"></a>00419 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span>
-<a name="l00420"></a>00420 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span>
-<a name="l00421"></a>00421 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span>
-<a name="l00422"></a>00422 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span>
-<a name="l00423"></a>00423 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span>
-<a name="l00424"></a>00424 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span>
-<a name="l00425"></a>00425 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span>
-<a name="l00426"></a>00426 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,2,-1&gt; E2 ## E2 ## E2; };</span>
-<a name="l00427"></a>00427 <span class="preprocessor"></span>
-<a name="l00428"></a>00428 <span class="preprocessor">#define _GLM_SWIZZLE3_4_MEMBERS(T,P2,E0,E1,E2) \</span>
-<a name="l00429"></a>00429 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00430"></a>00430 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00431"></a>00431 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span>
-<a name="l00432"></a>00432 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00433"></a>00433 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00434"></a>00434 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span>
-<a name="l00435"></a>00435 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span>
-<a name="l00436"></a>00436 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span>
-<a name="l00437"></a>00437 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span>
-<a name="l00438"></a>00438 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00439"></a>00439 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00440"></a>00440 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span>
-<a name="l00441"></a>00441 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00442"></a>00442 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span>
-<a name="l00443"></a>00443 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span>
-<a name="l00444"></a>00444 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span>
-<a name="l00445"></a>00445 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span>
-<a name="l00446"></a>00446 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span>
-<a name="l00447"></a>00447 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span>
-<a name="l00448"></a>00448 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span>
-<a name="l00449"></a>00449 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span>
-<a name="l00450"></a>00450 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span>
-<a name="l00451"></a>00451 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span>
-<a name="l00452"></a>00452 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span>
-<a name="l00453"></a>00453 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span>
-<a name="l00454"></a>00454 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span>
-<a name="l00455"></a>00455 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span>
-<a name="l00456"></a>00456 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00457"></a>00457 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00458"></a>00458 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span>
-<a name="l00459"></a>00459 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00460"></a>00460 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00461"></a>00461 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span>
-<a name="l00462"></a>00462 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span>
-<a name="l00463"></a>00463 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span>
-<a name="l00464"></a>00464 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span>
-<a name="l00465"></a>00465 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00466"></a>00466 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00467"></a>00467 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span>
-<a name="l00468"></a>00468 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00469"></a>00469 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span>
-<a name="l00470"></a>00470 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span>
-<a name="l00471"></a>00471 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span>
-<a name="l00472"></a>00472 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span>
-<a name="l00473"></a>00473 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span>
-<a name="l00474"></a>00474 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span>
-<a name="l00475"></a>00475 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span>
-<a name="l00476"></a>00476 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span>
-<a name="l00477"></a>00477 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span>
-<a name="l00478"></a>00478 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span>
-<a name="l00479"></a>00479 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span>
-<a name="l00480"></a>00480 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span>
-<a name="l00481"></a>00481 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span>
-<a name="l00482"></a>00482 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span>
-<a name="l00483"></a>00483 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00484"></a>00484 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00485"></a>00485 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span>
-<a name="l00486"></a>00486 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00487"></a>00487 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00488"></a>00488 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span>
-<a name="l00489"></a>00489 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span>
-<a name="l00490"></a>00490 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span>
-<a name="l00491"></a>00491 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span>
-<a name="l00492"></a>00492 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00493"></a>00493 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00494"></a>00494 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span>
-<a name="l00495"></a>00495 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00496"></a>00496 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span>
-<a name="l00497"></a>00497 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span>
-<a name="l00498"></a>00498 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span>
-<a name="l00499"></a>00499 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span>
-<a name="l00500"></a>00500 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span>
-<a name="l00501"></a>00501 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span>
-<a name="l00502"></a>00502 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span>
-<a name="l00503"></a>00503 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span>
-<a name="l00504"></a>00504 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span>
-<a name="l00505"></a>00505 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span>
-<a name="l00506"></a>00506 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span>
-<a name="l00507"></a>00507 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span>
-<a name="l00508"></a>00508 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span>
-<a name="l00509"></a>00509 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P2,2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; </span>
-<a name="l00510"></a>00510 <span class="preprocessor"></span>
-<a name="l00511"></a>00511 <span class="preprocessor">#define _GLM_SWIZZLE4_2_MEMBERS(T,P,E0,E1,E2,E3) \</span>
-<a name="l00512"></a>00512 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,0,-1,-2&gt; E0 ## E0; }; \</span>
-<a name="l00513"></a>00513 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,1,-1,-2&gt; E0 ## E1; }; \</span>
-<a name="l00514"></a>00514 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,2,-1,-2&gt; E0 ## E2; }; \</span>
-<a name="l00515"></a>00515 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,0,3,-1,-2&gt; E0 ## E3; }; \</span>
-<a name="l00516"></a>00516 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,0,-1,-2&gt; E1 ## E0; }; \</span>
-<a name="l00517"></a>00517 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,1,-1,-2&gt; E1 ## E1; }; \</span>
-<a name="l00518"></a>00518 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,2,-1,-2&gt; E1 ## E2; }; \</span>
-<a name="l00519"></a>00519 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,1,3,-1,-2&gt; E1 ## E3; }; \</span>
-<a name="l00520"></a>00520 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,2,0,-1,-2&gt; E2 ## E0; }; \</span>
-<a name="l00521"></a>00521 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,2,1,-1,-2&gt; E2 ## E1; }; \</span>
-<a name="l00522"></a>00522 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,2,2,-1,-2&gt; E2 ## E2; }; \</span>
-<a name="l00523"></a>00523 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,2,3,-1,-2&gt; E2 ## E3; }; \</span>
-<a name="l00524"></a>00524 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,3,0,-1,-2&gt; E3 ## E0; }; \</span>
-<a name="l00525"></a>00525 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,3,1,-1,-2&gt; E3 ## E1; }; \</span>
-<a name="l00526"></a>00526 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,3,2,-1,-2&gt; E3 ## E2; }; \</span>
-<a name="l00527"></a>00527 <span class="preprocessor">        struct { glm::detail::swizzle&lt;2,T,P,3,3,-1,-2&gt; E3 ## E3; }; </span>
-<a name="l00528"></a>00528 <span class="preprocessor"></span>
-<a name="l00529"></a>00529 <span class="preprocessor">#define _GLM_SWIZZLE4_3_MEMBERS(T,P,E0,E1,E2,E3) \</span>
-<a name="l00530"></a>00530 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span>
-<a name="l00531"></a>00531 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span>
-<a name="l00532"></a>00532 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span>
-<a name="l00533"></a>00533 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,0,3,-1&gt; E0 ## E0 ## E3; }; \</span>
-<a name="l00534"></a>00534 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span>
-<a name="l00535"></a>00535 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span>
-<a name="l00536"></a>00536 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span>
-<a name="l00537"></a>00537 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,1,3,-1&gt; E0 ## E1 ## E3; }; \</span>
-<a name="l00538"></a>00538 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span>
-<a name="l00539"></a>00539 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span>
-<a name="l00540"></a>00540 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span>
-<a name="l00541"></a>00541 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,2,3,-1&gt; E0 ## E2 ## E3; }; \</span>
-<a name="l00542"></a>00542 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,3,0,-1&gt; E0 ## E3 ## E0; }; \</span>
-<a name="l00543"></a>00543 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,3,1,-1&gt; E0 ## E3 ## E1; }; \</span>
-<a name="l00544"></a>00544 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,3,2,-1&gt; E0 ## E3 ## E2; }; \</span>
-<a name="l00545"></a>00545 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,0,3,3,-1&gt; E0 ## E3 ## E3; }; \</span>
-<a name="l00546"></a>00546 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span>
-<a name="l00547"></a>00547 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span>
-<a name="l00548"></a>00548 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span>
-<a name="l00549"></a>00549 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,0,3,-1&gt; E1 ## E0 ## E3; }; \</span>
-<a name="l00550"></a>00550 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span>
-<a name="l00551"></a>00551 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span>
-<a name="l00552"></a>00552 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span>
-<a name="l00553"></a>00553 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,1,3,-1&gt; E1 ## E1 ## E3; }; \</span>
-<a name="l00554"></a>00554 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span>
-<a name="l00555"></a>00555 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span>
-<a name="l00556"></a>00556 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span>
-<a name="l00557"></a>00557 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,2,3,-1&gt; E1 ## E2 ## E3; }; \</span>
-<a name="l00558"></a>00558 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,3,0,-1&gt; E1 ## E3 ## E0; }; \</span>
-<a name="l00559"></a>00559 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,3,1,-1&gt; E1 ## E3 ## E1; }; \</span>
-<a name="l00560"></a>00560 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,3,2,-1&gt; E1 ## E3 ## E2; }; \</span>
-<a name="l00561"></a>00561 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,1,3,3,-1&gt; E1 ## E3 ## E3; }; \</span>
-<a name="l00562"></a>00562 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span>
-<a name="l00563"></a>00563 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span>
-<a name="l00564"></a>00564 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span>
-<a name="l00565"></a>00565 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,0,3,-1&gt; E2 ## E0 ## E3; }; \</span>
-<a name="l00566"></a>00566 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span>
-<a name="l00567"></a>00567 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span>
-<a name="l00568"></a>00568 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span>
-<a name="l00569"></a>00569 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,1,3,-1&gt; E2 ## E1 ## E3; }; \</span>
-<a name="l00570"></a>00570 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span>
-<a name="l00571"></a>00571 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span>
-<a name="l00572"></a>00572 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,2,-1&gt; E2 ## E2 ## E2; }; \</span>
-<a name="l00573"></a>00573 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,2,3,-1&gt; E2 ## E2 ## E3; }; \</span>
-<a name="l00574"></a>00574 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,3,0,-1&gt; E2 ## E3 ## E0; }; \</span>
-<a name="l00575"></a>00575 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,3,1,-1&gt; E2 ## E3 ## E1; }; \</span>
-<a name="l00576"></a>00576 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,3,2,-1&gt; E2 ## E3 ## E2; }; \</span>
-<a name="l00577"></a>00577 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,2,3,3,-1&gt; E2 ## E3 ## E3; }; \</span>
-<a name="l00578"></a>00578 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,0,0,-1&gt; E3 ## E0 ## E0; }; \</span>
-<a name="l00579"></a>00579 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,0,1,-1&gt; E3 ## E0 ## E1; }; \</span>
-<a name="l00580"></a>00580 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,0,2,-1&gt; E3 ## E0 ## E2; }; \</span>
-<a name="l00581"></a>00581 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,0,3,-1&gt; E3 ## E0 ## E3; }; \</span>
-<a name="l00582"></a>00582 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,1,0,-1&gt; E3 ## E1 ## E0; }; \</span>
-<a name="l00583"></a>00583 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,1,1,-1&gt; E3 ## E1 ## E1; }; \</span>
-<a name="l00584"></a>00584 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,1,2,-1&gt; E3 ## E1 ## E2; }; \</span>
-<a name="l00585"></a>00585 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,1,3,-1&gt; E3 ## E1 ## E3; }; \</span>
-<a name="l00586"></a>00586 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,2,0,-1&gt; E3 ## E2 ## E0; }; \</span>
-<a name="l00587"></a>00587 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,2,1,-1&gt; E3 ## E2 ## E1; }; \</span>
-<a name="l00588"></a>00588 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,2,2,-1&gt; E3 ## E2 ## E2; }; \</span>
-<a name="l00589"></a>00589 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,2,3,-1&gt; E3 ## E2 ## E3; }; \</span>
-<a name="l00590"></a>00590 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,3,0,-1&gt; E3 ## E3 ## E0; }; \</span>
-<a name="l00591"></a>00591 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,3,1,-1&gt; E3 ## E3 ## E1; }; \</span>
-<a name="l00592"></a>00592 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,3,2,-1&gt; E3 ## E3 ## E2; }; \</span>
-<a name="l00593"></a>00593 <span class="preprocessor">        struct { glm::detail::swizzle&lt;3,T,P,3,3,3,-1&gt; E3 ## E3 ## E3; };  </span>
-<a name="l00594"></a>00594 <span class="preprocessor"></span>
-<a name="l00595"></a>00595 <span class="preprocessor">#define _GLM_SWIZZLE4_4_MEMBERS(T,P,E0,E1,E2,E3) \</span>
-<a name="l00596"></a>00596 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00597"></a>00597 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00598"></a>00598 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span>
-<a name="l00599"></a>00599 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,0,3&gt; E0 ## E0 ## E0 ## E3; }; \</span>
-<a name="l00600"></a>00600 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00601"></a>00601 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00602"></a>00602 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span>
-<a name="l00603"></a>00603 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,1,3&gt; E0 ## E0 ## E1 ## E3; }; \</span>
-<a name="l00604"></a>00604 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span>
-<a name="l00605"></a>00605 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span>
-<a name="l00606"></a>00606 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span>
-<a name="l00607"></a>00607 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,2,3&gt; E0 ## E0 ## E2 ## E3; }; \</span>
-<a name="l00608"></a>00608 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,3,0&gt; E0 ## E0 ## E3 ## E0; }; \</span>
-<a name="l00609"></a>00609 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,3,1&gt; E0 ## E0 ## E3 ## E1; }; \</span>
-<a name="l00610"></a>00610 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,3,2&gt; E0 ## E0 ## E3 ## E2; }; \</span>
-<a name="l00611"></a>00611 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,0,3,3&gt; E0 ## E0 ## E3 ## E3; }; \</span>
-<a name="l00612"></a>00612 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00613"></a>00613 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00614"></a>00614 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span>
-<a name="l00615"></a>00615 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,0,3&gt; E0 ## E1 ## E0 ## E3; }; \</span>
-<a name="l00616"></a>00616 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00617"></a>00617 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span>
-<a name="l00618"></a>00618 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span>
-<a name="l00619"></a>00619 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,1,3&gt; E0 ## E1 ## E1 ## E3; }; \</span>
-<a name="l00620"></a>00620 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span>
-<a name="l00621"></a>00621 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span>
-<a name="l00622"></a>00622 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span>
-<a name="l00623"></a>00623 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,2,3&gt; E0 ## E1 ## E2 ## E3; }; \</span>
-<a name="l00624"></a>00624 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,3,0&gt; E0 ## E1 ## E3 ## E0; }; \</span>
-<a name="l00625"></a>00625 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,3,1&gt; E0 ## E1 ## E3 ## E1; }; \</span>
-<a name="l00626"></a>00626 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,3,2&gt; E0 ## E1 ## E3 ## E2; }; \</span>
-<a name="l00627"></a>00627 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,1,3,3&gt; E0 ## E1 ## E3 ## E3; }; \</span>
-<a name="l00628"></a>00628 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span>
-<a name="l00629"></a>00629 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span>
-<a name="l00630"></a>00630 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span>
-<a name="l00631"></a>00631 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,0,3&gt; E0 ## E2 ## E0 ## E3; }; \</span>
-<a name="l00632"></a>00632 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span>
-<a name="l00633"></a>00633 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span>
-<a name="l00634"></a>00634 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span>
-<a name="l00635"></a>00635 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,1,3&gt; E0 ## E2 ## E1 ## E3; }; \</span>
-<a name="l00636"></a>00636 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span>
-<a name="l00637"></a>00637 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span>
-<a name="l00638"></a>00638 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span>
-<a name="l00639"></a>00639 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,2,3&gt; E0 ## E2 ## E2 ## E3; }; \</span>
-<a name="l00640"></a>00640 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,3,0&gt; E0 ## E2 ## E3 ## E0; }; \</span>
-<a name="l00641"></a>00641 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,3,1&gt; E0 ## E2 ## E3 ## E1; }; \</span>
-<a name="l00642"></a>00642 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,3,2&gt; E0 ## E2 ## E3 ## E2; }; \</span>
-<a name="l00643"></a>00643 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,0,2,3,3&gt; E0 ## E2 ## E3 ## E3; }; \</span>
-<a name="l00644"></a>00644 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00645"></a>00645 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00646"></a>00646 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span>
-<a name="l00647"></a>00647 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,0,3&gt; E1 ## E0 ## E0 ## E3; }; \</span>
-<a name="l00648"></a>00648 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00649"></a>00649 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00650"></a>00650 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span>
-<a name="l00651"></a>00651 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,1,3&gt; E1 ## E0 ## E1 ## E3; }; \</span>
-<a name="l00652"></a>00652 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span>
-<a name="l00653"></a>00653 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span>
-<a name="l00654"></a>00654 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span>
-<a name="l00655"></a>00655 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,2,3&gt; E1 ## E0 ## E2 ## E3; }; \</span>
-<a name="l00656"></a>00656 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,3,0&gt; E1 ## E0 ## E3 ## E0; }; \</span>
-<a name="l00657"></a>00657 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,3,1&gt; E1 ## E0 ## E3 ## E1; }; \</span>
-<a name="l00658"></a>00658 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,3,2&gt; E1 ## E0 ## E3 ## E2; }; \</span>
-<a name="l00659"></a>00659 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,0,3,3&gt; E1 ## E0 ## E3 ## E3; }; \</span>
-<a name="l00660"></a>00660 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00661"></a>00661 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00662"></a>00662 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span>
-<a name="l00663"></a>00663 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,0,3&gt; E1 ## E1 ## E0 ## E3; }; \</span>
-<a name="l00664"></a>00664 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00665"></a>00665 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span>
-<a name="l00666"></a>00666 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span>
-<a name="l00667"></a>00667 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,1,3&gt; E1 ## E1 ## E1 ## E3; }; \</span>
-<a name="l00668"></a>00668 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span>
-<a name="l00669"></a>00669 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span>
-<a name="l00670"></a>00670 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span>
-<a name="l00671"></a>00671 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,2,3&gt; E1 ## E1 ## E2 ## E3; }; \</span>
-<a name="l00672"></a>00672 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,3,0&gt; E1 ## E1 ## E3 ## E0; }; \</span>
-<a name="l00673"></a>00673 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,3,1&gt; E1 ## E1 ## E3 ## E1; }; \</span>
-<a name="l00674"></a>00674 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,3,2&gt; E1 ## E1 ## E3 ## E2; }; \</span>
-<a name="l00675"></a>00675 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,1,3,3&gt; E1 ## E1 ## E3 ## E3; }; \</span>
-<a name="l00676"></a>00676 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span>
-<a name="l00677"></a>00677 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span>
-<a name="l00678"></a>00678 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span>
-<a name="l00679"></a>00679 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,0,3&gt; E1 ## E2 ## E0 ## E3; }; \</span>
-<a name="l00680"></a>00680 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span>
-<a name="l00681"></a>00681 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span>
-<a name="l00682"></a>00682 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span>
-<a name="l00683"></a>00683 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,1,3&gt; E1 ## E2 ## E1 ## E3; }; \</span>
-<a name="l00684"></a>00684 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span>
-<a name="l00685"></a>00685 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span>
-<a name="l00686"></a>00686 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span>
-<a name="l00687"></a>00687 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,2,3&gt; E1 ## E2 ## E2 ## E3; }; \</span>
-<a name="l00688"></a>00688 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,3,0&gt; E1 ## E2 ## E3 ## E0; }; \</span>
-<a name="l00689"></a>00689 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,3,1&gt; E1 ## E2 ## E3 ## E1; }; \</span>
-<a name="l00690"></a>00690 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,3,2&gt; E1 ## E2 ## E3 ## E2; }; \</span>
-<a name="l00691"></a>00691 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,2,3,3&gt; E1 ## E2 ## E3 ## E3; }; \</span>
-<a name="l00692"></a>00692 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,0,0&gt; E1 ## E3 ## E0 ## E0; }; \</span>
-<a name="l00693"></a>00693 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,0,1&gt; E1 ## E3 ## E0 ## E1; }; \</span>
-<a name="l00694"></a>00694 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,0,2&gt; E1 ## E3 ## E0 ## E2; }; \</span>
-<a name="l00695"></a>00695 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,0,3&gt; E1 ## E3 ## E0 ## E3; }; \</span>
-<a name="l00696"></a>00696 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,1,0&gt; E1 ## E3 ## E1 ## E0; }; \</span>
-<a name="l00697"></a>00697 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,1,1&gt; E1 ## E3 ## E1 ## E1; }; \</span>
-<a name="l00698"></a>00698 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,1,2&gt; E1 ## E3 ## E1 ## E2; }; \</span>
-<a name="l00699"></a>00699 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,1,3&gt; E1 ## E3 ## E1 ## E3; }; \</span>
-<a name="l00700"></a>00700 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,2,0&gt; E1 ## E3 ## E2 ## E0; }; \</span>
-<a name="l00701"></a>00701 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,2,1&gt; E1 ## E3 ## E2 ## E1; }; \</span>
-<a name="l00702"></a>00702 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,2,2&gt; E1 ## E3 ## E2 ## E2; }; \</span>
-<a name="l00703"></a>00703 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,2,3&gt; E1 ## E3 ## E2 ## E3; }; \</span>
-<a name="l00704"></a>00704 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,3,0&gt; E1 ## E3 ## E3 ## E0; }; \</span>
-<a name="l00705"></a>00705 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,3,1&gt; E1 ## E3 ## E3 ## E1; }; \</span>
-<a name="l00706"></a>00706 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,3,2&gt; E1 ## E3 ## E3 ## E2; }; \</span>
-<a name="l00707"></a>00707 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,1,3,3,3&gt; E1 ## E3 ## E3 ## E3; }; \</span>
-<a name="l00708"></a>00708 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00709"></a>00709 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00710"></a>00710 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span>
-<a name="l00711"></a>00711 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,0,3&gt; E2 ## E0 ## E0 ## E3; }; \</span>
-<a name="l00712"></a>00712 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00713"></a>00713 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00714"></a>00714 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span>
-<a name="l00715"></a>00715 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,1,3&gt; E2 ## E0 ## E1 ## E3; }; \</span>
-<a name="l00716"></a>00716 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span>
-<a name="l00717"></a>00717 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span>
-<a name="l00718"></a>00718 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span>
-<a name="l00719"></a>00719 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,2,3&gt; E2 ## E0 ## E2 ## E3; }; \</span>
-<a name="l00720"></a>00720 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,3,0&gt; E2 ## E0 ## E3 ## E0; }; \</span>
-<a name="l00721"></a>00721 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,3,1&gt; E2 ## E0 ## E3 ## E1; }; \</span>
-<a name="l00722"></a>00722 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,3,2&gt; E2 ## E0 ## E3 ## E2; }; \</span>
-<a name="l00723"></a>00723 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,0,3,3&gt; E2 ## E0 ## E3 ## E3; }; \</span>
-<a name="l00724"></a>00724 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00725"></a>00725 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00726"></a>00726 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span>
-<a name="l00727"></a>00727 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,0,3&gt; E2 ## E1 ## E0 ## E3; }; \</span>
-<a name="l00728"></a>00728 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00729"></a>00729 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span>
-<a name="l00730"></a>00730 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span>
-<a name="l00731"></a>00731 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,1,3&gt; E2 ## E1 ## E1 ## E3; }; \</span>
-<a name="l00732"></a>00732 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span>
-<a name="l00733"></a>00733 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span>
-<a name="l00734"></a>00734 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span>
-<a name="l00735"></a>00735 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,2,3&gt; E2 ## E1 ## E2 ## E3; }; \</span>
-<a name="l00736"></a>00736 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,3,0&gt; E2 ## E1 ## E3 ## E0; }; \</span>
-<a name="l00737"></a>00737 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,3,1&gt; E2 ## E1 ## E3 ## E1; }; \</span>
-<a name="l00738"></a>00738 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,3,2&gt; E2 ## E1 ## E3 ## E2; }; \</span>
-<a name="l00739"></a>00739 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,1,3,3&gt; E2 ## E1 ## E3 ## E3; }; \</span>
-<a name="l00740"></a>00740 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span>
-<a name="l00741"></a>00741 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span>
-<a name="l00742"></a>00742 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span>
-<a name="l00743"></a>00743 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,0,3&gt; E2 ## E2 ## E0 ## E3; }; \</span>
-<a name="l00744"></a>00744 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span>
-<a name="l00745"></a>00745 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span>
-<a name="l00746"></a>00746 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span>
-<a name="l00747"></a>00747 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,1,3&gt; E2 ## E2 ## E1 ## E3; }; \</span>
-<a name="l00748"></a>00748 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span>
-<a name="l00749"></a>00749 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span>
-<a name="l00750"></a>00750 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; \</span>
-<a name="l00751"></a>00751 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,2,3&gt; E2 ## E2 ## E2 ## E3; }; \</span>
-<a name="l00752"></a>00752 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,3,0&gt; E2 ## E2 ## E3 ## E0; }; \</span>
-<a name="l00753"></a>00753 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,3,1&gt; E2 ## E2 ## E3 ## E1; }; \</span>
-<a name="l00754"></a>00754 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,3,2&gt; E2 ## E2 ## E3 ## E2; }; \</span>
-<a name="l00755"></a>00755 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,2,3,3&gt; E2 ## E2 ## E3 ## E3; }; \</span>
-<a name="l00756"></a>00756 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,0,0&gt; E2 ## E3 ## E0 ## E0; }; \</span>
-<a name="l00757"></a>00757 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,0,1&gt; E2 ## E3 ## E0 ## E1; }; \</span>
-<a name="l00758"></a>00758 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,0,2&gt; E2 ## E3 ## E0 ## E2; }; \</span>
-<a name="l00759"></a>00759 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,0,3&gt; E2 ## E3 ## E0 ## E3; }; \</span>
-<a name="l00760"></a>00760 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,1,0&gt; E2 ## E3 ## E1 ## E0; }; \</span>
-<a name="l00761"></a>00761 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,1,1&gt; E2 ## E3 ## E1 ## E1; }; \</span>
-<a name="l00762"></a>00762 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,1,2&gt; E2 ## E3 ## E1 ## E2; }; \</span>
-<a name="l00763"></a>00763 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,1,3&gt; E2 ## E3 ## E1 ## E3; }; \</span>
-<a name="l00764"></a>00764 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,2,0&gt; E2 ## E3 ## E2 ## E0; }; \</span>
-<a name="l00765"></a>00765 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,2,1&gt; E2 ## E3 ## E2 ## E1; }; \</span>
-<a name="l00766"></a>00766 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,2,2&gt; E2 ## E3 ## E2 ## E2; }; \</span>
-<a name="l00767"></a>00767 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,2,3&gt; E2 ## E3 ## E2 ## E3; }; \</span>
-<a name="l00768"></a>00768 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,3,0&gt; E2 ## E3 ## E3 ## E0; }; \</span>
-<a name="l00769"></a>00769 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,3,1&gt; E2 ## E3 ## E3 ## E1; }; \</span>
-<a name="l00770"></a>00770 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,3,2&gt; E2 ## E3 ## E3 ## E2; }; \</span>
-<a name="l00771"></a>00771 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,2,3,3,3&gt; E2 ## E3 ## E3 ## E3; }; \</span>
-<a name="l00772"></a>00772 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,0,0&gt; E3 ## E0 ## E0 ## E0; }; \</span>
-<a name="l00773"></a>00773 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,0,1&gt; E3 ## E0 ## E0 ## E1; }; \</span>
-<a name="l00774"></a>00774 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,0,2&gt; E3 ## E0 ## E0 ## E2; }; \</span>
-<a name="l00775"></a>00775 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,0,3&gt; E3 ## E0 ## E0 ## E3; }; \</span>
-<a name="l00776"></a>00776 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,1,0&gt; E3 ## E0 ## E1 ## E0; }; \</span>
-<a name="l00777"></a>00777 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,1,1&gt; E3 ## E0 ## E1 ## E1; }; \</span>
-<a name="l00778"></a>00778 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,1,2&gt; E3 ## E0 ## E1 ## E2; }; \</span>
-<a name="l00779"></a>00779 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,1,3&gt; E3 ## E0 ## E1 ## E3; }; \</span>
-<a name="l00780"></a>00780 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,2,0&gt; E3 ## E0 ## E2 ## E0; }; \</span>
-<a name="l00781"></a>00781 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,2,1&gt; E3 ## E0 ## E2 ## E1; }; \</span>
-<a name="l00782"></a>00782 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,2,2&gt; E3 ## E0 ## E2 ## E2; }; \</span>
-<a name="l00783"></a>00783 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,2,3&gt; E3 ## E0 ## E2 ## E3; }; \</span>
-<a name="l00784"></a>00784 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,3,0&gt; E3 ## E0 ## E3 ## E0; }; \</span>
-<a name="l00785"></a>00785 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,3,1&gt; E3 ## E0 ## E3 ## E1; }; \</span>
-<a name="l00786"></a>00786 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,3,2&gt; E3 ## E0 ## E3 ## E2; }; \</span>
-<a name="l00787"></a>00787 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,0,3,3&gt; E3 ## E0 ## E3 ## E3; }; \</span>
-<a name="l00788"></a>00788 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,0,0&gt; E3 ## E1 ## E0 ## E0; }; \</span>
-<a name="l00789"></a>00789 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,0,1&gt; E3 ## E1 ## E0 ## E1; }; \</span>
-<a name="l00790"></a>00790 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,0,2&gt; E3 ## E1 ## E0 ## E2; }; \</span>
-<a name="l00791"></a>00791 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,0,3&gt; E3 ## E1 ## E0 ## E3; }; \</span>
-<a name="l00792"></a>00792 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,1,0&gt; E3 ## E1 ## E1 ## E0; }; \</span>
-<a name="l00793"></a>00793 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,1,1&gt; E3 ## E1 ## E1 ## E1; }; \</span>
-<a name="l00794"></a>00794 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,1,2&gt; E3 ## E1 ## E1 ## E2; }; \</span>
-<a name="l00795"></a>00795 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,1,3&gt; E3 ## E1 ## E1 ## E3; }; \</span>
-<a name="l00796"></a>00796 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,2,0&gt; E3 ## E1 ## E2 ## E0; }; \</span>
-<a name="l00797"></a>00797 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,2,1&gt; E3 ## E1 ## E2 ## E1; }; \</span>
-<a name="l00798"></a>00798 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,2,2&gt; E3 ## E1 ## E2 ## E2; }; \</span>
-<a name="l00799"></a>00799 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,2,3&gt; E3 ## E1 ## E2 ## E3; }; \</span>
-<a name="l00800"></a>00800 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,3,0&gt; E3 ## E1 ## E3 ## E0; }; \</span>
-<a name="l00801"></a>00801 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,3,1&gt; E3 ## E1 ## E3 ## E1; }; \</span>
-<a name="l00802"></a>00802 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,3,2&gt; E3 ## E1 ## E3 ## E2; }; \</span>
-<a name="l00803"></a>00803 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,1,3,3&gt; E3 ## E1 ## E3 ## E3; }; \</span>
-<a name="l00804"></a>00804 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,0,0&gt; E3 ## E2 ## E0 ## E0; }; \</span>
-<a name="l00805"></a>00805 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,0,1&gt; E3 ## E2 ## E0 ## E1; }; \</span>
-<a name="l00806"></a>00806 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,0,2&gt; E3 ## E2 ## E0 ## E2; }; \</span>
-<a name="l00807"></a>00807 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,0,3&gt; E3 ## E2 ## E0 ## E3; }; \</span>
-<a name="l00808"></a>00808 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,1,0&gt; E3 ## E2 ## E1 ## E0; }; \</span>
-<a name="l00809"></a>00809 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,1,1&gt; E3 ## E2 ## E1 ## E1; }; \</span>
-<a name="l00810"></a>00810 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,1,2&gt; E3 ## E2 ## E1 ## E2; }; \</span>
-<a name="l00811"></a>00811 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,1,3&gt; E3 ## E2 ## E1 ## E3; }; \</span>
-<a name="l00812"></a>00812 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,2,0&gt; E3 ## E2 ## E2 ## E0; }; \</span>
-<a name="l00813"></a>00813 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,2,1&gt; E3 ## E2 ## E2 ## E1; }; \</span>
-<a name="l00814"></a>00814 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,2,2&gt; E3 ## E2 ## E2 ## E2; }; \</span>
-<a name="l00815"></a>00815 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,2,3&gt; E3 ## E2 ## E2 ## E3; }; \</span>
-<a name="l00816"></a>00816 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,3,0&gt; E3 ## E2 ## E3 ## E0; }; \</span>
-<a name="l00817"></a>00817 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,3,1&gt; E3 ## E2 ## E3 ## E1; }; \</span>
-<a name="l00818"></a>00818 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,3,2&gt; E3 ## E2 ## E3 ## E2; }; \</span>
-<a name="l00819"></a>00819 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,2,3,3&gt; E3 ## E2 ## E3 ## E3; }; \</span>
-<a name="l00820"></a>00820 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,0,0&gt; E3 ## E3 ## E0 ## E0; }; \</span>
-<a name="l00821"></a>00821 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,0,1&gt; E3 ## E3 ## E0 ## E1; }; \</span>
-<a name="l00822"></a>00822 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,0,2&gt; E3 ## E3 ## E0 ## E2; }; \</span>
-<a name="l00823"></a>00823 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,0,3&gt; E3 ## E3 ## E0 ## E3; }; \</span>
-<a name="l00824"></a>00824 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,1,0&gt; E3 ## E3 ## E1 ## E0; }; \</span>
-<a name="l00825"></a>00825 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,1,1&gt; E3 ## E3 ## E1 ## E1; }; \</span>
-<a name="l00826"></a>00826 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,1,2&gt; E3 ## E3 ## E1 ## E2; }; \</span>
-<a name="l00827"></a>00827 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,1,3&gt; E3 ## E3 ## E1 ## E3; }; \</span>
-<a name="l00828"></a>00828 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,2,0&gt; E3 ## E3 ## E2 ## E0; }; \</span>
-<a name="l00829"></a>00829 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,2,1&gt; E3 ## E3 ## E2 ## E1; }; \</span>
-<a name="l00830"></a>00830 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,2,2&gt; E3 ## E3 ## E2 ## E2; }; \</span>
-<a name="l00831"></a>00831 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,2,3&gt; E3 ## E3 ## E2 ## E3; }; \</span>
-<a name="l00832"></a>00832 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,3,0&gt; E3 ## E3 ## E3 ## E0; }; \</span>
-<a name="l00833"></a>00833 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,3,1&gt; E3 ## E3 ## E3 ## E1; }; \</span>
-<a name="l00834"></a>00834 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,3,2&gt; E3 ## E3 ## E3 ## E2; }; \</span>
-<a name="l00835"></a>00835 <span class="preprocessor">        struct { glm::detail::swizzle&lt;4,T,P,3,3,3,3&gt; E3 ## E3 ## E3 ## E3; }; </span>
-<a name="l00836"></a>00836 <span class="preprocessor"></span>
-<a name="l00837"></a>00837 <span class="preprocessor">#endif//glm_core_swizzle</span>
-</pre></div></div>
-</div>
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_extented_min_max</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_extented_min_max GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_extented_min_max extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
+<a name="l00054"></a>00054 
+<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00058"></a>00058         T <a class="code" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
+<a name="l00059"></a>00059                 T <span class="keyword">const</span> &amp; x, 
+<a name="l00060"></a>00060                 T <span class="keyword">const</span> &amp; y, 
+<a name="l00061"></a>00061                 T <span class="keyword">const</span> &amp; z);
+<a name="l00062"></a>00062 
+<a name="l00065"></a>00065         <span class="keyword">template</span> 
+<a name="l00066"></a>00066         &lt;
+<a name="l00067"></a>00067                 <span class="keyword">typename</span> T, 
+<a name="l00068"></a>00068                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
+<a name="l00069"></a>00069         &gt;
+<a name="l00070"></a>00070         C&lt;T&gt; <a class="code" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
+<a name="l00071"></a>00071                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00072"></a>00072                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y, 
+<a name="l00073"></a>00073                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z);
+<a name="l00074"></a>00074 
+<a name="l00077"></a>00077         <span class="keyword">template</span> 
+<a name="l00078"></a>00078         &lt;
+<a name="l00079"></a>00079                 <span class="keyword">typename</span> T, 
+<a name="l00080"></a>00080                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
+<a name="l00081"></a>00081         &gt;
+<a name="l00082"></a>00082         C&lt;T&gt; <a class="code" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
+<a name="l00083"></a>00083                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00084"></a>00084                 C&lt;T&gt; <span class="keyword">const</span> &amp; y, 
+<a name="l00085"></a>00085                 C&lt;T&gt; <span class="keyword">const</span> &amp; z);
+<a name="l00086"></a>00086 
+<a name="l00089"></a>00089         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00090"></a>00090         T <a class="code" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
+<a name="l00091"></a>00091                 T <span class="keyword">const</span> &amp; x, 
+<a name="l00092"></a>00092                 T <span class="keyword">const</span> &amp; y, 
+<a name="l00093"></a>00093                 T <span class="keyword">const</span> &amp; z, 
+<a name="l00094"></a>00094                 T <span class="keyword">const</span> &amp; w);
+<a name="l00095"></a>00095 
+<a name="l00098"></a>00098         <span class="keyword">template</span> 
+<a name="l00099"></a>00099         &lt;
+<a name="l00100"></a>00100                 <span class="keyword">typename</span> T, 
+<a name="l00101"></a>00101                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
+<a name="l00102"></a>00102         &gt;
+<a name="l00103"></a>00103         C&lt;T&gt; <a class="code" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
+<a name="l00104"></a>00104                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00105"></a>00105                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y, 
+<a name="l00106"></a>00106                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z, 
+<a name="l00107"></a>00107                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; w);
+<a name="l00108"></a>00108 
+<a name="l00111"></a>00111         <span class="keyword">template</span> 
+<a name="l00112"></a>00112         &lt;
+<a name="l00113"></a>00113                 <span class="keyword">typename</span> T, 
+<a name="l00114"></a>00114                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
+<a name="l00115"></a>00115         &gt;
+<a name="l00116"></a>00116         C&lt;T&gt; <a class="code" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
+<a name="l00117"></a>00117                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00118"></a>00118                 C&lt;T&gt; <span class="keyword">const</span> &amp; y, 
+<a name="l00119"></a>00119                 C&lt;T&gt; <span class="keyword">const</span> &amp; z,
+<a name="l00120"></a>00120                 C&lt;T&gt; <span class="keyword">const</span> &amp; w);
+<a name="l00121"></a>00121 
+<a name="l00124"></a>00124         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00125"></a>00125         T <a class="code" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
+<a name="l00126"></a>00126                 T <span class="keyword">const</span> &amp; x, 
+<a name="l00127"></a>00127                 T <span class="keyword">const</span> &amp; y, 
+<a name="l00128"></a>00128                 T <span class="keyword">const</span> &amp; z);
+<a name="l00129"></a>00129 
+<a name="l00132"></a>00132         <span class="keyword">template</span> 
+<a name="l00133"></a>00133         &lt;
+<a name="l00134"></a>00134                 <span class="keyword">typename</span> T, 
+<a name="l00135"></a>00135                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
+<a name="l00136"></a>00136         &gt;
+<a name="l00137"></a>00137         C&lt;T&gt; <a class="code" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
+<a name="l00138"></a>00138                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00139"></a>00139                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y, 
+<a name="l00140"></a>00140                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z);
+<a name="l00141"></a>00141 
+<a name="l00144"></a>00144         <span class="keyword">template</span> 
+<a name="l00145"></a>00145         &lt;
+<a name="l00146"></a>00146                 <span class="keyword">typename</span> T, 
+<a name="l00147"></a>00147                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
+<a name="l00148"></a>00148         &gt;
+<a name="l00149"></a>00149         C&lt;T&gt; <a class="code" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
+<a name="l00150"></a>00150                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00151"></a>00151                 C&lt;T&gt; <span class="keyword">const</span> &amp; y, 
+<a name="l00152"></a>00152                 C&lt;T&gt; <span class="keyword">const</span> &amp; z);
+<a name="l00153"></a>00153 
+<a name="l00156"></a>00156         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00157"></a>00157         T <a class="code" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
+<a name="l00158"></a>00158                 T <span class="keyword">const</span> &amp; x, 
+<a name="l00159"></a>00159                 T <span class="keyword">const</span> &amp; y, 
+<a name="l00160"></a>00160                 T <span class="keyword">const</span> &amp; z, 
+<a name="l00161"></a>00161                 T <span class="keyword">const</span> &amp; w);
+<a name="l00162"></a>00162 
+<a name="l00165"></a>00165         <span class="keyword">template</span> 
+<a name="l00166"></a>00166         &lt;
+<a name="l00167"></a>00167                 <span class="keyword">typename</span> T, 
+<a name="l00168"></a>00168                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
+<a name="l00169"></a>00169         &gt;
+<a name="l00170"></a>00170         C&lt;T&gt; <a class="code" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
+<a name="l00171"></a>00171                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00172"></a>00172                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y, 
+<a name="l00173"></a>00173                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z, 
+<a name="l00174"></a>00174                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; w);
+<a name="l00175"></a>00175 
+<a name="l00178"></a>00178         <span class="keyword">template</span> 
+<a name="l00179"></a>00179         &lt;
+<a name="l00180"></a>00180                 <span class="keyword">typename</span> T, 
+<a name="l00181"></a>00181                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
+<a name="l00182"></a>00182         &gt;
+<a name="l00183"></a>00183         C&lt;T&gt; <a class="code" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
+<a name="l00184"></a>00184                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00185"></a>00185                 C&lt;T&gt; <span class="keyword">const</span> &amp; y, 
+<a name="l00186"></a>00186                 C&lt;T&gt; <span class="keyword">const</span> &amp; z, 
+<a name="l00187"></a>00187                 C&lt;T&gt; <span class="keyword">const</span> &amp; w);
+<a name="l00188"></a>00188 
+<a name="l00190"></a>00190 }<span class="comment">//namespace glm</span>
+<a name="l00191"></a>00191 
+<a name="l00192"></a>00192 <span class="preprocessor">#include &quot;extented_min_max.inl&quot;</span>
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194 <span class="preprocessor">#endif//GLM_GTX_extented_min_max</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 15 - 11
doc/api-0.9.3/a00022.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_swizzle_func.hpp File Reference</title>
+<title>fast_exponential.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -49,28 +50,31 @@
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_swizzle_func.hpp File Reference</div>  </div>
-</div>
+<div class="title">fast_exponential.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00022_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2011-10-16 / 2011-10-16 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+<p><a class="el" href="a00165.html">GLM_GTX_fast_exponential: Fast exponentiation functions</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2006-01-09 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtx_half_float (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00022_source.html">_swizzle_func.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00022_source.html">fast_exponential.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 61 - 765
doc/api-0.9.3/a00022_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_swizzle_func.hpp Source File</title>
+<title>fast_exponential.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_swizzle_func.hpp</div>  </div>
-</div>
+<div class="title">fast_exponential.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00022.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,773 +81,67 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_core_swizzle_func</span>
-<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_swizzle_func</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span>
-<a name="l00032"></a>00032 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span>
-<a name="l00033"></a>00033 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; A ## B() CONST \</span>
-<a name="l00034"></a>00034 <span class="preprocessor">        { \</span>
-<a name="l00035"></a>00035 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B); \</span>
-<a name="l00036"></a>00036 <span class="preprocessor">        }</span>
-<a name="l00037"></a>00037 <span class="preprocessor"></span>
-<a name="l00038"></a>00038 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span>
-<a name="l00039"></a>00039 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; A ## B ## C() CONST \</span>
-<a name="l00040"></a>00040 <span class="preprocessor">        { \</span>
-<a name="l00041"></a>00041 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span>
-<a name="l00042"></a>00042 <span class="preprocessor">        }</span>
-<a name="l00043"></a>00043 <span class="preprocessor"></span>
-<a name="l00044"></a>00044 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span>
-<a name="l00045"></a>00045 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; A ## B ## C ## D() CONST \</span>
-<a name="l00046"></a>00046 <span class="preprocessor">        { \</span>
-<a name="l00047"></a>00047 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span>
-<a name="l00048"></a>00048 <span class="preprocessor">        }</span>
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_fast_exponential</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_fast_exponential GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_fast_exponential extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
 <a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span>
-<a name="l00051"></a>00051 <span class="preprocessor">        template &lt;typename TMPL_TYPE&gt; \</span>
-<a name="l00052"></a>00052 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE&gt;::A ## B() CONST \</span>
-<a name="l00053"></a>00053 <span class="preprocessor">        { \</span>
-<a name="l00054"></a>00054 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B); \</span>
-<a name="l00055"></a>00055 <span class="preprocessor">        }</span>
-<a name="l00056"></a>00056 <span class="preprocessor"></span>
-<a name="l00057"></a>00057 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span>
-<a name="l00058"></a>00058 <span class="preprocessor">        template &lt;typename TMPL_TYPE&gt; \</span>
-<a name="l00059"></a>00059 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE&gt;::A ## B ## C() CONST \</span>
-<a name="l00060"></a>00060 <span class="preprocessor">        { \</span>
-<a name="l00061"></a>00061 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span>
-<a name="l00062"></a>00062 <span class="preprocessor">        }</span>
-<a name="l00063"></a>00063 <span class="preprocessor"></span>
-<a name="l00064"></a>00064 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span>
-<a name="l00065"></a>00065 <span class="preprocessor">        template &lt;typename TMPL_TYPE&gt; \</span>
-<a name="l00066"></a>00066 <span class="preprocessor">        SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE&gt;::A ## B ## C ## D() CONST \</span>
-<a name="l00067"></a>00067 <span class="preprocessor">        { \</span>
-<a name="l00068"></a>00068 <span class="preprocessor">                return SWIZZLED_TYPE&lt;TMPL_TYPE&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span>
-<a name="l00069"></a>00069 <span class="preprocessor">        }</span>
-<a name="l00070"></a>00070 <span class="preprocessor"></span>
-<a name="l00071"></a>00071 <span class="preprocessor">#define GLM_MUTABLE</span>
-<a name="l00072"></a>00072 <span class="preprocessor"></span>
-<a name="l00073"></a>00073 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span>
-<a name="l00074"></a>00074 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span>
-<a name="l00075"></a>00075 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)</span>
-<a name="l00076"></a>00076 <span class="preprocessor"></span>
-<a name="l00077"></a>00077 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \</span>
-<a name="l00078"></a>00078 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \</span>
-<a name="l00079"></a>00079 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \</span>
-<a name="l00080"></a>00080 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)</span>
-<a name="l00081"></a>00081 <span class="preprocessor"></span>
-<a name="l00082"></a>00082 <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)</span>
-<a name="l00083"></a>00083 
-<a name="l00084"></a>00084 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
-<a name="l00085"></a>00085 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span>
-<a name="l00086"></a>00086 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span>
-<a name="l00087"></a>00087 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span>
-<a name="l00088"></a>00088 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span>
-<a name="l00089"></a>00089 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span>
-<a name="l00090"></a>00090 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)</span>
-<a name="l00091"></a>00091 <span class="preprocessor"></span>
-<a name="l00092"></a>00092 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
-<a name="l00093"></a>00093 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \</span>
-<a name="l00094"></a>00094 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \</span>
-<a name="l00095"></a>00095 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \</span>
-<a name="l00096"></a>00096 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \</span>
-<a name="l00097"></a>00097 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \</span>
-<a name="l00098"></a>00098 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)</span>
-<a name="l00099"></a>00099 <span class="preprocessor"></span>
-<a name="l00100"></a>00100 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span>
-<a name="l00101"></a>00101 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span>
-<a name="l00102"></a>00102 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)</span>
-<a name="l00103"></a>00103 <span class="preprocessor"></span>
-<a name="l00104"></a>00104 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \</span>
-<a name="l00105"></a>00105 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \</span>
-<a name="l00106"></a>00106 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \</span>
-<a name="l00107"></a>00107 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, q)</span>
-<a name="l00108"></a>00108 <span class="preprocessor"></span>
-<a name="l00109"></a>00109 <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)</span>
-<a name="l00110"></a>00110 
-<a name="l00111"></a>00111 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
-<a name="l00112"></a>00112 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span>
-<a name="l00113"></a>00113 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span>
-<a name="l00114"></a>00114 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \</span>
-<a name="l00115"></a>00115 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span>
-<a name="l00116"></a>00116 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span>
-<a name="l00117"></a>00117 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \</span>
-<a name="l00118"></a>00118 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span>
-<a name="l00119"></a>00119 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \</span>
-<a name="l00120"></a>00120 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \</span>
-<a name="l00121"></a>00121 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \</span>
-<a name="l00122"></a>00122 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \</span>
-<a name="l00123"></a>00123 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)</span>
-<a name="l00124"></a>00124 <span class="preprocessor"></span>
-<a name="l00125"></a>00125 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
-<a name="l00126"></a>00126 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \</span>
-<a name="l00127"></a>00127 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \</span>
-<a name="l00128"></a>00128 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \</span>
-<a name="l00129"></a>00129 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \</span>
-<a name="l00130"></a>00130 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \</span>
-<a name="l00131"></a>00131 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \</span>
-<a name="l00132"></a>00132 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \</span>
-<a name="l00133"></a>00133 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \</span>
-<a name="l00134"></a>00134 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \</span>
-<a name="l00135"></a>00135 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \</span>
-<a name="l00136"></a>00136 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \</span>
-<a name="l00137"></a>00137 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \</span>
-<a name="l00138"></a>00138 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \</span>
-<a name="l00139"></a>00139 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \</span>
-<a name="l00140"></a>00140 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \</span>
-<a name="l00141"></a>00141 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \</span>
-<a name="l00142"></a>00142 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \</span>
-<a name="l00143"></a>00143 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \</span>
-<a name="l00144"></a>00144 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \</span>
-<a name="l00145"></a>00145 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \</span>
-<a name="l00146"></a>00146 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \</span>
-<a name="l00147"></a>00147 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \</span>
-<a name="l00148"></a>00148 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \</span>
-<a name="l00149"></a>00149 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)</span>
-<a name="l00150"></a>00150 <span class="preprocessor"></span>
-<a name="l00151"></a>00151 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
-<a name="l00152"></a>00152 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \</span>
-<a name="l00153"></a>00153 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \</span>
-<a name="l00154"></a>00154 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \</span>
-<a name="l00155"></a>00155 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \</span>
-<a name="l00156"></a>00156 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \</span>
-<a name="l00157"></a>00157 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \</span>
-<a name="l00158"></a>00158 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \</span>
-<a name="l00159"></a>00159 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \</span>
-<a name="l00160"></a>00160 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \</span>
-<a name="l00161"></a>00161 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \</span>
-<a name="l00162"></a>00162 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \</span>
-<a name="l00163"></a>00163 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \</span>
-<a name="l00164"></a>00164 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \</span>
-<a name="l00165"></a>00165 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \</span>
-<a name="l00166"></a>00166 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \</span>
-<a name="l00167"></a>00167 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \</span>
-<a name="l00168"></a>00168 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \</span>
-<a name="l00169"></a>00169 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \</span>
-<a name="l00170"></a>00170 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \</span>
-<a name="l00171"></a>00171 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \</span>
-<a name="l00172"></a>00172 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \</span>
-<a name="l00173"></a>00173 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \</span>
-<a name="l00174"></a>00174 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \</span>
-<a name="l00175"></a>00175 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)</span>
-<a name="l00176"></a>00176 <span class="preprocessor"></span>
-<a name="l00177"></a>00177 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span>
-<a name="l00178"></a>00178 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span>
-<a name="l00179"></a>00179 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span>
-<a name="l00180"></a>00180 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span>
-<a name="l00181"></a>00181 <span class="preprocessor"></span>
-<a name="l00182"></a>00182 <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span>
-<a name="l00183"></a>00183 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span>
-<a name="l00184"></a>00184 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span>
-<a name="l00185"></a>00185 <span class="preprocessor">        GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q, p)</span>
-<a name="l00186"></a>00186 <span class="preprocessor"></span>
-<a name="l00187"></a>00187 <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)</span>
-<a name="l00188"></a>00188 
-<a name="l00189"></a>00189 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span>
-<a name="l00190"></a>00190 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span>
-<a name="l00191"></a>00191 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span>
-<a name="l00192"></a>00192 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span>
-<a name="l00193"></a>00193 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)</span>
-<a name="l00194"></a>00194 <span class="preprocessor"></span>
-<a name="l00195"></a>00195 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span>
-<a name="l00196"></a>00196 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span>
-<a name="l00197"></a>00197 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span>
-<a name="l00198"></a>00198 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span>
-<a name="l00199"></a>00199 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span>
-<a name="l00200"></a>00200 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span>
-<a name="l00201"></a>00201 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span>
-<a name="l00202"></a>00202 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span>
-<a name="l00203"></a>00203 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)</span>
-<a name="l00204"></a>00204 <span class="preprocessor"></span>
-<a name="l00205"></a>00205 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span>
-<a name="l00206"></a>00206 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span>
-<a name="l00207"></a>00207 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span>
-<a name="l00208"></a>00208 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span>
-<a name="l00209"></a>00209 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span>
-<a name="l00210"></a>00210 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span>
-<a name="l00211"></a>00211 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span>
-<a name="l00212"></a>00212 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span>
-<a name="l00213"></a>00213 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span>
-<a name="l00214"></a>00214 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span>
-<a name="l00215"></a>00215 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span>
-<a name="l00216"></a>00216 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span>
-<a name="l00217"></a>00217 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span>
-<a name="l00218"></a>00218 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span>
-<a name="l00219"></a>00219 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span>
-<a name="l00220"></a>00220 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span>
-<a name="l00221"></a>00221 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)</span>
-<a name="l00222"></a>00222 <span class="preprocessor"></span>
-<a name="l00223"></a>00223 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \</span>
-<a name="l00224"></a>00224 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \</span>
-<a name="l00225"></a>00225 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \</span>
-<a name="l00226"></a>00226 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)</span>
-<a name="l00227"></a>00227 <span class="preprocessor"></span>
-<a name="l00228"></a>00228 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span>
-<a name="l00229"></a>00229 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \</span>
-<a name="l00230"></a>00230 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \</span>
-<a name="l00231"></a>00231 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)</span>
-<a name="l00232"></a>00232 <span class="preprocessor"></span>
-<a name="l00233"></a>00233 <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)</span>
-<a name="l00234"></a>00234 
-<a name="l00235"></a>00235 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
-<a name="l00236"></a>00236 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span>
-<a name="l00237"></a>00237 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span>
-<a name="l00238"></a>00238 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span>
-<a name="l00239"></a>00239 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span>
-<a name="l00240"></a>00240 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span>
-<a name="l00241"></a>00241 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span>
-<a name="l00242"></a>00242 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span>
-<a name="l00243"></a>00243 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span>
-<a name="l00244"></a>00244 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)</span>
-<a name="l00245"></a>00245 <span class="preprocessor"></span>
-<a name="l00246"></a>00246 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
-<a name="l00247"></a>00247 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span>
-<a name="l00248"></a>00248 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span>
-<a name="l00249"></a>00249 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span>
-<a name="l00250"></a>00250 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span>
-<a name="l00251"></a>00251 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span>
-<a name="l00252"></a>00252 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span>
-<a name="l00253"></a>00253 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span>
-<a name="l00254"></a>00254 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span>
-<a name="l00255"></a>00255 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span>
-<a name="l00256"></a>00256 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span>
-<a name="l00257"></a>00257 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span>
-<a name="l00258"></a>00258 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span>
-<a name="l00259"></a>00259 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span>
-<a name="l00260"></a>00260 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span>
-<a name="l00261"></a>00261 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span>
-<a name="l00262"></a>00262 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span>
-<a name="l00263"></a>00263 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span>
-<a name="l00264"></a>00264 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span>
-<a name="l00265"></a>00265 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span>
-<a name="l00266"></a>00266 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span>
-<a name="l00267"></a>00267 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span>
-<a name="l00268"></a>00268 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span>
-<a name="l00269"></a>00269 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span>
-<a name="l00270"></a>00270 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span>
-<a name="l00271"></a>00271 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span>
-<a name="l00272"></a>00272 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span>
-<a name="l00273"></a>00273 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)</span>
-<a name="l00274"></a>00274 <span class="preprocessor"></span>
-<a name="l00275"></a>00275 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span>
-<a name="l00276"></a>00276 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span>
-<a name="l00277"></a>00277 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span>
-<a name="l00278"></a>00278 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span>
-<a name="l00279"></a>00279 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span>
-<a name="l00280"></a>00280 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span>
-<a name="l00281"></a>00281 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span>
-<a name="l00282"></a>00282 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span>
-<a name="l00283"></a>00283 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span>
-<a name="l00284"></a>00284 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span>
-<a name="l00285"></a>00285 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span>
-<a name="l00286"></a>00286 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span>
-<a name="l00287"></a>00287 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span>
-<a name="l00288"></a>00288 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span>
-<a name="l00289"></a>00289 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span>
-<a name="l00290"></a>00290 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span>
-<a name="l00291"></a>00291 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span>
-<a name="l00292"></a>00292 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span>
-<a name="l00293"></a>00293 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span>
-<a name="l00294"></a>00294 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span>
-<a name="l00295"></a>00295 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span>
-<a name="l00296"></a>00296 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span>
-<a name="l00297"></a>00297 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span>
-<a name="l00298"></a>00298 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span>
-<a name="l00299"></a>00299 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span>
-<a name="l00300"></a>00300 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span>
-<a name="l00301"></a>00301 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span>
-<a name="l00302"></a>00302 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span>
-<a name="l00303"></a>00303 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span>
-<a name="l00304"></a>00304 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span>
-<a name="l00305"></a>00305 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span>
-<a name="l00306"></a>00306 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span>
-<a name="l00307"></a>00307 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span>
-<a name="l00308"></a>00308 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span>
-<a name="l00309"></a>00309 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span>
-<a name="l00310"></a>00310 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span>
-<a name="l00311"></a>00311 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span>
-<a name="l00312"></a>00312 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span>
-<a name="l00313"></a>00313 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span>
-<a name="l00314"></a>00314 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span>
-<a name="l00315"></a>00315 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span>
-<a name="l00316"></a>00316 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span>
-<a name="l00317"></a>00317 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span>
-<a name="l00318"></a>00318 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span>
-<a name="l00319"></a>00319 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span>
-<a name="l00320"></a>00320 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span>
-<a name="l00321"></a>00321 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span>
-<a name="l00322"></a>00322 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span>
-<a name="l00323"></a>00323 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span>
-<a name="l00324"></a>00324 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span>
-<a name="l00325"></a>00325 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span>
-<a name="l00326"></a>00326 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span>
-<a name="l00327"></a>00327 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span>
-<a name="l00328"></a>00328 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span>
-<a name="l00329"></a>00329 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span>
-<a name="l00330"></a>00330 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span>
-<a name="l00331"></a>00331 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span>
-<a name="l00332"></a>00332 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span>
-<a name="l00333"></a>00333 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span>
-<a name="l00334"></a>00334 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span>
-<a name="l00335"></a>00335 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span>
-<a name="l00336"></a>00336 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span>
-<a name="l00337"></a>00337 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span>
-<a name="l00338"></a>00338 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span>
-<a name="l00339"></a>00339 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span>
-<a name="l00340"></a>00340 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span>
-<a name="l00341"></a>00341 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span>
-<a name="l00342"></a>00342 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span>
-<a name="l00343"></a>00343 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span>
-<a name="l00344"></a>00344 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span>
-<a name="l00345"></a>00345 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span>
-<a name="l00346"></a>00346 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span>
-<a name="l00347"></a>00347 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span>
-<a name="l00348"></a>00348 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span>
-<a name="l00349"></a>00349 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span>
-<a name="l00350"></a>00350 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span>
-<a name="l00351"></a>00351 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span>
-<a name="l00352"></a>00352 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span>
-<a name="l00353"></a>00353 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span>
-<a name="l00354"></a>00354 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span>
-<a name="l00355"></a>00355 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span>
-<a name="l00356"></a>00356 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span>
-<a name="l00357"></a>00357 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span>
-<a name="l00358"></a>00358 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span>
-<a name="l00359"></a>00359 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span>
-<a name="l00360"></a>00360 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span>
-<a name="l00361"></a>00361 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span>
-<a name="l00362"></a>00362 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span>
-<a name="l00363"></a>00363 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span>
-<a name="l00364"></a>00364 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span>
-<a name="l00365"></a>00365 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span>
-<a name="l00366"></a>00366 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span>
-<a name="l00367"></a>00367 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span>
-<a name="l00368"></a>00368 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span>
-<a name="l00369"></a>00369 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span>
-<a name="l00370"></a>00370 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span>
-<a name="l00371"></a>00371 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span>
-<a name="l00372"></a>00372 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span>
-<a name="l00373"></a>00373 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span>
-<a name="l00374"></a>00374 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span>
-<a name="l00375"></a>00375 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span>
-<a name="l00376"></a>00376 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span>
-<a name="l00377"></a>00377 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span>
-<a name="l00378"></a>00378 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span>
-<a name="l00379"></a>00379 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span>
-<a name="l00380"></a>00380 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span>
-<a name="l00381"></a>00381 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span>
-<a name="l00382"></a>00382 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span>
-<a name="l00383"></a>00383 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span>
-<a name="l00384"></a>00384 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span>
-<a name="l00385"></a>00385 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span>
-<a name="l00386"></a>00386 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span>
-<a name="l00387"></a>00387 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span>
-<a name="l00388"></a>00388 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span>
-<a name="l00389"></a>00389 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span>
-<a name="l00390"></a>00390 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span>
-<a name="l00391"></a>00391 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span>
-<a name="l00392"></a>00392 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span>
-<a name="l00393"></a>00393 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span>
-<a name="l00394"></a>00394 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span>
-<a name="l00395"></a>00395 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span>
-<a name="l00396"></a>00396 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span>
-<a name="l00397"></a>00397 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span>
-<a name="l00398"></a>00398 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span>
-<a name="l00399"></a>00399 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span>
-<a name="l00400"></a>00400 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span>
-<a name="l00401"></a>00401 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span>
-<a name="l00402"></a>00402 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span>
-<a name="l00403"></a>00403 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span>
-<a name="l00404"></a>00404 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span>
-<a name="l00405"></a>00405 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span>
-<a name="l00406"></a>00406 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span>
-<a name="l00407"></a>00407 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span>
-<a name="l00408"></a>00408 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span>
-<a name="l00409"></a>00409 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span>
-<a name="l00410"></a>00410 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span>
-<a name="l00411"></a>00411 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span>
-<a name="l00412"></a>00412 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span>
-<a name="l00413"></a>00413 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span>
-<a name="l00414"></a>00414 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span>
-<a name="l00415"></a>00415 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span>
-<a name="l00416"></a>00416 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span>
-<a name="l00417"></a>00417 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span>
-<a name="l00418"></a>00418 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span>
-<a name="l00419"></a>00419 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C)</span>
-<a name="l00420"></a>00420 <span class="preprocessor"></span>
-<a name="l00421"></a>00421 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \</span>
-<a name="l00422"></a>00422 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \</span>
-<a name="l00423"></a>00423 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span>
-<a name="l00424"></a>00424 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)</span>
-<a name="l00425"></a>00425 <span class="preprocessor"></span>
-<a name="l00426"></a>00426 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span>
-<a name="l00427"></a>00427 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \</span>
-<a name="l00428"></a>00428 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \</span>
-<a name="l00429"></a>00429 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q)</span>
-<a name="l00430"></a>00430 <span class="preprocessor"></span>
-<a name="l00431"></a>00431 <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)</span>
-<a name="l00432"></a>00432 
-<a name="l00433"></a>00433 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
-<a name="l00434"></a>00434 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span>
-<a name="l00435"></a>00435 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span>
-<a name="l00436"></a>00436 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span>
-<a name="l00437"></a>00437 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \</span>
-<a name="l00438"></a>00438 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span>
-<a name="l00439"></a>00439 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span>
-<a name="l00440"></a>00440 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span>
-<a name="l00441"></a>00441 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \</span>
-<a name="l00442"></a>00442 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span>
-<a name="l00443"></a>00443 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span>
-<a name="l00444"></a>00444 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \</span>
-<a name="l00445"></a>00445 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \</span>
-<a name="l00446"></a>00446 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \</span>
-<a name="l00447"></a>00447 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \</span>
-<a name="l00448"></a>00448 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \</span>
-<a name="l00449"></a>00449 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)</span>
-<a name="l00450"></a>00450 <span class="preprocessor"></span>
-<a name="l00451"></a>00451 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
-<a name="l00452"></a>00452 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span>
-<a name="l00453"></a>00453 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span>
-<a name="l00454"></a>00454 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span>
-<a name="l00455"></a>00455 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \</span>
-<a name="l00456"></a>00456 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span>
-<a name="l00457"></a>00457 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span>
-<a name="l00458"></a>00458 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span>
-<a name="l00459"></a>00459 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \</span>
-<a name="l00460"></a>00460 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span>
-<a name="l00461"></a>00461 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span>
-<a name="l00462"></a>00462 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span>
-<a name="l00463"></a>00463 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \</span>
-<a name="l00464"></a>00464 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \</span>
-<a name="l00465"></a>00465 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \</span>
-<a name="l00466"></a>00466 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \</span>
-<a name="l00467"></a>00467 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \</span>
-<a name="l00468"></a>00468 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span>
-<a name="l00469"></a>00469 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span>
-<a name="l00470"></a>00470 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span>
-<a name="l00471"></a>00471 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \</span>
-<a name="l00472"></a>00472 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span>
-<a name="l00473"></a>00473 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span>
-<a name="l00474"></a>00474 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span>
-<a name="l00475"></a>00475 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \</span>
-<a name="l00476"></a>00476 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span>
-<a name="l00477"></a>00477 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span>
-<a name="l00478"></a>00478 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span>
-<a name="l00479"></a>00479 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \</span>
-<a name="l00480"></a>00480 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \</span>
-<a name="l00481"></a>00481 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \</span>
-<a name="l00482"></a>00482 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \</span>
-<a name="l00483"></a>00483 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \</span>
-<a name="l00484"></a>00484 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span>
-<a name="l00485"></a>00485 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span>
-<a name="l00486"></a>00486 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span>
-<a name="l00487"></a>00487 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \</span>
-<a name="l00488"></a>00488 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span>
-<a name="l00489"></a>00489 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span>
-<a name="l00490"></a>00490 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span>
-<a name="l00491"></a>00491 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \</span>
-<a name="l00492"></a>00492 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span>
-<a name="l00493"></a>00493 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span>
-<a name="l00494"></a>00494 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \</span>
-<a name="l00495"></a>00495 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \</span>
-<a name="l00496"></a>00496 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \</span>
-<a name="l00497"></a>00497 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \</span>
-<a name="l00498"></a>00498 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \</span>
-<a name="l00499"></a>00499 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \</span>
-<a name="l00500"></a>00500 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \</span>
-<a name="l00501"></a>00501 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \</span>
-<a name="l00502"></a>00502 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \</span>
-<a name="l00503"></a>00503 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \</span>
-<a name="l00504"></a>00504 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \</span>
-<a name="l00505"></a>00505 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \</span>
-<a name="l00506"></a>00506 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \</span>
-<a name="l00507"></a>00507 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \</span>
-<a name="l00508"></a>00508 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \</span>
-<a name="l00509"></a>00509 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \</span>
-<a name="l00510"></a>00510 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \</span>
-<a name="l00511"></a>00511 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \</span>
-<a name="l00512"></a>00512 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \</span>
-<a name="l00513"></a>00513 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \</span>
-<a name="l00514"></a>00514 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \</span>
-<a name="l00515"></a>00515 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)</span>
-<a name="l00516"></a>00516 <span class="preprocessor"></span>
-<a name="l00517"></a>00517 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span>
-<a name="l00518"></a>00518 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span>
-<a name="l00519"></a>00519 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span>
-<a name="l00520"></a>00520 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span>
-<a name="l00521"></a>00521 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \</span>
-<a name="l00522"></a>00522 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span>
-<a name="l00523"></a>00523 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span>
-<a name="l00524"></a>00524 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span>
-<a name="l00525"></a>00525 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \</span>
-<a name="l00526"></a>00526 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span>
-<a name="l00527"></a>00527 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span>
-<a name="l00528"></a>00528 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span>
-<a name="l00529"></a>00529 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \</span>
-<a name="l00530"></a>00530 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \</span>
-<a name="l00531"></a>00531 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \</span>
-<a name="l00532"></a>00532 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \</span>
-<a name="l00533"></a>00533 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \</span>
-<a name="l00534"></a>00534 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span>
-<a name="l00535"></a>00535 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span>
-<a name="l00536"></a>00536 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span>
-<a name="l00537"></a>00537 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \</span>
-<a name="l00538"></a>00538 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span>
-<a name="l00539"></a>00539 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span>
-<a name="l00540"></a>00540 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span>
-<a name="l00541"></a>00541 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \</span>
-<a name="l00542"></a>00542 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span>
-<a name="l00543"></a>00543 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span>
-<a name="l00544"></a>00544 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span>
-<a name="l00545"></a>00545 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \</span>
-<a name="l00546"></a>00546 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \</span>
-<a name="l00547"></a>00547 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \</span>
-<a name="l00548"></a>00548 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \</span>
-<a name="l00549"></a>00549 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \</span>
-<a name="l00550"></a>00550 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span>
-<a name="l00551"></a>00551 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span>
-<a name="l00552"></a>00552 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span>
-<a name="l00553"></a>00553 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \</span>
-<a name="l00554"></a>00554 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span>
-<a name="l00555"></a>00555 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span>
-<a name="l00556"></a>00556 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span>
-<a name="l00557"></a>00557 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \</span>
-<a name="l00558"></a>00558 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span>
-<a name="l00559"></a>00559 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span>
-<a name="l00560"></a>00560 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span>
-<a name="l00561"></a>00561 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \</span>
-<a name="l00562"></a>00562 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \</span>
-<a name="l00563"></a>00563 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \</span>
-<a name="l00564"></a>00564 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \</span>
-<a name="l00565"></a>00565 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \</span>
-<a name="l00566"></a>00566 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span>
-<a name="l00567"></a>00567 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span>
-<a name="l00568"></a>00568 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span>
-<a name="l00569"></a>00569 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \</span>
-<a name="l00570"></a>00570 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span>
-<a name="l00571"></a>00571 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span>
-<a name="l00572"></a>00572 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span>
-<a name="l00573"></a>00573 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \</span>
-<a name="l00574"></a>00574 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span>
-<a name="l00575"></a>00575 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span>
-<a name="l00576"></a>00576 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span>
-<a name="l00577"></a>00577 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \</span>
-<a name="l00578"></a>00578 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \</span>
-<a name="l00579"></a>00579 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \</span>
-<a name="l00580"></a>00580 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \</span>
-<a name="l00581"></a>00581 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \</span>
-<a name="l00582"></a>00582 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span>
-<a name="l00583"></a>00583 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span>
-<a name="l00584"></a>00584 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span>
-<a name="l00585"></a>00585 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \</span>
-<a name="l00586"></a>00586 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span>
-<a name="l00587"></a>00587 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span>
-<a name="l00588"></a>00588 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span>
-<a name="l00589"></a>00589 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \</span>
-<a name="l00590"></a>00590 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span>
-<a name="l00591"></a>00591 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span>
-<a name="l00592"></a>00592 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span>
-<a name="l00593"></a>00593 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \</span>
-<a name="l00594"></a>00594 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \</span>
-<a name="l00595"></a>00595 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \</span>
-<a name="l00596"></a>00596 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \</span>
-<a name="l00597"></a>00597 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \</span>
-<a name="l00598"></a>00598 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span>
-<a name="l00599"></a>00599 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span>
-<a name="l00600"></a>00600 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span>
-<a name="l00601"></a>00601 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \</span>
-<a name="l00602"></a>00602 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span>
-<a name="l00603"></a>00603 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span>
-<a name="l00604"></a>00604 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span>
-<a name="l00605"></a>00605 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \</span>
-<a name="l00606"></a>00606 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span>
-<a name="l00607"></a>00607 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span>
-<a name="l00608"></a>00608 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span>
-<a name="l00609"></a>00609 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \</span>
-<a name="l00610"></a>00610 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \</span>
-<a name="l00611"></a>00611 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \</span>
-<a name="l00612"></a>00612 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \</span>
-<a name="l00613"></a>00613 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \</span>
-<a name="l00614"></a>00614 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span>
-<a name="l00615"></a>00615 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span>
-<a name="l00616"></a>00616 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span>
-<a name="l00617"></a>00617 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \</span>
-<a name="l00618"></a>00618 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span>
-<a name="l00619"></a>00619 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span>
-<a name="l00620"></a>00620 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span>
-<a name="l00621"></a>00621 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \</span>
-<a name="l00622"></a>00622 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span>
-<a name="l00623"></a>00623 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span>
-<a name="l00624"></a>00624 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span>
-<a name="l00625"></a>00625 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \</span>
-<a name="l00626"></a>00626 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \</span>
-<a name="l00627"></a>00627 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \</span>
-<a name="l00628"></a>00628 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \</span>
-<a name="l00629"></a>00629 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \</span>
-<a name="l00630"></a>00630 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span>
-<a name="l00631"></a>00631 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span>
-<a name="l00632"></a>00632 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span>
-<a name="l00633"></a>00633 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \</span>
-<a name="l00634"></a>00634 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span>
-<a name="l00635"></a>00635 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span>
-<a name="l00636"></a>00636 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span>
-<a name="l00637"></a>00637 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \</span>
-<a name="l00638"></a>00638 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span>
-<a name="l00639"></a>00639 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span>
-<a name="l00640"></a>00640 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span>
-<a name="l00641"></a>00641 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \</span>
-<a name="l00642"></a>00642 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \</span>
-<a name="l00643"></a>00643 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \</span>
-<a name="l00644"></a>00644 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \</span>
-<a name="l00645"></a>00645 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \</span>
-<a name="l00646"></a>00646 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span>
-<a name="l00647"></a>00647 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span>
-<a name="l00648"></a>00648 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span>
-<a name="l00649"></a>00649 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \</span>
-<a name="l00650"></a>00650 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span>
-<a name="l00651"></a>00651 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span>
-<a name="l00652"></a>00652 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span>
-<a name="l00653"></a>00653 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \</span>
-<a name="l00654"></a>00654 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span>
-<a name="l00655"></a>00655 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span>
-<a name="l00656"></a>00656 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span>
-<a name="l00657"></a>00657 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \</span>
-<a name="l00658"></a>00658 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \</span>
-<a name="l00659"></a>00659 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \</span>
-<a name="l00660"></a>00660 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \</span>
-<a name="l00661"></a>00661 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \</span>
-<a name="l00662"></a>00662 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span>
-<a name="l00663"></a>00663 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span>
-<a name="l00664"></a>00664 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span>
-<a name="l00665"></a>00665 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \</span>
-<a name="l00666"></a>00666 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span>
-<a name="l00667"></a>00667 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span>
-<a name="l00668"></a>00668 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span>
-<a name="l00669"></a>00669 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \</span>
-<a name="l00670"></a>00670 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span>
-<a name="l00671"></a>00671 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span>
-<a name="l00672"></a>00672 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span>
-<a name="l00673"></a>00673 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \</span>
-<a name="l00674"></a>00674 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \</span>
-<a name="l00675"></a>00675 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \</span>
-<a name="l00676"></a>00676 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \</span>
-<a name="l00677"></a>00677 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \</span>
-<a name="l00678"></a>00678 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span>
-<a name="l00679"></a>00679 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span>
-<a name="l00680"></a>00680 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span>
-<a name="l00681"></a>00681 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \</span>
-<a name="l00682"></a>00682 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span>
-<a name="l00683"></a>00683 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span>
-<a name="l00684"></a>00684 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span>
-<a name="l00685"></a>00685 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \</span>
-<a name="l00686"></a>00686 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span>
-<a name="l00687"></a>00687 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span>
-<a name="l00688"></a>00688 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span>
-<a name="l00689"></a>00689 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \</span>
-<a name="l00690"></a>00690 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \</span>
-<a name="l00691"></a>00691 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \</span>
-<a name="l00692"></a>00692 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \</span>
-<a name="l00693"></a>00693 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \</span>
-<a name="l00694"></a>00694 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span>
-<a name="l00695"></a>00695 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span>
-<a name="l00696"></a>00696 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span>
-<a name="l00697"></a>00697 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \</span>
-<a name="l00698"></a>00698 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span>
-<a name="l00699"></a>00699 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span>
-<a name="l00700"></a>00700 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span>
-<a name="l00701"></a>00701 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \</span>
-<a name="l00702"></a>00702 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span>
-<a name="l00703"></a>00703 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span>
-<a name="l00704"></a>00704 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span>
-<a name="l00705"></a>00705 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \</span>
-<a name="l00706"></a>00706 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \</span>
-<a name="l00707"></a>00707 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \</span>
-<a name="l00708"></a>00708 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \</span>
-<a name="l00709"></a>00709 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \</span>
-<a name="l00710"></a>00710 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span>
-<a name="l00711"></a>00711 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span>
-<a name="l00712"></a>00712 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span>
-<a name="l00713"></a>00713 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \</span>
-<a name="l00714"></a>00714 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span>
-<a name="l00715"></a>00715 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span>
-<a name="l00716"></a>00716 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span>
-<a name="l00717"></a>00717 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \</span>
-<a name="l00718"></a>00718 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span>
-<a name="l00719"></a>00719 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span>
-<a name="l00720"></a>00720 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span>
-<a name="l00721"></a>00721 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \</span>
-<a name="l00722"></a>00722 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \</span>
-<a name="l00723"></a>00723 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \</span>
-<a name="l00724"></a>00724 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \</span>
-<a name="l00725"></a>00725 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \</span>
-<a name="l00726"></a>00726 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span>
-<a name="l00727"></a>00727 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span>
-<a name="l00728"></a>00728 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span>
-<a name="l00729"></a>00729 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \</span>
-<a name="l00730"></a>00730 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span>
-<a name="l00731"></a>00731 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span>
-<a name="l00732"></a>00732 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span>
-<a name="l00733"></a>00733 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \</span>
-<a name="l00734"></a>00734 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span>
-<a name="l00735"></a>00735 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span>
-<a name="l00736"></a>00736 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span>
-<a name="l00737"></a>00737 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \</span>
-<a name="l00738"></a>00738 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \</span>
-<a name="l00739"></a>00739 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \</span>
-<a name="l00740"></a>00740 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \</span>
-<a name="l00741"></a>00741 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \</span>
-<a name="l00742"></a>00742 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span>
-<a name="l00743"></a>00743 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span>
-<a name="l00744"></a>00744 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span>
-<a name="l00745"></a>00745 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \</span>
-<a name="l00746"></a>00746 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span>
-<a name="l00747"></a>00747 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span>
-<a name="l00748"></a>00748 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span>
-<a name="l00749"></a>00749 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \</span>
-<a name="l00750"></a>00750 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span>
-<a name="l00751"></a>00751 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span>
-<a name="l00752"></a>00752 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span>
-<a name="l00753"></a>00753 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \</span>
-<a name="l00754"></a>00754 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \</span>
-<a name="l00755"></a>00755 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \</span>
-<a name="l00756"></a>00756 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \</span>
-<a name="l00757"></a>00757 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \</span>
-<a name="l00758"></a>00758 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span>
-<a name="l00759"></a>00759 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span>
-<a name="l00760"></a>00760 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span>
-<a name="l00761"></a>00761 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \</span>
-<a name="l00762"></a>00762 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span>
-<a name="l00763"></a>00763 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span>
-<a name="l00764"></a>00764 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span>
-<a name="l00765"></a>00765 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \</span>
-<a name="l00766"></a>00766 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span>
-<a name="l00767"></a>00767 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span>
-<a name="l00768"></a>00768 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \</span>
-<a name="l00769"></a>00769 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \</span>
-<a name="l00770"></a>00770 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \</span>
-<a name="l00771"></a>00771 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \</span>
-<a name="l00772"></a>00772 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \</span>
-<a name="l00773"></a>00773 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)</span>
-<a name="l00774"></a>00774 <span class="preprocessor"></span>
-<a name="l00775"></a>00775 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span>
-<a name="l00776"></a>00776 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span>
-<a name="l00777"></a>00777 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span>
-<a name="l00778"></a>00778 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span>
-<a name="l00779"></a>00779 <span class="preprocessor"></span>
-<a name="l00780"></a>00780 <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span>
-<a name="l00781"></a>00781 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span>
-<a name="l00782"></a>00782 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span>
-<a name="l00783"></a>00783 <span class="preprocessor">        GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q, p)</span>
-<a name="l00784"></a>00784 <span class="preprocessor"></span>
-<a name="l00785"></a>00785 <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)</span>
-<a name="l00786"></a>00786 
-<a name="l00787"></a>00787 <span class="preprocessor">#endif//glm_core_swizzle_func</span>
-</pre></div></div>
-</div>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
+<a name="l00054"></a>00054 
+<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00058"></a>00058         genType fastPow(
+<a name="l00059"></a>00059                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00060"></a>00060                 genType <span class="keyword">const</span> &amp; y);
+<a name="l00061"></a>00061 
+<a name="l00064"></a>00064         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt; 
+<a name="l00065"></a>00065         genTypeT fastPow(
+<a name="l00066"></a>00066                 genTypeT <span class="keyword">const</span> &amp; x, 
+<a name="l00067"></a>00067                 genTypeU <span class="keyword">const</span> &amp; y);
+<a name="l00068"></a>00068                 
+<a name="l00071"></a>00071         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00072"></a>00072         T fastExp(<span class="keyword">const</span> T&amp; x);
+<a name="l00073"></a>00073                 
+<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00077"></a>00077         T fastLog(<span class="keyword">const</span> T&amp; x);
+<a name="l00078"></a>00078 
+<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00082"></a>00082         T fastExp2(<span class="keyword">const</span> T&amp; x);
+<a name="l00083"></a>00083                 
+<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00087"></a>00087         T fastLog2(<span class="keyword">const</span> T&amp; x);
+<a name="l00088"></a>00088 
+<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00092"></a>00092         T fastLn(<span class="keyword">const</span> T&amp; x);
+<a name="l00093"></a>00093 
+<a name="l00095"></a>00095 }<span class="comment">//namespace glm</span>
+<a name="l00096"></a>00096 
+<a name="l00097"></a>00097 <span class="preprocessor">#include &quot;fast_exponential.inl&quot;</span>
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099 <span class="preprocessor">#endif//GLM_GTX_fast_exponential</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 13 - 11
doc/api-0.9.3/a00023.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_vectorize.hpp File Reference</title>
+<title>fast_square_root.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -49,28 +50,29 @@
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_vectorize.hpp File Reference</div>  </div>
-</div>
+<div class="title">fast_square_root.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00023_source.html">Go to the source code of this file.</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2011-10-14 / 2011-10-14 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
+<p><a class="el" href="a00166.html">GLM_GTX_fast_square_root: Fast square root functions</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2006-01-04 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00023_source.html">_vectorize.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00023_source.html">fast_square_root.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 51 - 137
doc/api-0.9.3/a00023_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>_vectorize.hpp Source File</title>
+<title>fast_square_root.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">_vectorize.hpp</div>  </div>
-</div>
+<div class="title">fast_square_root.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00023.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,145 +81,57 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 <span class="preprocessor">#define VECTORIZE2_VEC(func) \</span>
-<a name="l00030"></a>00030 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00031"></a>00031 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; func( \</span>
-<a name="l00032"></a>00032 <span class="preprocessor">                detail::tvec2&lt;T&gt; const &amp; v) \</span>
-<a name="l00033"></a>00033 <span class="preprocessor">    { \</span>
-<a name="l00034"></a>00034 <span class="preprocessor">        return detail::tvec2&lt;T&gt;( \</span>
-<a name="l00035"></a>00035 <span class="preprocessor">            func(v.x), \</span>
-<a name="l00036"></a>00036 <span class="preprocessor">            func(v.y)); \</span>
-<a name="l00037"></a>00037 <span class="preprocessor">    }</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span>
-<a name="l00039"></a>00039 <span class="preprocessor">#define VECTORIZE3_VEC(func) \</span>
-<a name="l00040"></a>00040 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00041"></a>00041 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; func( \</span>
-<a name="l00042"></a>00042 <span class="preprocessor">                detail::tvec3&lt;T&gt; const &amp; v) \</span>
-<a name="l00043"></a>00043 <span class="preprocessor">    { \</span>
-<a name="l00044"></a>00044 <span class="preprocessor">        return detail::tvec3&lt;T&gt;( \</span>
-<a name="l00045"></a>00045 <span class="preprocessor">            func(v.x), \</span>
-<a name="l00046"></a>00046 <span class="preprocessor">            func(v.y), \</span>
-<a name="l00047"></a>00047 <span class="preprocessor">            func(v.z)); \</span>
-<a name="l00048"></a>00048 <span class="preprocessor">    }</span>
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="preprocessor">#ifndef GLM_GTX_fast_square_root</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_fast_square_root GLM_VERSION</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span>
+<a name="l00043"></a>00043 <span class="comment">// Dependency:</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_fast_square_root extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
 <a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="preprocessor">#define VECTORIZE4_VEC(func) \</span>
-<a name="l00051"></a>00051 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00052"></a>00052 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; func( \</span>
-<a name="l00053"></a>00053 <span class="preprocessor">                detail::tvec4&lt;T&gt; const &amp; v) \</span>
-<a name="l00054"></a>00054 <span class="preprocessor">    { \</span>
-<a name="l00055"></a>00055 <span class="preprocessor">        return detail::tvec4&lt;T&gt;( \</span>
-<a name="l00056"></a>00056 <span class="preprocessor">            func(v.x), \</span>
-<a name="l00057"></a>00057 <span class="preprocessor">            func(v.y), \</span>
-<a name="l00058"></a>00058 <span class="preprocessor">            func(v.z), \</span>
-<a name="l00059"></a>00059 <span class="preprocessor">            func(v.w)); \</span>
-<a name="l00060"></a>00060 <span class="preprocessor">    }</span>
-<a name="l00061"></a>00061 <span class="preprocessor"></span>
-<a name="l00062"></a>00062 <span class="preprocessor">#define VECTORIZE_VEC(func) \</span>
-<a name="l00063"></a>00063 <span class="preprocessor">        VECTORIZE2_VEC(func) \</span>
-<a name="l00064"></a>00064 <span class="preprocessor">        VECTORIZE3_VEC(func) \</span>
-<a name="l00065"></a>00065 <span class="preprocessor">        VECTORIZE4_VEC(func)</span>
-<a name="l00066"></a>00066 <span class="preprocessor"></span>
-<a name="l00067"></a>00067 <span class="preprocessor">#define VECTORIZE2_VEC_SCA(func) \</span>
-<a name="l00068"></a>00068 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00069"></a>00069 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; func \</span>
-<a name="l00070"></a>00070 <span class="preprocessor">        ( \</span>
-<a name="l00071"></a>00071 <span class="preprocessor">                detail::tvec2&lt;T&gt; const &amp; x,  \</span>
-<a name="l00072"></a>00072 <span class="preprocessor">                typename detail::tvec2&lt;T&gt;::value_type const &amp; y \</span>
-<a name="l00073"></a>00073 <span class="preprocessor">        ) \</span>
-<a name="l00074"></a>00074 <span class="preprocessor">    { \</span>
-<a name="l00075"></a>00075 <span class="preprocessor">        return detail::tvec2&lt;T&gt;( \</span>
-<a name="l00076"></a>00076 <span class="preprocessor">            func(x.x, y), \</span>
-<a name="l00077"></a>00077 <span class="preprocessor">            func(x.y, y)); \</span>
-<a name="l00078"></a>00078 <span class="preprocessor">    }</span>
-<a name="l00079"></a>00079 <span class="preprocessor"></span>
-<a name="l00080"></a>00080 <span class="preprocessor">#define VECTORIZE3_VEC_SCA(func) \</span>
-<a name="l00081"></a>00081 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00082"></a>00082 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; func \</span>
-<a name="l00083"></a>00083 <span class="preprocessor">        ( \</span>
-<a name="l00084"></a>00084 <span class="preprocessor">                detail::tvec3&lt;T&gt; const &amp; x,  \</span>
-<a name="l00085"></a>00085 <span class="preprocessor">                typename detail::tvec3&lt;T&gt;::value_type const &amp; y \</span>
-<a name="l00086"></a>00086 <span class="preprocessor">        ) \</span>
-<a name="l00087"></a>00087 <span class="preprocessor">    { \</span>
-<a name="l00088"></a>00088 <span class="preprocessor">        return detail::tvec3&lt;T&gt;( \</span>
-<a name="l00089"></a>00089 <span class="preprocessor">            func(x.x, y), \</span>
-<a name="l00090"></a>00090 <span class="preprocessor">            func(x.y, y), \</span>
-<a name="l00091"></a>00091 <span class="preprocessor">            func(x.z, y)); \</span>
-<a name="l00092"></a>00092 <span class="preprocessor">    }</span>
-<a name="l00093"></a>00093 <span class="preprocessor"></span>
-<a name="l00094"></a>00094 <span class="preprocessor">#define VECTORIZE4_VEC_SCA(func) \</span>
-<a name="l00095"></a>00095 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00096"></a>00096 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; func \</span>
-<a name="l00097"></a>00097 <span class="preprocessor">        ( \</span>
-<a name="l00098"></a>00098 <span class="preprocessor">                detail::tvec4&lt;T&gt; const &amp; x,  \</span>
-<a name="l00099"></a>00099 <span class="preprocessor">                typename detail::tvec4&lt;T&gt;::value_type const &amp; y \</span>
-<a name="l00100"></a>00100 <span class="preprocessor">        ) \</span>
-<a name="l00101"></a>00101 <span class="preprocessor">    { \</span>
-<a name="l00102"></a>00102 <span class="preprocessor">        return detail::tvec4&lt;T&gt;( \</span>
-<a name="l00103"></a>00103 <span class="preprocessor">            func(x.x, y), \</span>
-<a name="l00104"></a>00104 <span class="preprocessor">            func(x.y, y), \</span>
-<a name="l00105"></a>00105 <span class="preprocessor">            func(x.z, y), \</span>
-<a name="l00106"></a>00106 <span class="preprocessor">            func(x.w, y)); \</span>
-<a name="l00107"></a>00107 <span class="preprocessor">    }</span>
-<a name="l00108"></a>00108 <span class="preprocessor"></span>
-<a name="l00109"></a>00109 <span class="preprocessor">#define VECTORIZE_VEC_SCA(func) \</span>
-<a name="l00110"></a>00110 <span class="preprocessor">        VECTORIZE2_VEC_SCA(func) \</span>
-<a name="l00111"></a>00111 <span class="preprocessor">        VECTORIZE3_VEC_SCA(func) \</span>
-<a name="l00112"></a>00112 <span class="preprocessor">        VECTORIZE4_VEC_SCA(func)</span>
-<a name="l00113"></a>00113 <span class="preprocessor"></span>
-<a name="l00114"></a>00114 <span class="preprocessor">#define VECTORIZE2_VEC_VEC(func) \</span>
-<a name="l00115"></a>00115 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00116"></a>00116 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; func \</span>
-<a name="l00117"></a>00117 <span class="preprocessor">        ( \</span>
-<a name="l00118"></a>00118 <span class="preprocessor">                detail::tvec2&lt;T&gt; const &amp; x,  \</span>
-<a name="l00119"></a>00119 <span class="preprocessor">                detail::tvec2&lt;T&gt; const &amp; y \</span>
-<a name="l00120"></a>00120 <span class="preprocessor">        ) \</span>
-<a name="l00121"></a>00121 <span class="preprocessor">    { \</span>
-<a name="l00122"></a>00122 <span class="preprocessor">        return detail::tvec2&lt;T&gt;( \</span>
-<a name="l00123"></a>00123 <span class="preprocessor">            func(x.x, y.x), \</span>
-<a name="l00124"></a>00124 <span class="preprocessor">            func(x.y, y.y)); \</span>
-<a name="l00125"></a>00125 <span class="preprocessor">    }</span>
-<a name="l00126"></a>00126 <span class="preprocessor"></span>
-<a name="l00127"></a>00127 <span class="preprocessor">#define VECTORIZE3_VEC_VEC(func) \</span>
-<a name="l00128"></a>00128 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00129"></a>00129 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; func \</span>
-<a name="l00130"></a>00130 <span class="preprocessor">        ( \</span>
-<a name="l00131"></a>00131 <span class="preprocessor">                detail::tvec3&lt;T&gt; const &amp; x,  \</span>
-<a name="l00132"></a>00132 <span class="preprocessor">                detail::tvec3&lt;T&gt; const &amp; y \</span>
-<a name="l00133"></a>00133 <span class="preprocessor">        ) \</span>
-<a name="l00134"></a>00134 <span class="preprocessor">    { \</span>
-<a name="l00135"></a>00135 <span class="preprocessor">        return detail::tvec3&lt;T&gt;( \</span>
-<a name="l00136"></a>00136 <span class="preprocessor">            func(x.x, y.x), \</span>
-<a name="l00137"></a>00137 <span class="preprocessor">            func(x.y, y.y), \</span>
-<a name="l00138"></a>00138 <span class="preprocessor">            func(x.z, y.z)); \</span>
-<a name="l00139"></a>00139 <span class="preprocessor">    }</span>
-<a name="l00140"></a>00140 <span class="preprocessor"></span>
-<a name="l00141"></a>00141 <span class="preprocessor">#define VECTORIZE4_VEC_VEC(func) \</span>
-<a name="l00142"></a>00142 <span class="preprocessor">    template &lt;typename T&gt; \</span>
-<a name="l00143"></a>00143 <span class="preprocessor">    GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; func \</span>
-<a name="l00144"></a>00144 <span class="preprocessor">        ( \</span>
-<a name="l00145"></a>00145 <span class="preprocessor">                detail::tvec4&lt;T&gt; const &amp; x,  \</span>
-<a name="l00146"></a>00146 <span class="preprocessor">                detail::tvec4&lt;T&gt; const &amp; y \</span>
-<a name="l00147"></a>00147 <span class="preprocessor">        ) \</span>
-<a name="l00148"></a>00148 <span class="preprocessor">    { \</span>
-<a name="l00149"></a>00149 <span class="preprocessor">        return detail::tvec4&lt;T&gt;( \</span>
-<a name="l00150"></a>00150 <span class="preprocessor">            func(x.x, y.x), \</span>
-<a name="l00151"></a>00151 <span class="preprocessor">            func(x.y, y.y), \</span>
-<a name="l00152"></a>00152 <span class="preprocessor">            func(x.z, y.z), \</span>
-<a name="l00153"></a>00153 <span class="preprocessor">            func(x.w, y.w)); \</span>
-<a name="l00154"></a>00154 <span class="preprocessor">    }</span>
-<a name="l00155"></a>00155 <span class="preprocessor"></span>
-<a name="l00156"></a>00156 <span class="preprocessor">#define VECTORIZE_VEC_VEC(func) \</span>
-<a name="l00157"></a>00157 <span class="preprocessor">        VECTORIZE2_VEC_VEC(func) \</span>
-<a name="l00158"></a>00158 <span class="preprocessor">        VECTORIZE3_VEC_VEC(func) \</span>
-<a name="l00159"></a>00159 <span class="preprocessor">        VECTORIZE4_VEC_VEC(func)</span>
-</pre></div></div>
-</div>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
+<a name="l00054"></a>00054 
+<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00058"></a>00058         genType fastSqrt(genType <span class="keyword">const</span> &amp; x);
+<a name="l00059"></a>00059 
+<a name="l00062"></a>00062         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00063"></a>00063         genType fastInverseSqrt(genType <span class="keyword">const</span> &amp; x);
+<a name="l00064"></a>00064                 
+<a name="l00067"></a>00067         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00068"></a>00068         <span class="keyword">typename</span> genType::value_type fastLength(genType <span class="keyword">const</span> &amp; x);
+<a name="l00069"></a>00069 
+<a name="l00072"></a>00072         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00073"></a>00073         <span class="keyword">typename</span> genType::value_type fastDistance(genType <span class="keyword">const</span> &amp; x, genType <span class="keyword">const</span> &amp; y);
+<a name="l00074"></a>00074 
+<a name="l00077"></a>00077         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00078"></a>00078         genType fastNormalize(genType <span class="keyword">const</span> &amp; x);
+<a name="l00079"></a>00079 
+<a name="l00081"></a>00081 }<span class="comment">// namespace glm</span>
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 <span class="preprocessor">#include &quot;fast_square_root.inl&quot;</span>
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="preprocessor">#endif//GLM_GTX_fast_square_root</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 31
doc/api-0.9.3/a00024.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>associated_min_max.hpp File Reference</title>
+<title>fast_trigonometry.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,50 +49,30 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">associated_min_max.hpp File Reference</div>  </div>
-</div>
+<div class="title">fast_trigonometry.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00024_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaed83bceeac703a2541db6433fbf4a6d6">associatedMax</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa345b5140db56f069b6d07b4c5543531">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>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaaf1a0103d1b69c400b9b10f4df067d53">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>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gadcf2568cb1b0faa07db99edf47941054">associatedMin</a> (const genTypeT &amp;x, const genTypeU &amp;a, const genTypeT &amp;y, const genTypeU &amp;b)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gade8e54d2002c2754f1ef07d928f1e0e9">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>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeU&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga50e497a907684c60e61812001a13d569">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>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00169.html">GLM_GTX_associated_min_max: Associated Min/Max</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2008-03-10 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00167.html">GLM_GTX_fast_trigonometry: Fast trigonometric functions</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2006-01-08 / 2011-06-07 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00181.html" title="Min and max functions for 3 to 4 parameters.">GLM_GTX_extented_min_max: Extended min max</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00024_source.html">associated_min_max.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00024_source.html">fast_trigonometry.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 36 - 50
doc/api-0.9.3/a00024_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>associated_min_max.hpp Source File</title>
+<title>fast_trigonometry.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">associated_min_max.hpp</div>  </div>
-</div>
+<div class="title">fast_trigonometry.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00024.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -88,68 +90,52 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_associated_min_max</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_associated_min_max GLM_VERSION</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_fast_trigonometry</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_fast_trigonometry GLM_VERSION</span>
 <a name="l00040"></a>00040 <span class="preprocessor"></span>
 <a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
 <a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
 <a name="l00043"></a>00043 
 <a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_associated_min_max extension included&quot;)</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_fast_trigonometry extension included&quot;)</span>
 <a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
 <a name="l00047"></a>00047 <span class="preprocessor"></span>
 <a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
 <a name="l00049"></a>00049 {
 <a name="l00052"></a>00052 
-<a name="l00055"></a>00055         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
-<a name="l00056"></a>00056         genTypeU <a class="code" href="a00169.html#gadcf2568cb1b0faa07db99edf47941054" title="Min comparison between 2 variables.">associatedMin</a>(
-<a name="l00057"></a>00057                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
-<a name="l00058"></a>00058                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b);
-<a name="l00059"></a>00059 
-<a name="l00062"></a>00062         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
-<a name="l00063"></a>00063         genTypeU <a class="code" href="a00169.html#gadcf2568cb1b0faa07db99edf47941054" title="Min comparison between 2 variables.">associatedMin</a>(
-<a name="l00064"></a>00064                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
-<a name="l00065"></a>00065                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b, 
-<a name="l00066"></a>00066                 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c);
-<a name="l00067"></a>00067 
-<a name="l00070"></a>00070         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
-<a name="l00071"></a>00071         genTypeU <a class="code" href="a00169.html#gadcf2568cb1b0faa07db99edf47941054" title="Min comparison between 2 variables.">associatedMin</a>(
-<a name="l00072"></a>00072                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
-<a name="l00073"></a>00073                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b, 
-<a name="l00074"></a>00074                 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c, 
-<a name="l00075"></a>00075                 <span class="keyword">const</span> genTypeT&amp; w, <span class="keyword">const</span> genTypeU&amp; d);
+<a name="l00056"></a>00056     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00057"></a>00057         T fastSin(<span class="keyword">const</span> T&amp; angle);
+<a name="l00058"></a>00058 
+<a name="l00062"></a>00062         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00063"></a>00063         T fastCos(<span class="keyword">const</span> T&amp; angle);
+<a name="l00064"></a>00064 
+<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00069"></a>00069         T fastTan(<span class="keyword">const</span> T&amp; angle);
+<a name="l00070"></a>00070 
+<a name="l00074"></a>00074         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00075"></a>00075         T fastAsin(<span class="keyword">const</span> T&amp; angle);
 <a name="l00076"></a>00076 
-<a name="l00079"></a>00079         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
-<a name="l00080"></a>00080         genTypeU <a class="code" href="a00169.html#gaed83bceeac703a2541db6433fbf4a6d6" title="Max comparison between 2 variables.">associatedMax</a>(
-<a name="l00081"></a>00081                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
-<a name="l00082"></a>00082                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b);
-<a name="l00083"></a>00083 
-<a name="l00086"></a>00086         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
-<a name="l00087"></a>00087         genTypeU <a class="code" href="a00169.html#gaed83bceeac703a2541db6433fbf4a6d6" title="Max comparison between 2 variables.">associatedMax</a>(
-<a name="l00088"></a>00088                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
-<a name="l00089"></a>00089                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b, 
-<a name="l00090"></a>00090                 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c);
-<a name="l00091"></a>00091 
-<a name="l00094"></a>00094         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
-<a name="l00095"></a>00095         genTypeU <a class="code" href="a00169.html#gaed83bceeac703a2541db6433fbf4a6d6" title="Max comparison between 2 variables.">associatedMax</a>(
-<a name="l00096"></a>00096                 <span class="keyword">const</span> genTypeT&amp; x, <span class="keyword">const</span> genTypeU&amp; a, 
-<a name="l00097"></a>00097                 <span class="keyword">const</span> genTypeT&amp; y, <span class="keyword">const</span> genTypeU&amp; b, 
-<a name="l00098"></a>00098                 <span class="keyword">const</span> genTypeT&amp; z, <span class="keyword">const</span> genTypeU&amp; c, 
-<a name="l00099"></a>00099                 <span class="keyword">const</span> genTypeT&amp; w, <span class="keyword">const</span> genTypeU&amp; d);
-<a name="l00100"></a>00100 
-<a name="l00102"></a>00102 } <span class="comment">//namespace glm</span>
-<a name="l00103"></a>00103 
-<a name="l00104"></a>00104 <span class="preprocessor">#include &quot;associated_min_max.inl&quot;</span>
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106 <span class="preprocessor">#endif//GLM_GTX_associated_min_max</span>
-</pre></div></div>
-</div>
+<a name="l00080"></a>00080     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00081"></a>00081         T fastAcos(<span class="keyword">const</span> T&amp; angle);
+<a name="l00082"></a>00082 
+<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00087"></a>00087         T fastAtan(<span class="keyword">const</span> T&amp; y, <span class="keyword">const</span> T&amp; x);
+<a name="l00088"></a>00088 
+<a name="l00092"></a>00092     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00093"></a>00093         T fastAtan(<span class="keyword">const</span> T&amp; angle);
+<a name="l00094"></a>00094 
+<a name="l00096"></a>00096 }<span class="comment">//namespace glm</span>
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098 <span class="preprocessor">#include &quot;fast_trigonometry.inl&quot;</span>
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100 <span class="preprocessor">#endif//GLM_GTX_fast_trigonometry</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 54 - 38
doc/api-0.9.3/a00025.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>bit.hpp File Reference</title>
+<title>func_common.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -51,8 +52,8 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">bit.hpp File Reference</div>  </div>
-</div>
+<div class="title">func_common.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00025_source.html">Go to the source code of this file.</a></p>
@@ -60,61 +61,76 @@
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga7aadf1d73b4236e9cf9b2f23c13af604">bitRevert</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gaeca8e195d482248f677e3905d00f11ae">abs</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga1ce130f2934cf1d7aca83a7027422f3c">ceil</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga99b1ce602a02833646e5077345858da4">clamp</a> (genType const &amp;x, genType const &amp;minVal, genType const &amp;maxVal)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga0ac6c59156dcdc12fa8fd861925ddb4c">floatBitsToInt</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gaccd4fbc2c30848eb85370e2e5b4e4eec">floatBitsToUint</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gac3458e950a8a716468866f841a833c77">floor</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gae88b926eebc4d610ecdd148bf8c7bdac">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gad5e3814491ff6baa4f0d16aebcabff9b">fract</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga459a98ee7601031e99bf0e99978ff13f">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga15f7f0f93ebb026338cb3d7d5876e1b7">intBitsToFloat</a> (genIType const &amp;value)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga69fcbd40e0ce359f832329c0c93d5912">isinf</a> (genType const &amp;x)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gad9bc7e42a75381c3f6b68b8ba20863d3">bitRotateLeft</a> (genType const &amp;In, std::size_t Shift)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga5efda4205aed487be515b5f2921303f8">isnan</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gaf210cb4f21bbfde6ace0849e960a4b3a">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gae2ceed046e662a889cd938de3191dd55">bitRotateRight</a> (genType const &amp;In, std::size_t Shift)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType , typename sizeType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga929b849daa656caecf8bd0febcd71f7a">extractField</a> (genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gaf937428f9e6e9bb2e9214ff3be96cf95">fillBitfieldWithOne</a> (genIUType const &amp;Value, int const &amp;FromBit, int const &amp;ToBit)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gabb9c7b3bd390a61437667e5625834a7c">fillBitfieldWithZero</a> (genIUType const &amp;Value, int const &amp;FromBit, int const &amp;ToBit)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2">max</a> (genType const &amp;x, genType const &amp;y)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gaa3679c623c2ff5dfb745f9ce4316b23c">highestBit</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe">min</a> (genType const &amp;x, genType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga3f64b3986efe205cf30300700667e761">mix</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;a)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga485d3ead7f6c624b00cc800c68ab8e08">highestBitValue</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga3bdf136bc96f670965cd2f48d14356b4">mod</a> (genType const &amp;x, genType const &amp;y)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga3c0b3e843fa21220f08e801bb558470a">isPowerOfTwo</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gaafffb265a1455c56d85594032ded2dc3">mod</a> (genType const &amp;x, typename genType::value_type const &amp;y)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga94e553e5aabf9b202b5915719966d323">lowestBit</a> (genType const &amp;value)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga0d044f92de0108409d25ebcfea034dcb">mask</a> (genIType const &amp;count)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga34ff69d5efb2fafa3156ad2b87bd49ec">modf</a> (genType const &amp;x, genType &amp;i)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga335322b4fcb2e5444ec467a1e7a40301">powerOfTwoAbove</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga32125c5451799e80b886ef665b947d0c">round</a> (genType const &amp;x)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga4c3ea31127e64ec283fb6cf715b4d9ac">powerOfTwoBelow</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gab46fe1ce5fdd08f904be811a53364968">roundEven</a> (genType const &amp;x)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga00cb2e4b82215e4d531ec046c19e2ce7">powerOfTwoNearest</a> (genType const &amp;value)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga79f412e6d33cb4be13497056c2298d14">sign</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gabdfe71a62ef69b5ec834601e87588667">smoothstep</a> (genType const &amp;edge0, genType const &amp;edge1, genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga3d3199dcbbb0ac8e0d9664d538702a40">step</a> (genType const &amp;edge, genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gae1268fe85d913d9e4054de0e046abaef">trunc</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga3e4a94c90cffac713c287d1fb7b51c08">uintBitsToFloat</a> (genUType const &amp;value)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00170.html">GLM_GTX_bit: Extended bitwise operations</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2007-03-14 / 2011-06-07 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00158.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence)</dd></dl>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00170.html">GLM_GTX_bit: Extended bitwise operations</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-30 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-03-08 / 2010-01-26 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
 
-<p>Definition in file <a class="el" href="a00025_source.html">bit.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00025_source.html">func_common.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 141 - 77
doc/api-0.9.3/a00025_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>bit.hpp Source File</title>
+<title>func_common.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">bit.hpp</div>  </div>
-</div>
+<div class="title">func_common.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00025.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -86,87 +88,149 @@
 <a name="l00033"></a>00033 
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_bit</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_bit GLM_VERSION</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span>
-<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#ifndef GLM_CORE_func_common</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_common GLM_VERSION</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include &quot;<a class="code" href="a00004.html" title="OpenGL Mathematics (glm.g-truc.net)">_fixes.hpp</a>&quot;</span>
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 <span class="keyword">namespace </span>glm
+<a name="l00042"></a>00042 {
 <a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_bit extension included&quot;)</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
-<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00053"></a>00053         genType <a class="code" href="a00125.html#gaeca8e195d482248f677e3905d00f11ae" title="Returns x if x &gt;= 0; otherwise, it returns -x.">abs</a>(genType <span class="keyword">const</span> &amp; x);
 <a name="l00054"></a>00054 
-<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIType&gt;
-<a name="l00058"></a>00058         genIType <a class="code" href="a00170.html#ga0d044f92de0108409d25ebcfea034dcb" title="Build a mask of &#39;count&#39; bits.">mask</a>(genIType <span class="keyword">const</span> &amp; count);
-<a name="l00059"></a>00059 
-<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType, <span class="keyword">typename</span> sizeType&gt;
-<a name="l00064"></a>00064         genIUType <a class="code" href="a00170.html#ga929b849daa656caecf8bd0febcd71f7a" title="Component wise extraction of bit fields.">extractField</a>(
-<a name="l00065"></a>00065                 genIUType <span class="keyword">const</span> &amp; v, 
-<a name="l00066"></a>00066                 sizeType <span class="keyword">const</span> &amp; first, 
-<a name="l00067"></a>00067                 sizeType <span class="keyword">const</span> &amp; count);
-<a name="l00068"></a>00068 
-<a name="l00071"></a>00071         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00072"></a>00072         <span class="keywordtype">int</span> <a class="code" href="a00170.html#ga94e553e5aabf9b202b5915719966d323" title="Find the lowest bit set to 1 in a integer variable.">lowestBit</a>(genType <span class="keyword">const</span> &amp; value);
-<a name="l00073"></a>00073 
-<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00077"></a>00077         <span class="keywordtype">int</span> <a class="code" href="a00170.html#gaa3679c623c2ff5dfb745f9ce4316b23c" title="Find the highest bit set to 1 in a integer variable.">highestBit</a>(genType <span class="keyword">const</span> &amp; value);
-<a name="l00078"></a>00078 
-<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00082"></a>00082         genType <a class="code" href="a00170.html#ga485d3ead7f6c624b00cc800c68ab8e08" 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);
-<a name="l00083"></a>00083 
-<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00087"></a>00087         <span class="keywordtype">bool</span> <a class="code" href="a00170.html#ga3c0b3e843fa21220f08e801bb558470a" title="Return true if the value is a power of two number.">isPowerOfTwo</a>(genType <span class="keyword">const</span> &amp; value);
-<a name="l00088"></a>00088 
-<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00092"></a>00092         genType <a class="code" href="a00170.html#ga335322b4fcb2e5444ec467a1e7a40301" 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);
-<a name="l00093"></a>00093 
-<a name="l00096"></a>00096         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00097"></a>00097         genType <a class="code" href="a00170.html#ga4c3ea31127e64ec283fb6cf715b4d9ac" 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);
-<a name="l00098"></a>00098 
-<a name="l00101"></a>00101         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00102"></a>00102         genType <a class="code" href="a00170.html#ga00cb2e4b82215e4d531ec046c19e2ce7" 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);
-<a name="l00103"></a>00103 
-<a name="l00106"></a>00106         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00107"></a>00107         genType <a class="code" href="a00170.html#ga7aadf1d73b4236e9cf9b2f23c13af604" title="Revert all bits of any integer based type.">bitRevert</a>(genType <span class="keyword">const</span> &amp; value);
-<a name="l00108"></a>00108 
-<a name="l00111"></a>00111         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
-<a name="l00112"></a>00112         genType <a class="code" href="a00170.html#gae2ceed046e662a889cd938de3191dd55" title="Rotate all bits to the right.">bitRotateRight</a>(genType <span class="keyword">const</span> &amp; In, std::size_t Shift);
-<a name="l00113"></a>00113 
-<a name="l00116"></a>00116         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
-<a name="l00117"></a>00117         genType <a class="code" href="a00170.html#gad9bc7e42a75381c3f6b68b8ba20863d3" title="Rotate all bits to the left.">bitRotateLeft</a>(genType <span class="keyword">const</span> &amp; In, std::size_t Shift);
-<a name="l00118"></a>00118 
-<a name="l00121"></a>00121         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
-<a name="l00122"></a>00122         genIUType <a class="code" href="a00170.html#gaf937428f9e6e9bb2e9214ff3be96cf95" title="Set to 1 a range of bits.">fillBitfieldWithOne</a>(
-<a name="l00123"></a>00123                 genIUType <span class="keyword">const</span> &amp; Value,
-<a name="l00124"></a>00124                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; FromBit, 
-<a name="l00125"></a>00125                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; ToBit);
+<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00062"></a>00062         genType <a class="code" href="a00125.html#ga79f412e6d33cb4be13497056c2298d14" title="Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.">sign</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00063"></a>00063 
+<a name="l00070"></a>00070         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00071"></a>00071         genType <a class="code" href="a00125.html#gac3458e950a8a716468866f841a833c77" 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);
+<a name="l00072"></a>00072 
+<a name="l00080"></a>00080         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00081"></a>00081         genType <a class="code" href="a00125.html#gae1268fe85d913d9e4054de0e046abaef" 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);
+<a name="l00082"></a>00082 
+<a name="l00093"></a>00093         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00094"></a>00094         genType <a class="code" href="a00125.html#ga32125c5451799e80b886ef665b947d0c" title="Returns a value equal to the nearest integer to x.">round</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00095"></a>00095 
+<a name="l00105"></a>00105         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00106"></a>00106         genType <a class="code" href="a00125.html#gab46fe1ce5fdd08f904be811a53364968" title="Returns a value equal to the nearest integer to x.">roundEven</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00107"></a>00107 
+<a name="l00115"></a>00115     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00116"></a>00116         genType <a class="code" href="a00125.html#ga1ce130f2934cf1d7aca83a7027422f3c" 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);
+<a name="l00117"></a>00117 
+<a name="l00124"></a>00124     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00125"></a>00125         genType <a class="code" href="a00125.html#gad5e3814491ff6baa4f0d16aebcabff9b" title="Return x - floor(x).">fract</a>(genType <span class="keyword">const</span> &amp; x);
 <a name="l00126"></a>00126 
-<a name="l00129"></a>00129         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
-<a name="l00130"></a>00130         genIUType <a class="code" href="a00170.html#gabb9c7b3bd390a61437667e5625834a7c" title="Set to 0 a range of bits.">fillBitfieldWithZero</a>(
-<a name="l00131"></a>00131                 genIUType <span class="keyword">const</span> &amp; Value,
-<a name="l00132"></a>00132                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; FromBit, 
-<a name="l00133"></a>00133                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; ToBit);
-<a name="l00134"></a>00134 
-<a name="l00136"></a>00136 } <span class="comment">//namespace glm</span>
-<a name="l00137"></a>00137 
-<a name="l00138"></a>00138 <span class="preprocessor">#include &quot;bit.inl&quot;</span>
-<a name="l00139"></a>00139 
-<a name="l00140"></a>00140 <span class="preprocessor">#endif//GLM_GTX_bit</span>
-</pre></div></div>
-</div>
+<a name="l00134"></a>00134     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00135"></a>00135         genType <a class="code" href="a00125.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(
+<a name="l00136"></a>00136                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00137"></a>00137                 genType <span class="keyword">const</span> &amp; y);
+<a name="l00138"></a>00138 
+<a name="l00146"></a>00146     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00147"></a>00147         genType <a class="code" href="a00125.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(
+<a name="l00148"></a>00148                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00149"></a>00149                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
+<a name="l00150"></a>00150 
+<a name="l00160"></a>00160         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00161"></a>00161         genType <a class="code" href="a00125.html#ga34ff69d5efb2fafa3156ad2b87bd49ec" title="Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...">modf</a>(
+<a name="l00162"></a>00162                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00163"></a>00163                 genType &amp; i);
+<a name="l00164"></a>00164 
+<a name="l00171"></a>00171         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00172"></a>00172         genType <a class="code" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
+<a name="l00173"></a>00173                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00174"></a>00174                 genType <span class="keyword">const</span> &amp; y);
+<a name="l00175"></a>00175 
+<a name="l00176"></a>00176         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00177"></a>00177         genType <a class="code" href="a00125.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
+<a name="l00178"></a>00178                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00179"></a>00179                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
+<a name="l00180"></a>00180 
+<a name="l00187"></a>00187         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00188"></a>00188         genType <a class="code" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
+<a name="l00189"></a>00189                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00190"></a>00190                 genType <span class="keyword">const</span> &amp; y);
+<a name="l00191"></a>00191 
+<a name="l00192"></a>00192         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00193"></a>00193         genType <a class="code" href="a00125.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
+<a name="l00194"></a>00194                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00195"></a>00195                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
+<a name="l00196"></a>00196 
+<a name="l00204"></a>00204         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00205"></a>00205         genType <a class="code" href="a00125.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(
+<a name="l00206"></a>00206                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00207"></a>00207                 genType <span class="keyword">const</span> &amp; minVal, 
+<a name="l00208"></a>00208                 genType <span class="keyword">const</span> &amp; maxVal); 
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00211"></a>00211         genType <a class="code" href="a00125.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(
+<a name="l00212"></a>00212                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00213"></a>00213                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; minVal, 
+<a name="l00214"></a>00214                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; maxVal); 
+<a name="l00215"></a>00215 
+<a name="l00258"></a>00258         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt; 
+<a name="l00259"></a>00259         genTypeT <a class="code" href="a00125.html#ga3f64b3986efe205cf30300700667e761">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);
+<a name="l00260"></a>00260 
+<a name="l00265"></a>00265         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00266"></a>00266         genType <a class="code" href="a00125.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title="Returns 0.0 if x &lt; edge, otherwise it returns 1.0.">step</a>(
+<a name="l00267"></a>00267                 genType <span class="keyword">const</span> &amp; edge, 
+<a name="l00268"></a>00268                 genType <span class="keyword">const</span> &amp; x);
+<a name="l00269"></a>00269 
+<a name="l00270"></a>00270         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00271"></a>00271         genType <a class="code" href="a00125.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title="Returns 0.0 if x &lt; edge, otherwise it returns 1.0.">step</a>(
+<a name="l00272"></a>00272                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge, 
+<a name="l00273"></a>00273                 genType <span class="keyword">const</span> &amp; x);
+<a name="l00274"></a>00274 
+<a name="l00289"></a>00289         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00290"></a>00290         genType <a class="code" href="a00125.html#gabdfe71a62ef69b5ec834601e87588667" title="Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...">smoothstep</a>(
+<a name="l00291"></a>00291                 genType <span class="keyword">const</span> &amp; edge0, 
+<a name="l00292"></a>00292                 genType <span class="keyword">const</span> &amp; edge1, 
+<a name="l00293"></a>00293                 genType <span class="keyword">const</span> &amp; x);
+<a name="l00294"></a>00294 
+<a name="l00295"></a>00295         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00296"></a>00296         genType <a class="code" href="a00125.html#gabdfe71a62ef69b5ec834601e87588667" title="Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...">smoothstep</a>(
+<a name="l00297"></a>00297                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge0, 
+<a name="l00298"></a>00298                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge1, 
+<a name="l00299"></a>00299                 genType <span class="keyword">const</span> &amp; x);
+<a name="l00300"></a>00300 
+<a name="l00311"></a>00311         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00312"></a>00312         <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00125.html#ga5efda4205aed487be515b5f2921303f8" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00313"></a>00313 
+<a name="l00324"></a>00324         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00325"></a>00325         <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00125.html#ga69fcbd40e0ce359f832329c0c93d5912" 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);
+<a name="l00326"></a>00326 
+<a name="l00336"></a>00336         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
+<a name="l00337"></a>00337         genIType <a class="code" href="a00125.html#ga0ac6c59156dcdc12fa8fd861925ddb4c" title="Returns a signed integer value representing the encoding of a floating-point value.">floatBitsToInt</a>(genType <span class="keyword">const</span> &amp; value);
+<a name="l00338"></a>00338 
+<a name="l00348"></a>00348         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genUType&gt;
+<a name="l00349"></a>00349         genUType <a class="code" href="a00125.html#gaccd4fbc2c30848eb85370e2e5b4e4eec" title="Returns a unsigned integer value representing the encoding of a floating-point value.">floatBitsToUint</a>(genType <span class="keyword">const</span> &amp; value);
+<a name="l00350"></a>00350 
+<a name="l00364"></a>00364         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
+<a name="l00365"></a>00365         genType <a class="code" href="a00125.html#ga15f7f0f93ebb026338cb3d7d5876e1b7" 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);
+<a name="l00366"></a>00366         
+<a name="l00380"></a>00380     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genUType&gt;
+<a name="l00381"></a>00381     genType <a class="code" href="a00125.html#ga3e4a94c90cffac713c287d1fb7b51c08" 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);
+<a name="l00382"></a>00382         
+<a name="l00389"></a>00389         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00390"></a>00390         genType <a class="code" href="a00125.html#gae88b926eebc4d610ecdd148bf8c7bdac" 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);
+<a name="l00391"></a>00391 
+<a name="l00406"></a>00406         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
+<a name="l00407"></a>00407         genType <a class="code" href="a00125.html#ga459a98ee7601031e99bf0e99978ff13f" 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="a00126.html#ga03903bb9395a13d554a5fbecdf67792b" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>);
+<a name="l00408"></a>00408 
+<a name="l00420"></a>00420         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
+<a name="l00421"></a>00421         genType <a class="code" href="a00125.html#gaf210cb4f21bbfde6ace0849e960a4b3a" 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="a00126.html#ga03903bb9395a13d554a5fbecdf67792b" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>);
+<a name="l00422"></a>00422 
+<a name="l00424"></a>00424 }<span class="comment">//namespace glm</span>
+<a name="l00425"></a>00425 
+<a name="l00426"></a>00426 <span class="preprocessor">#include &quot;func_common.inl&quot;</span>
+<a name="l00427"></a>00427 
+<a name="l00428"></a>00428 <span class="preprocessor">#endif//GLM_CORE_func_common</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 99 - 0
doc/api-0.9.3/a00026.html

@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>func_exponential.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">func_exponential.hpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00026_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga03903bb9395a13d554a5fbecdf67792b">exp</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga18385688b951da01cdc3a22c232e4e28">exp2</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga3fd19e045e3943b96e0cdad22fbda111">inversesqrt</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga46a307f466090551e328eec42abf61bc">log</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gae19ff18661b33a0fe1b8edee61382f40">log2</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gac93ea301c287d87a63fa14a4c44b719b">pow</a> (genType const &amp;x, genType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f">sqrt</a> (genType const &amp;x)</td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-08 / 2011-06-14 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00026_source.html">func_exponential.hpp</a>.</p>
+</div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 40 - 33
doc/api-0.9.3/a00026_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>closest_point.hpp Source File</title>
+<title>func_exponential.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,12 +47,13 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">closest_point.hpp</div>  </div>
-</div>
+<div class="title">func_exponential.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a href="a00026.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 
 <a name="l00004"></a>00004 
@@ -86,40 +88,45 @@
 <a name="l00033"></a>00033 
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_closest_point</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_closest_point GLM_VERSION</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#ifndef glm_core_func_exponential</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_func_exponential GLM_VERSION</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span>
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>glm
+<a name="l00040"></a>00040 {
 <a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span>
-<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
-<a name="l00049"></a>00049 {
-<a name="l00052"></a>00052 
-<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00056"></a>00056         detail::tvec3&lt;T&gt; <a class="code" href="a00171.html#ga737bd08d425540f365db4694fb552b8b" title="Find the point on a straight line which is the closet of a point.">closestPointOnLine</a>(
-<a name="l00057"></a>00057                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; point, 
-<a name="l00058"></a>00058                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; a, 
-<a name="l00059"></a>00059                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; b);
-<a name="l00060"></a>00060 
-<a name="l00062"></a>00062 }<span class="comment">// namespace glm</span>
-<a name="l00063"></a>00063 
-<a name="l00064"></a>00064 <span class="preprocessor">#include &quot;closest_point.inl&quot;</span>
-<a name="l00065"></a>00065 
-<a name="l00066"></a>00066 <span class="preprocessor">#endif//GLM_GTX_closest_point</span>
-</pre></div></div>
-</div>
+<a name="l00052"></a>00052         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00053"></a>00053         genType <a class="code" href="a00126.html#gac93ea301c287d87a63fa14a4c44b719b" 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);
+<a name="l00054"></a>00054 
+<a name="l00062"></a>00062         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00063"></a>00063         genType <a class="code" href="a00126.html#ga03903bb9395a13d554a5fbecdf67792b" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00064"></a>00064 
+<a name="l00074"></a>00074         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00075"></a>00075         genType <a class="code" href="a00126.html#ga46a307f466090551e328eec42abf61bc" 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);
+<a name="l00076"></a>00076 
+<a name="l00084"></a>00084         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00085"></a>00085         genType <a class="code" href="a00126.html#ga18385688b951da01cdc3a22c232e4e28" title="Returns 2 raised to the x power.">exp2</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00086"></a>00086 
+<a name="l00095"></a>00095         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00096"></a>00096         genType <a class="code" href="a00126.html#gae19ff18661b33a0fe1b8edee61382f40" 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);
+<a name="l00097"></a>00097 
+<a name="l00105"></a>00105         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00106"></a>00106         genType <a class="code" href="a00126.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f" title="Returns the positive square root of x.">sqrt</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00107"></a>00107     
+<a name="l00115"></a>00115         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00116"></a>00116         genType <a class="code" href="a00126.html#ga3fd19e045e3943b96e0cdad22fbda111" title="Returns the reciprocal of the positive square root of x.">inversesqrt</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00117"></a>00117 
+<a name="l00119"></a>00119 }<span class="comment">//namespace glm</span>
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121 <span class="preprocessor">#include &quot;func_exponential.inl&quot;</span>
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123 <span class="preprocessor">#endif//glm_core_func_exponential</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 27 - 145
doc/api-0.9.3/a00027.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>color_cast.hpp File Reference</title>
+<title>func_geometric.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -51,168 +52,49 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">color_cast.hpp File Reference</div>  </div>
-</div>
+<div class="title">func_geometric.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00027_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1c37ab880548dafc96d9d722cd8340aa"></a><!-- doxytag: member="color_cast.hpp::f16_abgr_cast" ref="ga1c37ab880548dafc96d9d722cd8340aa" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga1c37ab880548dafc96d9d722cd8340aa">f16_abgr_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga108db09da79d5a9c91f2cbd5f2b3f34c"></a><!-- doxytag: member="color_cast.hpp::f16_argb_cast" ref="ga108db09da79d5a9c91f2cbd5f2b3f34c" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga108db09da79d5a9c91f2cbd5f2b3f34c">f16_argb_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1367757d9f9f63837ec7f286211bfe93"></a><!-- doxytag: member="color_cast.hpp::f16_bgra_cast" ref="ga1367757d9f9f63837ec7f286211bfe93" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga1367757d9f9f63837ec7f286211bfe93">f16_bgra_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5d0d73e114e2fc072f7e7fbabd72b511"></a><!-- doxytag: member="color_cast.hpp::f16_bgrx_cast" ref="ga5d0d73e114e2fc072f7e7fbabd72b511" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5d0d73e114e2fc072f7e7fbabd72b511">f16_bgrx_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaed10c22c6d3ae8400f6a27b95748bb9"></a><!-- doxytag: member="color_cast.hpp::f16_channel_cast" ref="gaaed10c22c6d3ae8400f6a27b95748bb9" args="(T a)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaaed10c22c6d3ae8400f6a27b95748bb9">f16_channel_cast</a> (T a)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa777898269e22a5061651ef973cf07b7"></a><!-- doxytag: member="color_cast.hpp::f16_rgba_cast" ref="gaa777898269e22a5061651ef973cf07b7" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa777898269e22a5061651ef973cf07b7">f16_rgba_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf17e45ee1f5602b86df9f32c5c28234f"></a><!-- doxytag: member="color_cast.hpp::f16_rgbx_cast" ref="gaf17e45ee1f5602b86df9f32c5c28234f" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaf17e45ee1f5602b86df9f32c5c28234f">f16_rgbx_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafbeb919e45ff901eaec92a130cc82857"></a><!-- doxytag: member="color_cast.hpp::f16_xbgr_cast" ref="gafbeb919e45ff901eaec92a130cc82857" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gafbeb919e45ff901eaec92a130cc82857">f16_xbgr_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa34ca9eb33fc570d84affe75970ad472"></a><!-- doxytag: member="color_cast.hpp::f16_xrgb_cast" ref="gaa34ca9eb33fc570d84affe75970ad472" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f16vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa34ca9eb33fc570d84affe75970ad472">f16_xrgb_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09b4c27c802a4b5d0e856cc93d16cf2a"></a><!-- doxytag: member="color_cast.hpp::f32_abgr_cast" ref="ga09b4c27c802a4b5d0e856cc93d16cf2a" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga09b4c27c802a4b5d0e856cc93d16cf2a">f32_abgr_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1bb6ca4504a27fb918140e098735e023"></a><!-- doxytag: member="color_cast.hpp::f32_argb_cast" ref="ga1bb6ca4504a27fb918140e098735e023" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga1bb6ca4504a27fb918140e098735e023">f32_argb_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacaa5659ed88420e742b53557dc016e5d"></a><!-- doxytag: member="color_cast.hpp::f32_bgra_cast" ref="gacaa5659ed88420e742b53557dc016e5d" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gacaa5659ed88420e742b53557dc016e5d">f32_bgra_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga87f58ff1eff38f6f64d37917f7c3d605"></a><!-- doxytag: member="color_cast.hpp::f32_bgrx_cast" ref="ga87f58ff1eff38f6f64d37917f7c3d605" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga87f58ff1eff38f6f64d37917f7c3d605">f32_bgrx_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga450fce811cc485d4e5fbe915cdbb995f"></a><!-- doxytag: member="color_cast.hpp::f32_channel_cast" ref="ga450fce811cc485d4e5fbe915cdbb995f" args="(T a)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga450fce811cc485d4e5fbe915cdbb995f">f32_channel_cast</a> (T a)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gade0903e79b1935818f3610169e784c28"></a><!-- doxytag: member="color_cast.hpp::f32_rgba_cast" ref="gade0903e79b1935818f3610169e784c28" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gade0903e79b1935818f3610169e784c28">f32_rgba_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf3bdd33a9a652a8f398f3c22e12d808c"></a><!-- doxytag: member="color_cast.hpp::f32_rgbx_cast" ref="gaf3bdd33a9a652a8f398f3c22e12d808c" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaf3bdd33a9a652a8f398f3c22e12d808c">f32_rgbx_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac6c5ba434022dd3da2ca35d1a9314be2"></a><!-- doxytag: member="color_cast.hpp::f32_xbgr_cast" ref="gac6c5ba434022dd3da2ca35d1a9314be2" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac6c5ba434022dd3da2ca35d1a9314be2">f32_xbgr_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga868c5082efaf50e0ca9824d9ff6b2ae6"></a><!-- doxytag: member="color_cast.hpp::f32_xrgb_cast" ref="ga868c5082efaf50e0ca9824d9ff6b2ae6" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f32vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga868c5082efaf50e0ca9824d9ff6b2ae6">f32_xrgb_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga29317ef1aeea12967d230043b777c95e"></a><!-- doxytag: member="color_cast.hpp::f64_abgr_cast" ref="ga29317ef1aeea12967d230043b777c95e" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga29317ef1aeea12967d230043b777c95e">f64_abgr_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3eada64cecd6911a234e7263956cea50"></a><!-- doxytag: member="color_cast.hpp::f64_argb_cast" ref="ga3eada64cecd6911a234e7263956cea50" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga3eada64cecd6911a234e7263956cea50">f64_argb_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga19b9b07bc4b654fb5a464b52baed2b95"></a><!-- doxytag: member="color_cast.hpp::f64_bgra_cast" ref="ga19b9b07bc4b654fb5a464b52baed2b95" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga19b9b07bc4b654fb5a464b52baed2b95">f64_bgra_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga54480b66922c429da8d533e6970b1a71"></a><!-- doxytag: member="color_cast.hpp::f64_bgrx_cast" ref="ga54480b66922c429da8d533e6970b1a71" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga54480b66922c429da8d533e6970b1a71">f64_bgrx_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga714d21da59a01f931e5007c089d9f91c"></a><!-- doxytag: member="color_cast.hpp::f64_channel_cast" ref="ga714d21da59a01f931e5007c089d9f91c" args="(T a)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga714d21da59a01f931e5007c089d9f91c">f64_channel_cast</a> (T a)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa97be6d4369793feec9cd240306ea451"></a><!-- doxytag: member="color_cast.hpp::f64_rgba_cast" ref="gaa97be6d4369793feec9cd240306ea451" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64vec4&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa97be6d4369793feec9cd240306ea451">f64_rgba_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5a8f7e68a814512e1496766b89512151"></a><!-- doxytag: member="color_cast.hpp::f64_rgbx_cast" ref="ga5a8f7e68a814512e1496766b89512151" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5a8f7e68a814512e1496766b89512151">f64_rgbx_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga6bd5ec6df79fc3b188e14e03084c8ebc"></a><!-- doxytag: member="color_cast.hpp::f64_xbgr_cast" ref="ga6bd5ec6df79fc3b188e14e03084c8ebc" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga6bd5ec6df79fc3b188e14e03084c8ebc">f64_xbgr_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8b28e89ee5043c947664ef46ef5cff12"></a><!-- doxytag: member="color_cast.hpp::f64_xrgb_cast" ref="ga8b28e89ee5043c947664ef46ef5cff12" args="(T c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">f64vec3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga8b28e89ee5043c947664ef46ef5cff12">f64_xrgb_cast</a> (T c)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint16&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga49e636906dcf04bed0e149c71761fb0a">u16channel_cast</a> (valType a)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa928bde161bdf391317d96b20eb1a395"></a><!-- doxytag: member="color_cast.hpp::u32_abgr_cast" ref="gaa928bde161bdf391317d96b20eb1a395" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa928bde161bdf391317d96b20eb1a395">u32_abgr_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga2c41583a6b660d7f70e7b078f7144aeb"></a><!-- doxytag: member="color_cast.hpp::u32_argb_cast" ref="ga2c41583a6b660d7f70e7b078f7144aeb" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga2c41583a6b660d7f70e7b078f7144aeb">u32_argb_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac6b23c9c3dd2578dd77c8a23a9c77185"></a><!-- doxytag: member="color_cast.hpp::u32_bgra_cast" ref="gac6b23c9c3dd2578dd77c8a23a9c77185" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac6b23c9c3dd2578dd77c8a23a9c77185">u32_bgra_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5169191468b1be24c2af1b679c9f4b3f"></a><!-- doxytag: member="color_cast.hpp::u32_bgrx_cast" ref="ga5169191468b1be24c2af1b679c9f4b3f" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5169191468b1be24c2af1b679c9f4b3f">u32_bgrx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga66026c23e16f6ceab8b99e2a844c7f05"></a><!-- doxytag: member="color_cast.hpp::u32_rgba_cast" ref="ga66026c23e16f6ceab8b99e2a844c7f05" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga66026c23e16f6ceab8b99e2a844c7f05">u32_rgba_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab660e32dbf9e1ecfad0613a3011c46fe"></a><!-- doxytag: member="color_cast.hpp::u32_rgbx_cast" ref="gab660e32dbf9e1ecfad0613a3011c46fe" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gab660e32dbf9e1ecfad0613a3011c46fe">u32_rgbx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga6a44ecd022166716b9fd00dfeb3688be"></a><!-- doxytag: member="color_cast.hpp::u32_xbgr_cast" ref="ga6a44ecd022166716b9fd00dfeb3688be" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga6a44ecd022166716b9fd00dfeb3688be">u32_xbgr_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga49b0fd47346b739d1732a26fc94edf87"></a><!-- doxytag: member="color_cast.hpp::u32_xrgb_cast" ref="ga49b0fd47346b739d1732a26fc94edf87" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint32&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga49b0fd47346b739d1732a26fc94edf87">u32_xrgb_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gad8850bb162df4df64541cae10e693642"></a><!-- doxytag: member="color_cast.hpp::u64_abgr_cast" ref="gad8850bb162df4df64541cae10e693642" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad8850bb162df4df64541cae10e693642">u64_abgr_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga6f979d8e3e5435b048799ade4fe34275"></a><!-- doxytag: member="color_cast.hpp::u64_argb_cast" ref="ga6f979d8e3e5435b048799ade4fe34275" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga6f979d8e3e5435b048799ade4fe34275">u64_argb_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga165b688bb6ecf2fb3e0aa87925815487"></a><!-- doxytag: member="color_cast.hpp::u64_bgra_cast" ref="ga165b688bb6ecf2fb3e0aa87925815487" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga165b688bb6ecf2fb3e0aa87925815487">u64_bgra_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gad75bc921ee693a306693d760536e9bb8"></a><!-- doxytag: member="color_cast.hpp::u64_bgrx_cast" ref="gad75bc921ee693a306693d760536e9bb8" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad75bc921ee693a306693d760536e9bb8">u64_bgrx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaecab5d0a70ac7d721ab26b8592c836d8"></a><!-- doxytag: member="color_cast.hpp::u64_rgba_cast" ref="gaecab5d0a70ac7d721ab26b8592c836d8" args="(const detail::tvec4&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaecab5d0a70ac7d721ab26b8592c836d8">u64_rgba_cast</a> (const detail::tvec4&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacd63fce723a7a34b0432e323f9201171"></a><!-- doxytag: member="color_cast.hpp::u64_rgbx_cast" ref="gacd63fce723a7a34b0432e323f9201171" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gacd63fce723a7a34b0432e323f9201171">u64_rgbx_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa93895af1b887b39ad7f1980cc995a32"></a><!-- doxytag: member="color_cast.hpp::u64_xbgr_cast" ref="gaa93895af1b887b39ad7f1980cc995a32" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa93895af1b887b39ad7f1980cc995a32">u64_xbgr_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7a75746544ae028cc991152a4c0dc01a"></a><!-- doxytag: member="color_cast.hpp::u64_xrgb_cast" ref="ga7a75746544ae028cc991152a4c0dc01a" args="(const detail::tvec3&lt; T &gt; &amp;c)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint64&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga7a75746544ae028cc991152a4c0dc01a">u64_xrgb_cast</a> (const detail::tvec3&lt; T &gt; &amp;c)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">uint8&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga65c8867c34193951a87cbe6ad3492119">u8channel_cast</a> (valType a)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#gaa127ddc9d38f715125f91742d399eb6f">cross</a> (detail::tvec3&lt; valType &gt; const &amp;x, detail::tvec3&lt; valType &gt; const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga3fac0e61144f60184d961dd156709dd3">distance</a> (genType const &amp;p0, genType const &amp;p1)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga7a31d2864eccfe665409e3b44f5e6e8d">dot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga855fc5fd7779df1683482564956c6764">faceforward</a> (genType const &amp;N, genType const &amp;I, genType const &amp;Nref)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga282360c8bb80b80d3c7f5bc00766d873">length</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga68b931c228750eeba844c273c54ca43d">normalize</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#gabe1fa0bef5f854242eb70ce56e5a7d03">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#gabbb4909d3e99a7a2411cc63252afbbd8">refract</a> (genType const &amp;I, genType const &amp;N, typename genType::value_type const &amp;eta)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00172.html">GLM_GTX_color_cast: Color conversion</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2007-06-21 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-03 / 2011-06-14 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00203.html" title="Defined size types.">GLM_GTX_number_precision: Number precision</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
 
-<p>Definition in file <a class="el" href="a00027_source.html">color_cast.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00027_source.html">func_geometric.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 58 - 88
doc/api-0.9.3/a00027_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>color_cast.hpp Source File</title>
+<title>func_geometric.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">color_cast.hpp</div>  </div>
-</div>
+<div class="title">func_geometric.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00027.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -86,96 +88,64 @@
 <a name="l00033"></a>00033 
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_color_cast</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_color_cast GLM_VERSION</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span>
-<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtx/number_precision.hpp&quot;</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_color_cast extension included&quot;)</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
-<a name="l00051"></a>00051 {
-<a name="l00054"></a>00054 
-<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; uint8 <a class="code" href="a00172.html#ga65c8867c34193951a87cbe6ad3492119" title="Conversion of a floating value into a 8bit unsigned int value.">u8channel_cast</a>(valType a);
-<a name="l00058"></a>00058 
-<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;     uint16 <a class="code" href="a00172.html#ga49e636906dcf04bed0e149c71761fb0a" title="Conversion of a floating value into a 16bit unsigned int value.">u16channel_cast</a>(valType a);
-<a name="l00062"></a>00062 
-<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 <a class="code" href="a00172.html#gab660e32dbf9e1ecfad0613a3011c46fe" 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> detail::tvec3&lt;T&gt;&amp; c);          
-<a name="l00064"></a>00064         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 <a class="code" href="a00172.html#ga49b0fd47346b739d1732a26fc94edf87" 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> detail::tvec3&lt;T&gt;&amp; c);          
-<a name="l00065"></a>00065         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 <a class="code" href="a00172.html#ga5169191468b1be24c2af1b679c9f4b3f" 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> detail::tvec3&lt;T&gt;&amp; c);          
-<a name="l00066"></a>00066         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 <a class="code" href="a00172.html#ga6a44ecd022166716b9fd00dfeb3688be" 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> detail::tvec3&lt;T&gt;&amp; c);          
-<a name="l00067"></a>00067 
-<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 <a class="code" href="a00172.html#ga66026c23e16f6ceab8b99e2a844c7f05" 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> detail::tvec4&lt;T&gt;&amp; c);          
-<a name="l00069"></a>00069         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 <a class="code" href="a00172.html#ga2c41583a6b660d7f70e7b078f7144aeb" 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> detail::tvec4&lt;T&gt;&amp; c);          
-<a name="l00070"></a>00070         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 <a class="code" href="a00172.html#gac6b23c9c3dd2578dd77c8a23a9c77185" 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> detail::tvec4&lt;T&gt;&amp; c);          
-<a name="l00071"></a>00071         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint32 <a class="code" href="a00172.html#gaa928bde161bdf391317d96b20eb1a395" 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> detail::tvec4&lt;T&gt;&amp; c);          
-<a name="l00072"></a>00072 
-<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 <a class="code" href="a00172.html#gacd63fce723a7a34b0432e323f9201171" 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> detail::tvec3&lt;T&gt;&amp; c);          
-<a name="l00074"></a>00074         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 <a class="code" href="a00172.html#ga7a75746544ae028cc991152a4c0dc01a" 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> detail::tvec3&lt;T&gt;&amp; c);          
-<a name="l00075"></a>00075         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 <a class="code" href="a00172.html#gad75bc921ee693a306693d760536e9bb8" 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> detail::tvec3&lt;T&gt;&amp; c);          
-<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 <a class="code" href="a00172.html#gaa93895af1b887b39ad7f1980cc995a32" 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> detail::tvec3&lt;T&gt;&amp; c);          
-<a name="l00077"></a>00077 
-<a name="l00078"></a>00078         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 <a class="code" href="a00172.html#gaecab5d0a70ac7d721ab26b8592c836d8" 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> detail::tvec4&lt;T&gt;&amp; c);          
-<a name="l00079"></a>00079         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 <a class="code" href="a00172.html#ga6f979d8e3e5435b048799ade4fe34275" 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> detail::tvec4&lt;T&gt;&amp; c);          
-<a name="l00080"></a>00080         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 <a class="code" href="a00172.html#ga165b688bb6ecf2fb3e0aa87925815487" 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> detail::tvec4&lt;T&gt;&amp; c);          
-<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; uint64 <a class="code" href="a00172.html#gad8850bb162df4df64541cae10e693642" 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> detail::tvec4&lt;T&gt;&amp; c);          
-<a name="l00082"></a>00082 
-<a name="l00083"></a>00083         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga3ca1b6511bcc12516b5fd76c7976f01b" title="16 bit half-precision floating-point scalar.">f16</a> <a class="code" href="a00172.html#gaaed10c22c6d3ae8400f6a27b95748bb9" 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);        
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gaa68a583d3e3b202e1b48c7bc94964c78" title="Half-precision floating-point vector of 3 components.">f16vec3</a> <a class="code" href="a00172.html#gaf17e45ee1f5602b86df9f32c5c28234f" 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);               
-<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gaa68a583d3e3b202e1b48c7bc94964c78" title="Half-precision floating-point vector of 3 components.">f16vec3</a> <a class="code" href="a00172.html#gaa34ca9eb33fc570d84affe75970ad472" 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);               
-<a name="l00087"></a>00087         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gaa68a583d3e3b202e1b48c7bc94964c78" title="Half-precision floating-point vector of 3 components.">f16vec3</a> <a class="code" href="a00172.html#ga5d0d73e114e2fc072f7e7fbabd72b511" 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);               
-<a name="l00088"></a>00088         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gaa68a583d3e3b202e1b48c7bc94964c78" title="Half-precision floating-point vector of 3 components.">f16vec3</a> <a class="code" href="a00172.html#gafbeb919e45ff901eaec92a130cc82857" 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);               
-<a name="l00089"></a>00089 
-<a name="l00090"></a>00090         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gae77767db0311f307255a057fd7358704" title="Half-precision floating-point vector of 4 components.">f16vec4</a> <a class="code" href="a00172.html#gaa777898269e22a5061651ef973cf07b7" 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);               
-<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gae77767db0311f307255a057fd7358704" title="Half-precision floating-point vector of 4 components.">f16vec4</a> <a class="code" href="a00172.html#ga108db09da79d5a9c91f2cbd5f2b3f34c" 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);               
-<a name="l00092"></a>00092         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gae77767db0311f307255a057fd7358704" title="Half-precision floating-point vector of 4 components.">f16vec4</a> <a class="code" href="a00172.html#ga1367757d9f9f63837ec7f286211bfe93" 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);               
-<a name="l00093"></a>00093         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gae77767db0311f307255a057fd7358704" title="Half-precision floating-point vector of 4 components.">f16vec4</a> <a class="code" href="a00172.html#ga1c37ab880548dafc96d9d722cd8340aa" 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);               
+<a name="l00036"></a>00036 <span class="preprocessor">#ifndef glm_core_func_geometric</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_func_geometric GLM_VERSION</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span>
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>glm
+<a name="l00040"></a>00040 {
+<a name="l00043"></a>00043 
+<a name="l00050"></a>00050         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00051"></a>00051         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00127.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>(
+<a name="l00052"></a>00052                 genType <span class="keyword">const</span> &amp; x); 
+<a name="l00053"></a>00053 
+<a name="l00060"></a>00060         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00061"></a>00061         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00127.html#ga3fac0e61144f60184d961dd156709dd3" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance</a>(
+<a name="l00062"></a>00062                 genType <span class="keyword">const</span> &amp; p0, 
+<a name="l00063"></a>00063                 genType <span class="keyword">const</span> &amp; p1);
+<a name="l00064"></a>00064 
+<a name="l00071"></a>00071     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00072"></a>00072         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00127.html#ga7a31d2864eccfe665409e3b44f5e6e8d" title="Returns the dot product of x and y, i.e., result = x * y.">dot</a>(
+<a name="l00073"></a>00073                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00074"></a>00074                 genType <span class="keyword">const</span> &amp; y);
+<a name="l00075"></a>00075 
+<a name="l00082"></a>00082     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00083"></a>00083         detail::tvec3&lt;valType&gt; <a class="code" href="a00127.html#gaa127ddc9d38f715125f91742d399eb6f" title="Returns the cross product of x and y.">cross</a>(
+<a name="l00084"></a>00084                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; x, 
+<a name="l00085"></a>00085                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; y);
+<a name="l00086"></a>00086 
+<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00092"></a>00092         genType <a class="code" href="a00127.html#ga68b931c228750eeba844c273c54ca43d" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(
+<a name="l00093"></a>00093                 genType <span class="keyword">const</span> &amp; x);
 <a name="l00094"></a>00094 
-<a name="l00095"></a>00095         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7" title="32 bit single-precision floating-point scalar.">f32</a> <a class="code" href="a00172.html#ga450fce811cc485d4e5fbe915cdbb995f" 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);                
-<a name="l00096"></a>00096 
-<a name="l00097"></a>00097         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga81353c6a9b282b2b34185306a40040ad" title="Single-precision floating-point vector of 3 components.">f32vec3</a> <a class="code" href="a00172.html#gaf3bdd33a9a652a8f398f3c22e12d808c" 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);               
-<a name="l00098"></a>00098         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga81353c6a9b282b2b34185306a40040ad" title="Single-precision floating-point vector of 3 components.">f32vec3</a> <a class="code" href="a00172.html#ga868c5082efaf50e0ca9824d9ff6b2ae6" 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);               
-<a name="l00099"></a>00099         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga81353c6a9b282b2b34185306a40040ad" title="Single-precision floating-point vector of 3 components.">f32vec3</a> <a class="code" href="a00172.html#ga87f58ff1eff38f6f64d37917f7c3d605" 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);               
-<a name="l00100"></a>00100         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga81353c6a9b282b2b34185306a40040ad" title="Single-precision floating-point vector of 3 components.">f32vec3</a> <a class="code" href="a00172.html#gac6c5ba434022dd3da2ca35d1a9314be2" 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);               
-<a name="l00101"></a>00101 
-<a name="l00102"></a>00102         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga58dbce28a4d4b0d72c239cf3069bd28b" title="Single-precision floating-point vector of 4 components.">f32vec4</a> <a class="code" href="a00172.html#gade0903e79b1935818f3610169e784c28" 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);               
-<a name="l00103"></a>00103         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga58dbce28a4d4b0d72c239cf3069bd28b" title="Single-precision floating-point vector of 4 components.">f32vec4</a> <a class="code" href="a00172.html#ga1bb6ca4504a27fb918140e098735e023" 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);               
-<a name="l00104"></a>00104         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga58dbce28a4d4b0d72c239cf3069bd28b" title="Single-precision floating-point vector of 4 components.">f32vec4</a> <a class="code" href="a00172.html#gacaa5659ed88420e742b53557dc016e5d" 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);               
-<a name="l00105"></a>00105         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga58dbce28a4d4b0d72c239cf3069bd28b" title="Single-precision floating-point vector of 4 components.">f32vec4</a> <a class="code" href="a00172.html#ga09b4c27c802a4b5d0e856cc93d16cf2a" 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);               
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga1d794d240091678f602e8de225b8d8c9" title="64 bit double-precision floating-point scalar.">f64</a> <a class="code" href="a00172.html#ga714d21da59a01f931e5007c089d9f91c" 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);                
-<a name="l00108"></a>00108 
-<a name="l00109"></a>00109         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga2a4b3d9e62dc8c9b970e91c38bb56997" title="Double-precision floating-point vector of 3 components.">f64vec3</a> <a class="code" href="a00172.html#ga5a8f7e68a814512e1496766b89512151" 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);               
-<a name="l00110"></a>00110         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga2a4b3d9e62dc8c9b970e91c38bb56997" title="Double-precision floating-point vector of 3 components.">f64vec3</a> <a class="code" href="a00172.html#ga8b28e89ee5043c947664ef46ef5cff12" 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);               
-<a name="l00111"></a>00111         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga2a4b3d9e62dc8c9b970e91c38bb56997" title="Double-precision floating-point vector of 3 components.">f64vec3</a> <a class="code" href="a00172.html#ga54480b66922c429da8d533e6970b1a71" 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);               
-<a name="l00112"></a>00112         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga2a4b3d9e62dc8c9b970e91c38bb56997" title="Double-precision floating-point vector of 3 components.">f64vec3</a> <a class="code" href="a00172.html#ga6bd5ec6df79fc3b188e14e03084c8ebc" 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);               
-<a name="l00113"></a>00113 
-<a name="l00114"></a>00114         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga66999872051fdf1934199af093eedece" title="Double-precision floating-point vector of 4 components.">f64vec4</a> <a class="code" href="a00172.html#gaa97be6d4369793feec9cd240306ea451" 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);               
-<a name="l00115"></a>00115         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga66999872051fdf1934199af093eedece" title="Double-precision floating-point vector of 4 components.">f64vec4</a> <a class="code" href="a00172.html#ga3eada64cecd6911a234e7263956cea50" 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);               
-<a name="l00116"></a>00116         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga66999872051fdf1934199af093eedece" title="Double-precision floating-point vector of 4 components.">f64vec4</a> <a class="code" href="a00172.html#ga19b9b07bc4b654fb5a464b52baed2b95" 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);               
-<a name="l00117"></a>00117         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="a00167.html#ga66999872051fdf1934199af093eedece" title="Double-precision floating-point vector of 4 components.">f64vec4</a> <a class="code" href="a00172.html#ga29317ef1aeea12967d230043b777c95e" 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);               
-<a name="l00118"></a>00118 
-<a name="l00120"></a>00120 }<span class="comment">//namespace glm</span>
-<a name="l00121"></a>00121 
-<a name="l00122"></a>00122 <span class="preprocessor">#include &quot;color_cast.inl&quot;</span>
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124 <span class="preprocessor">#endif//GLM_GTX_color_cast</span>
-</pre></div></div>
-</div>
+<a name="l00101"></a>00101     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00102"></a>00102         genType <a class="code" href="a00127.html#ga855fc5fd7779df1683482564956c6764" title="If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N.">faceforward</a>(
+<a name="l00103"></a>00103                 genType <span class="keyword">const</span> &amp; N, 
+<a name="l00104"></a>00104                 genType <span class="keyword">const</span> &amp; I, 
+<a name="l00105"></a>00105                 genType <span class="keyword">const</span> &amp; Nref);
+<a name="l00106"></a>00106   
+<a name="l00114"></a>00114     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00115"></a>00115         genType <a class="code" href="a00127.html#gabe1fa0bef5f854242eb70ce56e5a7d03" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">reflect</a>(
+<a name="l00116"></a>00116                 genType <span class="keyword">const</span> &amp; I, 
+<a name="l00117"></a>00117                 genType <span class="keyword">const</span> &amp; N);
+<a name="l00118"></a>00118   
+<a name="l00127"></a>00127     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00128"></a>00128         genType <a class="code" href="a00127.html#gabbb4909d3e99a7a2411cc63252afbbd8" title="For the incident vector I and surface normal N, and the ratio of indices of refraction eta...">refract</a>(
+<a name="l00129"></a>00129                 genType <span class="keyword">const</span> &amp; I, 
+<a name="l00130"></a>00130                 genType <span class="keyword">const</span> &amp; N, 
+<a name="l00131"></a>00131                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; eta);
+<a name="l00132"></a>00132 
+<a name="l00134"></a>00134 }<span class="comment">//namespace glm</span>
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136 <span class="preprocessor">#include &quot;func_geometric.inl&quot;</span>
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138 <span class="preprocessor">#endif//glm_core_func_geometric</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 32 - 23
doc/api-0.9.3/a00028.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>color_space.hpp File Reference</title>
+<title>func_integer.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -51,45 +52,53 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">color_space.hpp File Reference</div>  </div>
-</div>
+<div class="title">func_integer.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00028_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga434478ff2e692c2bc9fbe4d3a05570ea">hsvColor</a> (detail::tvec3&lt; valType &gt; const &amp;rgbValue)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaf9db3b89515c57d9d955b70a97c10f91">luminosity</a> (detail::tvec3&lt; valType &gt; const &amp;color)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga0106a26e8ceac4e83b428979eb70c6e5">rgbColor</a> (detail::tvec3&lt; valType &gt; const &amp;hsvValue)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga81289d2f4a42f70d5cf66dbb6e75dc97">saturation</a> (valType const s)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga54a479f39450ab45417f5d48abee5fb2">saturation</a> (valType const s, detail::tvec3&lt; valType &gt; const &amp;color)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga2bdc5f77884c822b0dbc92d74a649d87">saturation</a> (valType const s, detail::tvec4&lt; valType &gt; const &amp;color)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class genIUType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#ga5c4d37c42926b09be4384a9656f73ee4">bitCount</a> (genIUType&lt; T &gt; const &amp;Value)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#gaeae27fd61779ae93b8d0fa9cef142c3d">bitfieldExtract</a> (genIUType const &amp;Value, int const &amp;Offset, int const &amp;Bits)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#ga490b328e7b5d06b477ede4a59edfb798">bitfieldInsert</a> (genIUType const &amp;Base, genIUType const &amp;Insert, int const &amp;Offset, int const &amp;Bits)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#gac36ad04d509817f2f4769d45f13f43e5">bitfieldReverse</a> (genIUType const &amp;value)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class genIUType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#gaf921488d20990ec15f3fde3d1db919f0">findLSB</a> (genIUType&lt; T &gt; const &amp;Value)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class genIUType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#gaa17f942299cb7a51c60155f9e78228f3">findMSB</a> (genIUType&lt; T &gt; const &amp;Value)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#gab0eaec4d0964925429322eebf8dca6d0">imulExtended</a> (genIType const &amp;x, genIType const &amp;y, genIType &amp;msb, genIType &amp;lsb)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#ga7d96efb73301e722a527b912f05f6ac0">uaddCarry</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;carry)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#ga8e89fcd6b0e2cd96cd2e1b69fdb7afd9">umulExtended</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;msb, genUType &amp;lsb)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00128.html#gacd727c8bb8bda7a509773f9f204ab5a1">usubBorrow</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;borrow)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00173.html">GLM_GTX_color_space: RGB to HSV conversion</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2010-03-17 / 2011-06-18 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
 
-<p>Definition in file <a class="el" href="a00028_source.html">color_space.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00028_source.html">func_integer.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 70 - 50
doc/api-0.9.3/a00028_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>color_space.hpp Source File</title>
+<title>func_integer.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">color_space.hpp</div>  </div>
-</div>
+<div class="title">func_integer.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00028.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -88,58 +90,76 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_color_space</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_color_space GLM_VERSION</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef glm_core_func_integer</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_func_integer GLM_VERSION</span>
 <a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_color_space extension included&quot;)</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span>
-<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
-<a name="l00049"></a>00049 {
-<a name="l00052"></a>00052 
-<a name="l00055"></a>00055     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00056"></a>00056         detail::tvec3&lt;valType&gt; <a class="code" href="a00173.html#ga0106a26e8ceac4e83b428979eb70c6e5" title="Converts a color from HSV color space to its color in RGB color space.">rgbColor</a>(
-<a name="l00057"></a>00057                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; hsvValue);
-<a name="l00058"></a>00058 
-<a name="l00061"></a>00061     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00062"></a>00062         detail::tvec3&lt;valType&gt; <a class="code" href="a00173.html#ga434478ff2e692c2bc9fbe4d3a05570ea" title="Converts a color from RGB color space to its color in HSV color space.">hsvColor</a>(
-<a name="l00063"></a>00063                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; rgbValue);
-<a name="l00064"></a>00064                 
-<a name="l00067"></a>00067     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00068"></a>00068         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00173.html#ga81289d2f4a42f70d5cf66dbb6e75dc97" title="Build a saturation matrix.">saturation</a>(
-<a name="l00069"></a>00069                 valType <span class="keyword">const</span> s);
-<a name="l00070"></a>00070 
-<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00074"></a>00074         detail::tvec3&lt;valType&gt; <a class="code" href="a00173.html#ga81289d2f4a42f70d5cf66dbb6e75dc97" title="Build a saturation matrix.">saturation</a>(
-<a name="l00075"></a>00075                 valType <span class="keyword">const</span> s, 
-<a name="l00076"></a>00076                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; color);
-<a name="l00077"></a>00077                 
-<a name="l00080"></a>00080     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00081"></a>00081         detail::tvec4&lt;valType&gt; <a class="code" href="a00173.html#ga81289d2f4a42f70d5cf66dbb6e75dc97" title="Build a saturation matrix.">saturation</a>(
-<a name="l00082"></a>00082                 valType <span class="keyword">const</span> s, 
-<a name="l00083"></a>00083                 detail::tvec4&lt;valType&gt; <span class="keyword">const</span> &amp; color);
-<a name="l00084"></a>00084                 
-<a name="l00087"></a>00087         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00088"></a>00088         valType <a class="code" href="a00173.html#gaf9db3b89515c57d9d955b70a97c10f91" title="Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.">luminosity</a>(
-<a name="l00089"></a>00089                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; color);
-<a name="l00090"></a>00090 
-<a name="l00092"></a>00092 }<span class="comment">//namespace glm</span>
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094 <span class="preprocessor">#include &quot;color_space.inl&quot;</span>
-<a name="l00095"></a>00095 
-<a name="l00096"></a>00096 <span class="preprocessor">#endif//GLM_GTX_color_space</span>
-</pre></div></div>
-</div>
+<a name="l00041"></a>00041 <span class="keyword">namespace </span>glm
+<a name="l00042"></a>00042 {
+<a name="l00045"></a>00045 
+<a name="l00054"></a>00054         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
+<a name="l00055"></a>00055         genUType <a class="code" href="a00128.html#ga7d96efb73301e722a527b912f05f6ac0" title="Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).">uaddCarry</a>(
+<a name="l00056"></a>00056                 genUType <span class="keyword">const</span> &amp; x, 
+<a name="l00057"></a>00057                 genUType <span class="keyword">const</span> &amp; y, 
+<a name="l00058"></a>00058                 genUType &amp; carry);
+<a name="l00059"></a>00059 
+<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
+<a name="l00069"></a>00069         genUType <a class="code" href="a00128.html#gacd727c8bb8bda7a509773f9f204ab5a1" 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>(
+<a name="l00070"></a>00070                 genUType <span class="keyword">const</span> &amp; x, 
+<a name="l00071"></a>00071                 genUType <span class="keyword">const</span> &amp; y, 
+<a name="l00072"></a>00072                 genUType &amp; borrow);
+<a name="l00073"></a>00073                 
+<a name="l00082"></a>00082         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
+<a name="l00083"></a>00083         <span class="keywordtype">void</span> <a class="code" href="a00128.html#ga8e89fcd6b0e2cd96cd2e1b69fdb7afd9" title="Multiplies 32-bit integers x and y, producing a 64-bit result.">umulExtended</a>(
+<a name="l00084"></a>00084                 genUType <span class="keyword">const</span> &amp; x, 
+<a name="l00085"></a>00085                 genUType <span class="keyword">const</span> &amp; y, 
+<a name="l00086"></a>00086                 genUType &amp; msb, 
+<a name="l00087"></a>00087                 genUType &amp; lsb);
+<a name="l00088"></a>00088                 
+<a name="l00097"></a>00097         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIType&gt;
+<a name="l00098"></a>00098         <span class="keywordtype">void</span> <a class="code" href="a00128.html#gab0eaec4d0964925429322eebf8dca6d0" title="Multiplies 32-bit integers x and y, producing a 64-bit result.">imulExtended</a>(
+<a name="l00099"></a>00099                 genIType <span class="keyword">const</span> &amp; x, 
+<a name="l00100"></a>00100                 genIType <span class="keyword">const</span> &amp; y, 
+<a name="l00101"></a>00101                 genIType &amp; msb, 
+<a name="l00102"></a>00102                 genIType &amp; lsb);
+<a name="l00103"></a>00103 
+<a name="l00119"></a>00119         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
+<a name="l00120"></a>00120         genIUType <a class="code" href="a00128.html#gaeae27fd61779ae93b8d0fa9cef142c3d" title="Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...">bitfieldExtract</a>(
+<a name="l00121"></a>00121                 genIUType <span class="keyword">const</span> &amp; Value, 
+<a name="l00122"></a>00122                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Offset, 
+<a name="l00123"></a>00123                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Bits);
+<a name="l00124"></a>00124 
+<a name="l00139"></a>00139         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
+<a name="l00140"></a>00140         genIUType <a class="code" href="a00128.html#ga490b328e7b5d06b477ede4a59edfb798" title="Returns the insertion the bits least-significant bits of insert into base.">bitfieldInsert</a>(
+<a name="l00141"></a>00141                 genIUType <span class="keyword">const</span> &amp; Base, 
+<a name="l00142"></a>00142                 genIUType <span class="keyword">const</span> &amp; Insert, 
+<a name="l00143"></a>00143                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Offset, 
+<a name="l00144"></a>00144                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Bits);
+<a name="l00145"></a>00145 
+<a name="l00154"></a>00154         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
+<a name="l00155"></a>00155         genIUType <a class="code" href="a00128.html#gac36ad04d509817f2f4769d45f13f43e5" title="Returns the reversal of the bits of value.">bitfieldReverse</a>(genIUType <span class="keyword">const</span> &amp; value);
+<a name="l00156"></a>00156                 
+<a name="l00165"></a>00165         <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>genIUType&gt;
+<a name="l00166"></a>00166         <span class="keyword">typename</span> genIUType&lt;T&gt;::signed_type <a class="code" href="a00128.html#ga5c4d37c42926b09be4384a9656f73ee4" title="Returns the number of bits set to 1 in the binary representation of value.">bitCount</a>(genIUType&lt;T&gt; <span class="keyword">const</span> &amp; Value);
+<a name="l00167"></a>00167 
+<a name="l00178"></a>00178         <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>genIUType&gt;
+<a name="l00179"></a>00179         <span class="keyword">typename</span> genIUType&lt;T&gt;::signed_type <a class="code" href="a00128.html#gaf921488d20990ec15f3fde3d1db919f0" title="Returns the bit number of the least significant bit set to 1 in the binary representation of value...">findLSB</a>(genIUType&lt;T&gt; <span class="keyword">const</span> &amp; Value);
+<a name="l00180"></a>00180 
+<a name="l00192"></a>00192         <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>genIUType&gt;
+<a name="l00193"></a>00193         <span class="keyword">typename</span> genIUType&lt;T&gt;::signed_type <a class="code" href="a00128.html#gaa17f942299cb7a51c60155f9e78228f3" title="Returns the bit number of the most significant bit in the binary representation of value...">findMSB</a>(genIUType&lt;T&gt; <span class="keyword">const</span> &amp; Value);
+<a name="l00194"></a>00194 
+<a name="l00196"></a>00196 }<span class="comment">//namespace glm</span>
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198 <span class="preprocessor">#include &quot;func_integer.inl&quot;</span>
+<a name="l00199"></a>00199 
+<a name="l00200"></a>00200 <span class="preprocessor">#endif//glm_core_func_integer</span>
+<a name="l00201"></a>00201 <span class="preprocessor"></span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 29 - 15
doc/api-0.9.3/a00029.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>color_space_YCoCg.hpp File Reference</title>
+<title>func_matrix.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -51,8 +52,8 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">color_space_YCoCg.hpp File Reference</div>  </div>
-</div>
+<div class="title">func_matrix.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00029_source.html">Go to the source code of this file.</a></p>
@@ -60,32 +61,45 @@
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gab20f748db32bddb4827540525b07d8b3">rgb2YCoCg</a> (detail::tvec3&lt; valType &gt; const &amp;rgbColor)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; valType &gt;<br class="typebreak"/>
+::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#gad3bfb2098e1572d2131a261c1fb76dd4">determinant</a> (detail::tmat2x2&lt; valType &gt; const &amp;m)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;<br class="typebreak"/>
+::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#ga2f26bb474e077cf03b9db23f813e8450">determinant</a> (detail::tmat3x3&lt; valType &gt; const &amp;m)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;<br class="typebreak"/>
+::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#ga1daa306eecf6e8b379626d761b8c222f">determinant</a> (detail::tmat4x4&lt; valType &gt; const &amp;m)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga7e645d149831276186197f7afc292104">rgb2YCoCgR</a> (detail::tvec3&lt; valType &gt; const &amp;rgbColor)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#gada3384a86cf38a1fd96275194b8ba8c0">inverse</a> (detail::tmat2x2&lt; valType &gt; const &amp;m)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga0dd1385c2b2b56936a3abb0473c30cde">YCoCg2rgb</a> (detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#ga1a455651f7ba323ade0cd9191542b179">inverse</a> (detail::tmat3x3&lt; valType &gt; const &amp;m)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga732af29818632e3d280ee865439ec9f7">YCoCgR2rgb</a> (detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#gabc94b29dea14e111e48bc963c47559b2">inverse</a> (detail::tmat4x4&lt; valType &gt; const &amp;m)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#ga0e48491a51b3f366d671c01894705605">matrixCompMult</a> (matType const &amp;x, matType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType , typename matType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#ga5d896e8651512fc098a677dbe403eeac">outerProduct</a> (vecType const &amp;c, vecType const &amp;r)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">matType::transpose_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00129.html#gac58a4106a57fb7da41b3aeae3832998b">transpose</a> (matType const &amp;x)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00174.html">GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2008-10-28 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-03 / 2011-06-15 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
 
-<p>Definition in file <a class="el" href="a00029_source.html">color_space_YCoCg.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00029_source.html">func_matrix.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 59 - 41
doc/api-0.9.3/a00029_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>color_space_YCoCg.hpp Source File</title>
+<title>func_matrix.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">color_space_YCoCg.hpp</div>  </div>
-</div>
+<div class="title">func_matrix.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00029.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -88,48 +90,64 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef glm_gtx_color_space_YCoCg</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define glm_gtx_color_space_YCoCg GLM_VERSION</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_color_space_YCoCg extension included&quot;)</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span>
-<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
-<a name="l00049"></a>00049 {
-<a name="l00052"></a>00052 
-<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00056"></a>00056         detail::tvec3&lt;valType&gt; <a class="code" href="a00174.html#gab20f748db32bddb4827540525b07d8b3" title="Convert a color from RGB color space to YCoCg color space.">rgb2YCoCg</a>(
-<a name="l00057"></a>00057                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00173.html#ga0106a26e8ceac4e83b428979eb70c6e5" title="Converts a color from HSV color space to its color in RGB color space.">rgbColor</a>);
-<a name="l00058"></a>00058 
-<a name="l00061"></a>00061     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00062"></a>00062         detail::tvec3&lt;valType&gt; <a class="code" href="a00174.html#ga0dd1385c2b2b56936a3abb0473c30cde" title="Convert a color from YCoCg color space to RGB color space.">YCoCg2rgb</a>(
-<a name="l00063"></a>00063                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; YCoCgColor);
-<a name="l00064"></a>00064 
-<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00069"></a>00069         detail::tvec3&lt;valType&gt; <a class="code" href="a00174.html#ga7e645d149831276186197f7afc292104" title="Convert a color from RGB color space to YCoCgR color space.">rgb2YCoCgR</a>(
-<a name="l00070"></a>00070                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00173.html#ga0106a26e8ceac4e83b428979eb70c6e5" title="Converts a color from HSV color space to its color in RGB color space.">rgbColor</a>);
-<a name="l00071"></a>00071 
-<a name="l00075"></a>00075     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00076"></a>00076         detail::tvec3&lt;valType&gt; <a class="code" href="a00174.html#ga732af29818632e3d280ee865439ec9f7" title="Convert a color from YCoCgR color space to RGB color space.">YCoCgR2rgb</a>(
-<a name="l00077"></a>00077                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; YCoCgColor);
-<a name="l00078"></a>00078 
-<a name="l00080"></a>00080 }<span class="comment">//namespace glm</span>
-<a name="l00081"></a>00081 
-<a name="l00082"></a>00082 <span class="preprocessor">#include &quot;color_space_YCoCg.inl&quot;</span>
-<a name="l00083"></a>00083 
-<a name="l00084"></a>00084 <span class="preprocessor">#endif//glm_gtx_color_space_YCoCg</span>
-</pre></div></div>
-</div>
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="preprocessor">#ifndef GLM_CORE_func_matrix</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_matrix GLM_VERSION</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span>
+<a name="l00043"></a>00043 <span class="keyword">namespace </span>glm
+<a name="l00044"></a>00044 {
+<a name="l00047"></a>00047 
+<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> matType&gt; 
+<a name="l00056"></a>00056         matType <a class="code" href="a00129.html#ga0e48491a51b3f366d671c01894705605" 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>(
+<a name="l00057"></a>00057                 matType <span class="keyword">const</span> &amp; x, 
+<a name="l00058"></a>00058                 matType <span class="keyword">const</span> &amp; y);
+<a name="l00059"></a>00059 
+<a name="l00070"></a>00070     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType, <span class="keyword">typename</span> matType&gt; 
+<a name="l00071"></a>00071         matType <a class="code" href="a00129.html#ga5d896e8651512fc098a677dbe403eeac" title="Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...">outerProduct</a>(
+<a name="l00072"></a>00072                 vecType <span class="keyword">const</span> &amp; c, 
+<a name="l00073"></a>00073                 vecType <span class="keyword">const</span> &amp; r);
+<a name="l00074"></a>00074 
+<a name="l00081"></a>00081     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> matType&gt; 
+<a name="l00082"></a>00082         <span class="keyword">typename</span> matType::transpose_type <a class="code" href="a00129.html#gac58a4106a57fb7da41b3aeae3832998b" title="Returns the transposed matrix of x.">transpose</a>(
+<a name="l00083"></a>00083                 matType <span class="keyword">const</span> &amp; x);
+<a name="l00084"></a>00084         
+<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00092"></a>00092         <span class="keyword">typename</span> detail::tmat2x2&lt;valType&gt;::value_type <a class="code" href="a00129.html#gad3bfb2098e1572d2131a261c1fb76dd4" title="Return the determinant of a mat2 matrix.">determinant</a>(
+<a name="l00093"></a>00093                 detail::tmat2x2&lt;valType&gt; <span class="keyword">const</span> &amp; m);
+<a name="l00094"></a>00094 
+<a name="l00101"></a>00101         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00102"></a>00102         <span class="keyword">typename</span> detail::tmat3x3&lt;valType&gt;::value_type <a class="code" href="a00129.html#gad3bfb2098e1572d2131a261c1fb76dd4" title="Return the determinant of a mat2 matrix.">determinant</a>(
+<a name="l00103"></a>00103                 detail::tmat3x3&lt;valType&gt; <span class="keyword">const</span> &amp; m);
+<a name="l00104"></a>00104 
+<a name="l00111"></a>00111     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00112"></a>00112         <span class="keyword">typename</span> detail::tmat4x4&lt;valType&gt;::value_type <a class="code" href="a00129.html#gad3bfb2098e1572d2131a261c1fb76dd4" title="Return the determinant of a mat2 matrix.">determinant</a>(
+<a name="l00113"></a>00113                 detail::tmat4x4&lt;valType&gt; <span class="keyword">const</span> &amp; m);
+<a name="l00114"></a>00114 
+<a name="l00121"></a>00121         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00122"></a>00122         detail::tmat2x2&lt;valType&gt; <a class="code" href="a00129.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(
+<a name="l00123"></a>00123                 detail::tmat2x2&lt;valType&gt; <span class="keyword">const</span> &amp; m);
+<a name="l00124"></a>00124 
+<a name="l00131"></a>00131         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00132"></a>00132         detail::tmat3x3&lt;valType&gt; <a class="code" href="a00129.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(
+<a name="l00133"></a>00133                 detail::tmat3x3&lt;valType&gt; <span class="keyword">const</span> &amp; m);
+<a name="l00134"></a>00134 
+<a name="l00141"></a>00141         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
+<a name="l00142"></a>00142         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00129.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(
+<a name="l00143"></a>00143                 detail::tmat4x4&lt;valType&gt; <span class="keyword">const</span> &amp; m);
+<a name="l00144"></a>00144 
+<a name="l00146"></a>00146 }<span class="comment">//namespace glm</span>
+<a name="l00147"></a>00147 
+<a name="l00148"></a>00148 <span class="preprocessor">#include &quot;func_matrix.inl&quot;</span>
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150 <span class="preprocessor">#endif//GLM_CORE_func_matrix</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 21 - 257
doc/api-0.9.3/a00030.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>compatibility.hpp File Reference</title>
+<title>func_noise.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -49,283 +50,46 @@
 </div>
 <div class="header">
   <div class="summary">
-<a href="#typedef-members">Typedefs</a> &#124;
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">compatibility.hpp File Reference</div>  </div>
-</div>
+<div class="title">func_noise.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00030_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr><td colspan="2"><h2><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a><!-- doxytag: member="compatibility.hpp::bool1" ref="gaddcd7aa2e30e61af5b38660613d3979e" args="" -->
-typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a><!-- doxytag: member="compatibility.hpp::bool1x1" ref="ga7f895c936f0c29c8729afbbf22806090" args="" -->
-typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88cfb6bf63a7fd1f03fe5abeae2aec1d"></a><!-- doxytag: member="compatibility.hpp::bool2" ref="ga88cfb6bf63a7fd1f03fe5abeae2aec1d" args="" -->
-typedef detail::tvec2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">bool2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga51dfdd84c191d9433ebf5e626af2c1f9"></a><!-- doxytag: member="compatibility.hpp::bool2x2" ref="ga51dfdd84c191d9433ebf5e626af2c1f9" args="" -->
-typedef detail::tmat2x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga51dfdd84c191d9433ebf5e626af2c1f9">bool2x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3982a05435c6c2d492b747f8adf6b9e0"></a><!-- doxytag: member="compatibility.hpp::bool2x3" ref="ga3982a05435c6c2d492b747f8adf6b9e0" args="" -->
-typedef detail::tmat2x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga3982a05435c6c2d492b747f8adf6b9e0">bool2x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78a505943e47244f4495d07e4884c318"></a><!-- doxytag: member="compatibility.hpp::bool2x4" ref="ga78a505943e47244f4495d07e4884c318" args="" -->
-typedef detail::tmat2x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga78a505943e47244f4495d07e4884c318">bool2x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade36f151806e985eec29fdf96ae6a2bb"></a><!-- doxytag: member="compatibility.hpp::bool3" ref="gade36f151806e985eec29fdf96ae6a2bb" args="" -->
-typedef detail::tvec3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gade36f151806e985eec29fdf96ae6a2bb">bool3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf4e8c9209cfd75ac029f8d95e9520e2d"></a><!-- doxytag: member="compatibility.hpp::bool3x2" ref="gaf4e8c9209cfd75ac029f8d95e9520e2d" args="" -->
-typedef detail::tmat3x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">bool3x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga977c0274e9364b129774aedb65b3dcbd"></a><!-- doxytag: member="compatibility.hpp::bool3x3" ref="ga977c0274e9364b129774aedb65b3dcbd" args="" -->
-typedef detail::tmat3x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga977c0274e9364b129774aedb65b3dcbd">bool3x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5174a0758ee4bc91a51b1eb7b100a416"></a><!-- doxytag: member="compatibility.hpp::bool3x4" ref="ga5174a0758ee4bc91a51b1eb7b100a416" args="" -->
-typedef detail::tmat3x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga5174a0758ee4bc91a51b1eb7b100a416">bool3x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ee8c362caed549a5a83fdd9db6ec6c2"></a><!-- doxytag: member="compatibility.hpp::bool4" ref="ga1ee8c362caed549a5a83fdd9db6ec6c2" args="" -->
-typedef detail::tvec4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">bool4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga590198580792550bff2a6bd7f811c8d9"></a><!-- doxytag: member="compatibility.hpp::bool4x2" ref="ga590198580792550bff2a6bd7f811c8d9" args="" -->
-typedef detail::tmat4x2&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga590198580792550bff2a6bd7f811c8d9">bool4x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8ac5c2c5db2f164ae2e25d1b9898a6b"></a><!-- doxytag: member="compatibility.hpp::bool4x3" ref="gac8ac5c2c5db2f164ae2e25d1b9898a6b" args="" -->
-typedef detail::tmat4x3&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">bool4x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac437f71eba4fabf6d7551f1889af2ea5"></a><!-- doxytag: member="compatibility.hpp::bool4x4" ref="gac437f71eba4fabf6d7551f1889af2ea5" args="" -->
-typedef detail::tmat4x4&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gac437f71eba4fabf6d7551f1889af2ea5">bool4x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a><!-- doxytag: member="compatibility.hpp::double1" ref="ga20b861a9b6e2a300323671c57a02525b" args="" -->
-typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a><!-- doxytag: member="compatibility.hpp::double1x1" ref="ga45f16a4dd0db1f199afaed9fd12fe9a8" args="" -->
-typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a2bed57d1cc7209ee6d027010bc96b6"></a><!-- doxytag: member="compatibility.hpp::double2" ref="ga7a2bed57d1cc7209ee6d027010bc96b6" args="" -->
-typedef detail::tvec2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga7a2bed57d1cc7209ee6d027010bc96b6">double2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96772f5981821b9e80c572481e37f220"></a><!-- doxytag: member="compatibility.hpp::double2x2" ref="ga96772f5981821b9e80c572481e37f220" args="" -->
-typedef detail::tmat2x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga96772f5981821b9e80c572481e37f220">double2x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07bbc143dfea7838be68d63c114317f4"></a><!-- doxytag: member="compatibility.hpp::double2x3" ref="ga07bbc143dfea7838be68d63c114317f4" args="" -->
-typedef detail::tmat2x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga07bbc143dfea7838be68d63c114317f4">double2x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e68c0a16e5684f44d86faac2a7d6810"></a><!-- doxytag: member="compatibility.hpp::double2x4" ref="ga1e68c0a16e5684f44d86faac2a7d6810" args="" -->
-typedef detail::tmat2x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga1e68c0a16e5684f44d86faac2a7d6810">double2x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed0358fe1eb696b655a13eac4ececb2a"></a><!-- doxytag: member="compatibility.hpp::double3" ref="gaed0358fe1eb696b655a13eac4ececb2a" args="" -->
-typedef detail::tvec3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaed0358fe1eb696b655a13eac4ececb2a">double3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e8dd2531703ce00b253ddd3c0c6eaca"></a><!-- doxytag: member="compatibility.hpp::double3x2" ref="ga6e8dd2531703ce00b253ddd3c0c6eaca" args="" -->
-typedef detail::tmat3x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">double3x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5dfb1357edcef48fcfdf9908906ae086"></a><!-- doxytag: member="compatibility.hpp::double3x3" ref="ga5dfb1357edcef48fcfdf9908906ae086" args="" -->
-typedef detail::tmat3x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga5dfb1357edcef48fcfdf9908906ae086">double3x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3b83eafbc284acce070855469c39b991"></a><!-- doxytag: member="compatibility.hpp::double3x4" ref="ga3b83eafbc284acce070855469c39b991" args="" -->
-typedef detail::tmat3x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga3b83eafbc284acce070855469c39b991">double3x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace0ba846c7443d0d56abb0ca3e61469d"></a><!-- doxytag: member="compatibility.hpp::double4" ref="gace0ba846c7443d0d56abb0ca3e61469d" args="" -->
-typedef detail::tvec4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gace0ba846c7443d0d56abb0ca3e61469d">double4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19c9ec02aa62b78e9709c4b2e2ae6f35"></a><!-- doxytag: member="compatibility.hpp::double4x2" ref="ga19c9ec02aa62b78e9709c4b2e2ae6f35" args="" -->
-typedef detail::tmat4x2&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">double4x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53c7dc9532c324aefb75a5f08033cd12"></a><!-- doxytag: member="compatibility.hpp::double4x3" ref="ga53c7dc9532c324aefb75a5f08033cd12" args="" -->
-typedef detail::tmat4x3&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga53c7dc9532c324aefb75a5f08033cd12">double4x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2cc8e4fa772bfc5c1cada72ee5cadaf8"></a><!-- doxytag: member="compatibility.hpp::double4x4" ref="ga2cc8e4fa772bfc5c1cada72ee5cadaf8" args="" -->
-typedef detail::tmat4x4&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">double4x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a><!-- doxytag: member="compatibility.hpp::float1" ref="gaf5208d01f6c6fbcb7bb55d610b9c0ead" args="" -->
-typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a><!-- doxytag: member="compatibility.hpp::float1x1" ref="ga73720b8dc4620835b17f74d428f98c0c" args="" -->
-typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36aed7f41ff3a1be99f215754f43376f"></a><!-- doxytag: member="compatibility.hpp::float2" ref="ga36aed7f41ff3a1be99f215754f43376f" args="" -->
-typedef detail::tvec2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga36aed7f41ff3a1be99f215754f43376f">float2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf8d19b6f81f5cb8151f37c66c15691fa"></a><!-- doxytag: member="compatibility.hpp::float2x2" ref="gaf8d19b6f81f5cb8151f37c66c15691fa" args="" -->
-typedef detail::tmat2x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaf8d19b6f81f5cb8151f37c66c15691fa">float2x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaafc2b478b36de8b9da6fe1e0f88f68d4"></a><!-- doxytag: member="compatibility.hpp::float2x3" ref="gaafc2b478b36de8b9da6fe1e0f88f68d4" args="" -->
-typedef detail::tmat2x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">float2x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga77d14ba22d90b0af72a1572ee1bd9458"></a><!-- doxytag: member="compatibility.hpp::float2x4" ref="ga77d14ba22d90b0af72a1572ee1bd9458" args="" -->
-typedef detail::tmat2x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga77d14ba22d90b0af72a1572ee1bd9458">float2x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1fe9cc8caced9aa000c36ca3c0a046ab"></a><!-- doxytag: member="compatibility.hpp::float3" ref="ga1fe9cc8caced9aa000c36ca3c0a046ab" args="" -->
-typedef detail::tvec3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">float3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga46c62307ff5e8418d27be225c1187e25"></a><!-- doxytag: member="compatibility.hpp::float3x2" ref="ga46c62307ff5e8418d27be225c1187e25" args="" -->
-typedef detail::tmat3x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga46c62307ff5e8418d27be225c1187e25">float3x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5e6e08a42341c82268a4a94a02f7b016"></a><!-- doxytag: member="compatibility.hpp::float3x3" ref="ga5e6e08a42341c82268a4a94a02f7b016" args="" -->
-typedef detail::tmat3x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga5e6e08a42341c82268a4a94a02f7b016">float3x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14a4142cbea2f8ade68c6c4ca0bca2e6"></a><!-- doxytag: member="compatibility.hpp::float3x4" ref="ga14a4142cbea2f8ade68c6c4ca0bca2e6" args="" -->
-typedef detail::tmat3x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">float3x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1b1ca9850faf4c3ffddf95093a17b49c"></a><!-- doxytag: member="compatibility.hpp::float4" ref="ga1b1ca9850faf4c3ffddf95093a17b49c" args="" -->
-typedef detail::tvec4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga1b1ca9850faf4c3ffddf95093a17b49c">float4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7d53a0bdb8ce3ea6f26483d03a93309c"></a><!-- doxytag: member="compatibility.hpp::float4x2" ref="ga7d53a0bdb8ce3ea6f26483d03a93309c" args="" -->
-typedef detail::tmat4x2&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">float4x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90ec9566c9961638c70e2ba2e3fd94fc"></a><!-- doxytag: member="compatibility.hpp::float4x3" ref="ga90ec9566c9961638c70e2ba2e3fd94fc" args="" -->
-typedef detail::tmat4x3&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga90ec9566c9961638c70e2ba2e3fd94fc">float4x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ab661a1b315e963ce81a7ebfb110aa7"></a><!-- doxytag: member="compatibility.hpp::float4x4" ref="ga1ab661a1b315e963ce81a7ebfb110aa7" args="" -->
-typedef detail::tmat4x4&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga1ab661a1b315e963ce81a7ebfb110aa7">float4x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9122ee020fa1c7ee8367cdd61dba446"></a><!-- doxytag: member="compatibility.hpp::half1" ref="gab9122ee020fa1c7ee8367cdd61dba446" args="" -->
-typedef detail::half&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gab9122ee020fa1c7ee8367cdd61dba446">half1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2e49b47cde1b38a4960e7dbb00ae8065"></a><!-- doxytag: member="compatibility.hpp::half1x1" ref="ga2e49b47cde1b38a4960e7dbb00ae8065" args="" -->
-typedef detail::half&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga2e49b47cde1b38a4960e7dbb00ae8065">half1x1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9f040b22207a0e1ee89ba72740b6ff13"></a><!-- doxytag: member="compatibility.hpp::half2" ref="ga9f040b22207a0e1ee89ba72740b6ff13" args="" -->
-typedef detail::tvec2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga9f040b22207a0e1ee89ba72740b6ff13">half2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8c6c5df23d5787f80038405e3324faf4"></a><!-- doxytag: member="compatibility.hpp::half2x2" ref="ga8c6c5df23d5787f80038405e3324faf4" args="" -->
-typedef detail::tmat2x2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga8c6c5df23d5787f80038405e3324faf4">half2x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gada75b670f9e96f7a793f1d29ff1d07a4"></a><!-- doxytag: member="compatibility.hpp::half2x3" ref="gada75b670f9e96f7a793f1d29ff1d07a4" args="" -->
-typedef detail::tmat2x3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gada75b670f9e96f7a793f1d29ff1d07a4">half2x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7307abcb1b9dc9ddd05bc30ca1d94679"></a><!-- doxytag: member="compatibility.hpp::half2x4" ref="ga7307abcb1b9dc9ddd05bc30ca1d94679" args="" -->
-typedef detail::tmat2x4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga7307abcb1b9dc9ddd05bc30ca1d94679">half2x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6d211076f0cefe2c02e2628f19349e12"></a><!-- doxytag: member="compatibility.hpp::half3" ref="ga6d211076f0cefe2c02e2628f19349e12" args="" -->
-typedef detail::tvec3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga6d211076f0cefe2c02e2628f19349e12">half3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf81aaf55b67acc097f337e1b93a7581f"></a><!-- doxytag: member="compatibility.hpp::half3x2" ref="gaf81aaf55b67acc097f337e1b93a7581f" args="" -->
-typedef detail::tmat3x2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaf81aaf55b67acc097f337e1b93a7581f">half3x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab897d9ce19ff4ecd4515f081d6ded2d2"></a><!-- doxytag: member="compatibility.hpp::half3x3" ref="gab897d9ce19ff4ecd4515f081d6ded2d2" args="" -->
-typedef detail::tmat3x3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gab897d9ce19ff4ecd4515f081d6ded2d2">half3x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab458f374e5e655c6a1165be4368b59d8"></a><!-- doxytag: member="compatibility.hpp::half3x4" ref="gab458f374e5e655c6a1165be4368b59d8" args="" -->
-typedef detail::tmat3x4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gab458f374e5e655c6a1165be4368b59d8">half3x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad1a750805ea267fcab6322671063a2ae"></a><!-- doxytag: member="compatibility.hpp::half4" ref="gad1a750805ea267fcab6322671063a2ae" args="" -->
-typedef detail::tvec4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gad1a750805ea267fcab6322671063a2ae">half4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac7470c149acdb082cce1ed0433b9641b"></a><!-- doxytag: member="compatibility.hpp::half4x2" ref="gac7470c149acdb082cce1ed0433b9641b" args="" -->
-typedef detail::tmat4x2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gac7470c149acdb082cce1ed0433b9641b">half4x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaac2f72bc824ec4100e8abef77c77e351"></a><!-- doxytag: member="compatibility.hpp::half4x3" ref="gaac2f72bc824ec4100e8abef77c77e351" args="" -->
-typedef detail::tmat4x3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaac2f72bc824ec4100e8abef77c77e351">half4x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga901cc903fdb2c483899d7b9c539f6370"></a><!-- doxytag: member="compatibility.hpp::half4x4" ref="ga901cc903fdb2c483899d7b9c539f6370" args="" -->
-typedef detail::tmat4x4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga901cc903fdb2c483899d7b9c539f6370">half4x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a><!-- doxytag: member="compatibility.hpp::int1" ref="ga0670a2111b5e4a6410bd027fa0232fc3" args="" -->
-typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a><!-- doxytag: member="compatibility.hpp::int1x1" ref="ga056ffe02d3a45af626f8e62221881c7a" args="" -->
-typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96b72b048dd3d9eb7caa93f9589b46a0"></a><!-- doxytag: member="compatibility.hpp::int2" ref="ga96b72b048dd3d9eb7caa93f9589b46a0" args="" -->
-typedef detail::tvec2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga96b72b048dd3d9eb7caa93f9589b46a0">int2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab7644293a70c1e329624f556b779edde"></a><!-- doxytag: member="compatibility.hpp::int2x2" ref="gab7644293a70c1e329624f556b779edde" args="" -->
-typedef detail::tmat2x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gab7644293a70c1e329624f556b779edde">int2x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2c5ace70f19d3916b43f25ab7ffbc95"></a><!-- doxytag: member="compatibility.hpp::int2x3" ref="gaf2c5ace70f19d3916b43f25ab7ffbc95" args="" -->
-typedef detail::tmat2x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">int2x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20ba14d42f3856221a0eb5194184bcf9"></a><!-- doxytag: member="compatibility.hpp::int2x4" ref="ga20ba14d42f3856221a0eb5194184bcf9" args="" -->
-typedef detail::tmat2x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga20ba14d42f3856221a0eb5194184bcf9">int2x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0e57fa71b1be1f6501d3985b7b7d4dac"></a><!-- doxytag: member="compatibility.hpp::int3" ref="ga0e57fa71b1be1f6501d3985b7b7d4dac" args="" -->
-typedef detail::tvec3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">int3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75bc457489f7d23f5ea56445c0b3fa3f"></a><!-- doxytag: member="compatibility.hpp::int3x2" ref="ga75bc457489f7d23f5ea56445c0b3fa3f" args="" -->
-typedef detail::tmat3x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga75bc457489f7d23f5ea56445c0b3fa3f">int3x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90d6b84bdde0d8247774aac30909ed03"></a><!-- doxytag: member="compatibility.hpp::int3x3" ref="ga90d6b84bdde0d8247774aac30909ed03" args="" -->
-typedef detail::tmat3x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga90d6b84bdde0d8247774aac30909ed03">int3x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91da3b288518f40c78ee1d0e1fb1cdb3"></a><!-- doxytag: member="compatibility.hpp::int3x4" ref="ga91da3b288518f40c78ee1d0e1fb1cdb3" args="" -->
-typedef detail::tmat3x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">int3x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga827bb0abe63248b0ae292a83ff55097a"></a><!-- doxytag: member="compatibility.hpp::int4" ref="ga827bb0abe63248b0ae292a83ff55097a" args="" -->
-typedef detail::tvec4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga827bb0abe63248b0ae292a83ff55097a">int4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9101cda6ad27c3d5aa596ef9baeca75d"></a><!-- doxytag: member="compatibility.hpp::int4x2" ref="ga9101cda6ad27c3d5aa596ef9baeca75d" args="" -->
-typedef detail::tmat4x2&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga9101cda6ad27c3d5aa596ef9baeca75d">int4x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f93d57c0c99fd11c353e952b107b036"></a><!-- doxytag: member="compatibility.hpp::int4x3" ref="ga5f93d57c0c99fd11c353e952b107b036" args="" -->
-typedef detail::tmat4x3&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#ga5f93d57c0c99fd11c353e952b107b036">int4x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd4827b69f52f6486625bf65d23fe53f"></a><!-- doxytag: member="compatibility.hpp::int4x4" ref="gacd4827b69f52f6486625bf65d23fe53f" args="" -->
-typedef detail::tmat4x4&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html#gacd4827b69f52f6486625bf65d23fe53f">int4x4</a></td></tr>
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabdc84536daab78c6a169eeb93cf9cb3b"></a><!-- doxytag: member="compatibility.hpp::atan2" ref="gabdc84536daab78c6a169eeb93cf9cb3b" args="(T x, T y)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gabdc84536daab78c6a169eeb93cf9cb3b">atan2</a> (T x, T y)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga808e842fd066ba7f41c71add20a02730"></a><!-- doxytag: member="compatibility.hpp::atan2" ref="ga808e842fd066ba7f41c71add20a02730" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga808e842fd066ba7f41c71add20a02730">atan2</a> (const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadd42ce7d69bb6a0e75c9f0945fbc2ab5"></a><!-- doxytag: member="compatibility.hpp::atan2" ref="gadd42ce7d69bb6a0e75c9f0945fbc2ab5" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gadd42ce7d69bb6a0e75c9f0945fbc2ab5">atan2</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga593a3c43b415ec4a8e87ccfb55570f64"></a><!-- doxytag: member="compatibility.hpp::atan2" ref="ga593a3c43b415ec4a8e87ccfb55570f64" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga593a3c43b415ec4a8e87ccfb55570f64">atan2</a> (const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga39d6ffe6d42d4ec33036e735d7c39781"></a><!-- doxytag: member="compatibility.hpp::isfinite" ref="ga39d6ffe6d42d4ec33036e735d7c39781" args="(genType const &amp;x)" -->
-template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga39d6ffe6d42d4ec33036e735d7c39781">isfinite</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga27e1d577ba4d885bdc15ab9bfac0387c"></a><!-- doxytag: member="compatibility.hpp::isfinite" ref="ga27e1d577ba4d885bdc15ab9bfac0387c" args="(const detail::tvec2&lt; valType &gt; &amp;x)" -->
-template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga27e1d577ba4d885bdc15ab9bfac0387c">isfinite</a> (const detail::tvec2&lt; valType &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga38d8d6db51bd5b3f91261c6d4ea579a4"></a><!-- doxytag: member="compatibility.hpp::isfinite" ref="ga38d8d6db51bd5b3f91261c6d4ea579a4" args="(const detail::tvec3&lt; valType &gt; &amp;x)" -->
-template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga38d8d6db51bd5b3f91261c6d4ea579a4">isfinite</a> (const detail::tvec3&lt; valType &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga9d50259dc8fc3462ea2eb849ca9efd6e"></a><!-- doxytag: member="compatibility.hpp::isfinite" ref="ga9d50259dc8fc3462ea2eb849ca9efd6e" args="(const detail::tvec4&lt; valType &gt; &amp;x)" -->
-template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga9d50259dc8fc3462ea2eb849ca9efd6e">isfinite</a> (const detail::tvec4&lt; valType &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaad179dda7199b95e30a99a96175eaf4a"></a><!-- doxytag: member="compatibility.hpp::isinf" ref="gaad179dda7199b95e30a99a96175eaf4a" args="(const detail::tvec2&lt; genType &gt; &amp;x)" -->
-template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaad179dda7199b95e30a99a96175eaf4a">isinf</a> (const detail::tvec2&lt; genType &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga940b22d2402a2cb159fc33cdfba00328"></a><!-- doxytag: member="compatibility.hpp::isinf" ref="ga940b22d2402a2cb159fc33cdfba00328" args="(const detail::tvec3&lt; genType &gt; &amp;x)" -->
-template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga940b22d2402a2cb159fc33cdfba00328">isinf</a> (const detail::tvec3&lt; genType &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0430134f74ffe7edc122447a27875d19"></a><!-- doxytag: member="compatibility.hpp::isinf" ref="ga0430134f74ffe7edc122447a27875d19" args="(const detail::tvec4&lt; genType &gt; &amp;x)" -->
-template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga0430134f74ffe7edc122447a27875d19">isinf</a> (const detail::tvec4&lt; genType &gt; &amp;x)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gaf1da75ac632eb4833cdd63255031d730">isinf</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaba159702c7174c893073d13ced033869"></a><!-- doxytag: member="compatibility.hpp::isnan" ref="gaba159702c7174c893073d13ced033869" args="(const detail::tvec2&lt; genType &gt; &amp;x)" -->
-template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaba159702c7174c893073d13ced033869">isnan</a> (const detail::tvec2&lt; genType &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga29b5a0b2ba4436084d21a69afa90544b"></a><!-- doxytag: member="compatibility.hpp::isnan" ref="ga29b5a0b2ba4436084d21a69afa90544b" args="(const detail::tvec3&lt; genType &gt; &amp;x)" -->
-template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga29b5a0b2ba4436084d21a69afa90544b">isnan</a> (const detail::tvec3&lt; genType &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaeeeb35a948042f7b22e9ba67587e5f43"></a><!-- doxytag: member="compatibility.hpp::isnan" ref="gaeeeb35a948042f7b22e9ba67587e5f43" args="(const detail::tvec4&lt; genType &gt; &amp;x)" -->
-template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaeeeb35a948042f7b22e9ba67587e5f43">isnan</a> (const detail::tvec4&lt; genType &gt; &amp;x)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00130.html#ga687ac48ae4591c0da916052e469aad74">noise1</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec2&lt; typename <br class="typebreak"/>
+genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00130.html#ga528fc75920119a7ab65ef6dccef28752">noise2</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; typename <br class="typebreak"/>
+genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00130.html#gaf1589bc1859b8dc53d737ece36b59b85">noise3</a> (genType const &amp;x)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gabcdbb01cf43c83e59777f2c5d855e315">isnan</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a><!-- doxytag: member="compatibility.hpp::lerp" ref="ga5494ba3a95ea6594c86fc75236886864" args="(T x, T y, T a)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga27390ee6e4797335f0a751e021038a41"></a><!-- doxytag: member="compatibility.hpp::lerp" ref="ga27390ee6e4797335f0a751e021038a41" args="(const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, T a)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga27390ee6e4797335f0a751e021038a41">lerp</a> (const detail::tvec2&lt; T &gt; &amp;x, const detail::tvec2&lt; T &gt; &amp;y, T a)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf2ca5584fe9c3a2e5e5b12bbfcecfe38"></a><!-- doxytag: member="compatibility.hpp::lerp" ref="gaf2ca5584fe9c3a2e5e5b12bbfcecfe38" args="(const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, T a)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaf2ca5584fe9c3a2e5e5b12bbfcecfe38">lerp</a> (const detail::tvec3&lt; T &gt; &amp;x, const detail::tvec3&lt; T &gt; &amp;y, T a)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae3cac5586d127568383d7df9d258a443"></a><!-- doxytag: member="compatibility.hpp::lerp" ref="gae3cac5586d127568383d7df9d258a443" args="(const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, T a)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gae3cac5586d127568383d7df9d258a443">lerp</a> (const detail::tvec4&lt; T &gt; &amp;x, const detail::tvec4&lt; T &gt; &amp;y, T a)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga535230f9887c77a056e535c3c7cf741c"></a><!-- doxytag: member="compatibility.hpp::lerp" ref="ga535230f9887c77a056e535c3c7cf741c" 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)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga535230f9887c77a056e535c3c7cf741c">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>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga9e840980e570e588d18793ecfe152bc4"></a><!-- doxytag: member="compatibility.hpp::lerp" ref="ga9e840980e570e588d18793ecfe152bc4" 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)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga9e840980e570e588d18793ecfe152bc4">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>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4f8591445ad6b900b0456dc2d01f8ee4"></a><!-- doxytag: member="compatibility.hpp::lerp" ref="ga4f8591445ad6b900b0456dc2d01f8ee4" 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)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga4f8591445ad6b900b0456dc2d01f8ee4">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>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga744b98814a35336e25cc0d1ba30f63f7"></a><!-- doxytag: member="compatibility.hpp::saturate" ref="ga744b98814a35336e25cc0d1ba30f63f7" args="(T x)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga744b98814a35336e25cc0d1ba30f63f7">saturate</a> (T x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga79ae98d7b28ae3095a653258b5aa2d9d"></a><!-- doxytag: member="compatibility.hpp::saturate" ref="ga79ae98d7b28ae3095a653258b5aa2d9d" args="(const detail::tvec2&lt; T &gt; &amp;x)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga79ae98d7b28ae3095a653258b5aa2d9d">saturate</a> (const detail::tvec2&lt; T &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaa1fd467493e144ce1b2043c776afdcd"></a><!-- doxytag: member="compatibility.hpp::saturate" ref="gaaa1fd467493e144ce1b2043c776afdcd" args="(const detail::tvec3&lt; T &gt; &amp;x)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaaa1fd467493e144ce1b2043c776afdcd">saturate</a> (const detail::tvec3&lt; T &gt; &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga71c18fe8bc1e69c2b3c11feb13cf6695"></a><!-- doxytag: member="compatibility.hpp::saturate" ref="ga71c18fe8bc1e69c2b3c11feb13cf6695" args="(const detail::tvec4&lt; T &gt; &amp;x)" -->
-template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER <br class="typebreak"/>
-detail::tvec4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga71c18fe8bc1e69c2b3c11feb13cf6695">saturate</a> (const detail::tvec4&lt; T &gt; &amp;x)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec4&lt; typename <br class="typebreak"/>
+genType::value_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00130.html#ga7b3cd0ab6f03142dd9ff3054e7fe5299">noise4</a> (genType const &amp;x)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00175.html">GLM_GTX_compatibility: Cg and HLSL compatibility</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2007-01-24 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-01 / 2011-06-18 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00158.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
 
-<p>Definition in file <a class="el" href="a00030_source.html">compatibility.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00030_source.html">func_noise.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 30 - 146
doc/api-0.9.3/a00030_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>compatibility.hpp Source File</title>
+<title>func_noise.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">compatibility.hpp</div>  </div>
-</div>
+<div class="title">func_noise.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00030.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -88,154 +90,36 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_compatibility</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_compatibility GLM_VERSION</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span>
-<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>  
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef glm_core_func_noise</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_func_noise GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="keyword">namespace </span>glm
+<a name="l00042"></a>00042 {
 <a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_compatibility extension included&quot;)</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_VC)</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#include &lt;cfloat&gt;</span>
-<a name="l00052"></a>00052 <span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#include &lt;cmath&gt;</span>
-<a name="l00054"></a>00054 <span class="preprocessor">#endif//GLM_COMPILER</span>
-<a name="l00055"></a>00055 <span class="preprocessor"></span>
-<a name="l00056"></a>00056 <span class="keyword">namespace </span>glm
-<a name="l00057"></a>00057 {
-<a name="l00060"></a>00060 
-<a name="l00061"></a><a class="code" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864">00061</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864" 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="a00142.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}                                                                                                                                                                    
-<a name="l00062"></a><a class="code" href="a00175.html#ga27390ee6e4797335f0a751e021038a41">00062</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; <a class="code" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864" 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="a00016.html">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00016.html">detail::tvec2&lt;T&gt;</a>&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}                                                 
-<a name="l00063"></a><a class="code" href="a00175.html#gaf2ca5584fe9c3a2e5e5b12bbfcecfe38">00063</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; <a class="code" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864" 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="a00017.html">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00017.html">detail::tvec3&lt;T&gt;</a>&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}                                                 
-<a name="l00064"></a><a class="code" href="a00175.html#gae3cac5586d127568383d7df9d258a443">00064</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; <a class="code" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864" 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="a00018.html">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00018.html">detail::tvec4&lt;T&gt;</a>&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}                                                 
-<a name="l00065"></a><a class="code" href="a00175.html#ga535230f9887c77a056e535c3c7cf741c">00065</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; <a class="code" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864" 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="a00016.html">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00016.html">detail::tvec2&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00016.html">detail::tvec2&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}   
-<a name="l00066"></a><a class="code" href="a00175.html#ga9e840980e570e588d18793ecfe152bc4">00066</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; <a class="code" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864" 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="a00017.html">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00017.html">detail::tvec3&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00017.html">detail::tvec3&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}   
-<a name="l00067"></a><a class="code" href="a00175.html#ga4f8591445ad6b900b0456dc2d01f8ee4">00067</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; <a class="code" href="a00175.html#ga5494ba3a95ea6594c86fc75236886864" 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="a00018.html">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00018.html">detail::tvec4&lt;T&gt;</a>&amp; y, <span class="keyword">const</span> <a class="code" href="a00018.html">detail::tvec4&lt;T&gt;</a>&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);}   
-<a name="l00068"></a>00068 
-<a name="l00069"></a><a class="code" href="a00175.html#ga744b98814a35336e25cc0d1ba30f63f7">00069</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00175.html#ga744b98814a35336e25cc0d1ba30f63f7" 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="a00142.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}                                                                                                          
-<a name="l00070"></a><a class="code" href="a00175.html#ga79ae98d7b28ae3095a653258b5aa2d9d">00070</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; <a class="code" href="a00175.html#ga744b98814a35336e25cc0d1ba30f63f7" 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="a00016.html">detail::tvec2&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}                                     
-<a name="l00071"></a><a class="code" href="a00175.html#gaaa1fd467493e144ce1b2043c776afdcd">00071</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; <a class="code" href="a00175.html#ga744b98814a35336e25cc0d1ba30f63f7" 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="a00017.html">detail::tvec3&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}                                     
-<a name="l00072"></a><a class="code" href="a00175.html#ga71c18fe8bc1e69c2b3c11feb13cf6695">00072</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; <a class="code" href="a00175.html#ga744b98814a35336e25cc0d1ba30f63f7" 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="a00018.html">detail::tvec4&lt;T&gt;</a>&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00142.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(x, T(0), T(1));}                                     
-<a name="l00073"></a>00073 
-<a name="l00074"></a><a class="code" href="a00175.html#gabdc84536daab78c6a169eeb93cf9cb3b">00074</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00175.html#gabdc84536daab78c6a169eeb93cf9cb3b" 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="a00149.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(x, y);}                                                                                                                          
-<a name="l00075"></a><a class="code" href="a00175.html#ga808e842fd066ba7f41c71add20a02730">00075</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec2&lt;T&gt; <a class="code" href="a00175.html#gabdc84536daab78c6a169eeb93cf9cb3b" 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="a00016.html">detail::tvec2&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00016.html">detail::tvec2&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00149.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(x, y);}       
-<a name="l00076"></a><a class="code" href="a00175.html#gadd42ce7d69bb6a0e75c9f0945fbc2ab5">00076</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec3&lt;T&gt; <a class="code" href="a00175.html#gabdc84536daab78c6a169eeb93cf9cb3b" 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="a00017.html">detail::tvec3&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00017.html">detail::tvec3&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00149.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(x, y);}       
-<a name="l00077"></a><a class="code" href="a00175.html#ga593a3c43b415ec4a8e87ccfb55570f64">00077</a>         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER detail::tvec4&lt;T&gt; <a class="code" href="a00175.html#gabdc84536daab78c6a169eeb93cf9cb3b" 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="a00018.html">detail::tvec4&lt;T&gt;</a>&amp; x, <span class="keyword">const</span> <a class="code" href="a00018.html">detail::tvec4&lt;T&gt;</a>&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00149.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(x, y);}       
-<a name="l00078"></a>00078 
-<a name="l00079"></a>00079         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00175.html#ga39d6ffe6d42d4ec33036e735d7c39781" 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);                                                                                   
-<a name="l00080"></a>00080         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; detail::tvec2&lt;bool&gt; <a class="code" href="a00175.html#ga39d6ffe6d42d4ec33036e735d7c39781" 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> detail::tvec2&lt;valType&gt;&amp; x);                              
-<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; detail::tvec3&lt;bool&gt; <a class="code" href="a00175.html#ga39d6ffe6d42d4ec33036e735d7c39781" 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> detail::tvec3&lt;valType&gt;&amp; x);                              
-<a name="l00082"></a>00082         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; detail::tvec4&lt;bool&gt; <a class="code" href="a00175.html#ga39d6ffe6d42d4ec33036e735d7c39781" 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> detail::tvec4&lt;valType&gt;&amp; x);                              
-<a name="l00083"></a>00083 
-<a name="l00084"></a>00084         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00142.html#gaf1da75ac632eb4833cdd63255031d730" 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);                                                                                                              
-<a name="l00085"></a>00085         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec2&lt;bool&gt; <a class="code" href="a00142.html#gaf1da75ac632eb4833cdd63255031d730" title="Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...">isinf</a>(<span class="keyword">const</span> detail::tvec2&lt;genType&gt;&amp; x);                                 
-<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec3&lt;bool&gt; <a class="code" href="a00142.html#gaf1da75ac632eb4833cdd63255031d730" title="Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...">isinf</a>(<span class="keyword">const</span> detail::tvec3&lt;genType&gt;&amp; x);                                 
-<a name="l00087"></a>00087         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec4&lt;bool&gt; <a class="code" href="a00142.html#gaf1da75ac632eb4833cdd63255031d730" title="Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...">isinf</a>(<span class="keyword">const</span> detail::tvec4&lt;genType&gt;&amp; x);                                 
-<a name="l00088"></a>00088 
-<a name="l00089"></a>00089         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; <span class="keywordtype">bool</span> <a class="code" href="a00142.html#gabcdbb01cf43c83e59777f2c5d855e315" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(genType <span class="keyword">const</span> &amp; x);                                                                                                              
-<a name="l00090"></a>00090         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec2&lt;bool&gt; <a class="code" href="a00142.html#gabcdbb01cf43c83e59777f2c5d855e315" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(<span class="keyword">const</span> detail::tvec2&lt;genType&gt;&amp; x);                                 
-<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec3&lt;bool&gt; <a class="code" href="a00142.html#gabcdbb01cf43c83e59777f2c5d855e315" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(<span class="keyword">const</span> detail::tvec3&lt;genType&gt;&amp; x);                                 
-<a name="l00092"></a>00092         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; detail::tvec4&lt;bool&gt; <a class="code" href="a00142.html#gabcdbb01cf43c83e59777f2c5d855e315" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(<span class="keyword">const</span> detail::tvec4&lt;genType&gt;&amp; x);                                 
-<a name="l00093"></a>00093 
-<a name="l00094"></a><a class="code" href="a00175.html#gaddcd7aa2e30e61af5b38660613d3979e">00094</a>         <span class="keyword">typedef</span> <span class="keywordtype">bool</span>                                            <a class="code" href="a00175.html#gaddcd7aa2e30e61af5b38660613d3979e" title="boolean type with 1 component. (From GLM_GTX_compatibility extension)">bool1</a>;                  
-<a name="l00095"></a><a class="code" href="a00175.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d">00095</a>         <span class="keyword">typedef</span> detail::tvec2&lt;bool&gt;                     <a class="code" href="a00175.html#ga88cfb6bf63a7fd1f03fe5abeae2aec1d" title="boolean type with 2 components. (From GLM_GTX_compatibility extension)">bool2</a>;                  
-<a name="l00096"></a><a class="code" href="a00175.html#gade36f151806e985eec29fdf96ae6a2bb">00096</a>         <span class="keyword">typedef</span> detail::tvec3&lt;bool&gt;                     <a class="code" href="a00175.html#gade36f151806e985eec29fdf96ae6a2bb" title="boolean type with 3 components. (From GLM_GTX_compatibility extension)">bool3</a>;                  
-<a name="l00097"></a><a class="code" href="a00175.html#ga1ee8c362caed549a5a83fdd9db6ec6c2">00097</a>         <span class="keyword">typedef</span> detail::tvec4&lt;bool&gt;                     <a class="code" href="a00175.html#ga1ee8c362caed549a5a83fdd9db6ec6c2" title="boolean type with 4 components. (From GLM_GTX_compatibility extension)">bool4</a>;                  
-<a name="l00098"></a>00098 
-<a name="l00099"></a><a class="code" href="a00175.html#ga7f895c936f0c29c8729afbbf22806090">00099</a>         <span class="keyword">typedef</span> <span class="keywordtype">bool</span>                                            <a class="code" href="a00175.html#ga7f895c936f0c29c8729afbbf22806090" title="boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)">bool1x1</a>;                
-<a name="l00100"></a><a class="code" href="a00175.html#ga51dfdd84c191d9433ebf5e626af2c1f9">00100</a>         <span class="keyword">typedef</span> detail::tmat2x2&lt;bool&gt;           <a class="code" href="a00175.html#ga51dfdd84c191d9433ebf5e626af2c1f9" title="boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)">bool2x2</a>;                
-<a name="l00101"></a><a class="code" href="a00175.html#ga3982a05435c6c2d492b747f8adf6b9e0">00101</a>         <span class="keyword">typedef</span> detail::tmat2x3&lt;bool&gt;           <a class="code" href="a00175.html#ga3982a05435c6c2d492b747f8adf6b9e0" title="boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)">bool2x3</a>;                
-<a name="l00102"></a><a class="code" href="a00175.html#ga78a505943e47244f4495d07e4884c318">00102</a>         <span class="keyword">typedef</span> detail::tmat2x4&lt;bool&gt;           <a class="code" href="a00175.html#ga78a505943e47244f4495d07e4884c318" title="boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)">bool2x4</a>;                
-<a name="l00103"></a><a class="code" href="a00175.html#gaf4e8c9209cfd75ac029f8d95e9520e2d">00103</a>         <span class="keyword">typedef</span> detail::tmat3x2&lt;bool&gt;           <a class="code" href="a00175.html#gaf4e8c9209cfd75ac029f8d95e9520e2d" title="boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)">bool3x2</a>;                
-<a name="l00104"></a><a class="code" href="a00175.html#ga977c0274e9364b129774aedb65b3dcbd">00104</a>         <span class="keyword">typedef</span> detail::tmat3x3&lt;bool&gt;           <a class="code" href="a00175.html#ga977c0274e9364b129774aedb65b3dcbd" title="boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)">bool3x3</a>;                
-<a name="l00105"></a><a class="code" href="a00175.html#ga5174a0758ee4bc91a51b1eb7b100a416">00105</a>         <span class="keyword">typedef</span> detail::tmat3x4&lt;bool&gt;           <a class="code" href="a00175.html#ga5174a0758ee4bc91a51b1eb7b100a416" title="boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)">bool3x4</a>;                
-<a name="l00106"></a><a class="code" href="a00175.html#ga590198580792550bff2a6bd7f811c8d9">00106</a>         <span class="keyword">typedef</span> detail::tmat4x2&lt;bool&gt;           <a class="code" href="a00175.html#ga590198580792550bff2a6bd7f811c8d9" title="boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)">bool4x2</a>;                
-<a name="l00107"></a><a class="code" href="a00175.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b">00107</a>         <span class="keyword">typedef</span> detail::tmat4x3&lt;bool&gt;           <a class="code" href="a00175.html#gac8ac5c2c5db2f164ae2e25d1b9898a6b" title="boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)">bool4x3</a>;                
-<a name="l00108"></a><a class="code" href="a00175.html#gac437f71eba4fabf6d7551f1889af2ea5">00108</a>         <span class="keyword">typedef</span> detail::tmat4x4&lt;bool&gt;           <a class="code" href="a00175.html#gac437f71eba4fabf6d7551f1889af2ea5" title="boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)">bool4x4</a>;                
-<a name="l00109"></a>00109 
-<a name="l00110"></a><a class="code" href="a00175.html#ga0670a2111b5e4a6410bd027fa0232fc3">00110</a>         <span class="keyword">typedef</span> <span class="keywordtype">int</span>                                                     <a class="code" href="a00175.html#ga0670a2111b5e4a6410bd027fa0232fc3" title="integer vector with 1 component. (From GLM_GTX_compatibility extension)">int1</a>;                   
-<a name="l00111"></a><a class="code" href="a00175.html#ga96b72b048dd3d9eb7caa93f9589b46a0">00111</a>         <span class="keyword">typedef</span> detail::tvec2&lt;int&gt;                      <a class="code" href="a00175.html#ga96b72b048dd3d9eb7caa93f9589b46a0" title="integer vector with 2 components. (From GLM_GTX_compatibility extension)">int2</a>;                   
-<a name="l00112"></a><a class="code" href="a00175.html#ga0e57fa71b1be1f6501d3985b7b7d4dac">00112</a>         <span class="keyword">typedef</span> detail::tvec3&lt;int&gt;                      <a class="code" href="a00175.html#ga0e57fa71b1be1f6501d3985b7b7d4dac" title="integer vector with 3 components. (From GLM_GTX_compatibility extension)">int3</a>;                   
-<a name="l00113"></a><a class="code" href="a00175.html#ga827bb0abe63248b0ae292a83ff55097a">00113</a>         <span class="keyword">typedef</span> detail::tvec4&lt;int&gt;                      <a class="code" href="a00175.html#ga827bb0abe63248b0ae292a83ff55097a" title="integer vector with 4 components. (From GLM_GTX_compatibility extension)">int4</a>;                   
-<a name="l00114"></a>00114 
-<a name="l00115"></a><a class="code" href="a00175.html#ga056ffe02d3a45af626f8e62221881c7a">00115</a>         <span class="keyword">typedef</span> <span class="keywordtype">int</span>                                                     <a class="code" href="a00175.html#ga056ffe02d3a45af626f8e62221881c7a" title="integer matrix with 1 component. (From GLM_GTX_compatibility extension)">int1x1</a>;                 
-<a name="l00116"></a><a class="code" href="a00175.html#gab7644293a70c1e329624f556b779edde">00116</a>         <span class="keyword">typedef</span> detail::tmat2x2&lt;int&gt;            <a class="code" href="a00175.html#gab7644293a70c1e329624f556b779edde" title="integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)">int2x2</a>;                 
-<a name="l00117"></a><a class="code" href="a00175.html#gaf2c5ace70f19d3916b43f25ab7ffbc95">00117</a>         <span class="keyword">typedef</span> detail::tmat2x3&lt;int&gt;            <a class="code" href="a00175.html#gaf2c5ace70f19d3916b43f25ab7ffbc95" title="integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)">int2x3</a>;                 
-<a name="l00118"></a><a class="code" href="a00175.html#ga20ba14d42f3856221a0eb5194184bcf9">00118</a>         <span class="keyword">typedef</span> detail::tmat2x4&lt;int&gt;            <a class="code" href="a00175.html#ga20ba14d42f3856221a0eb5194184bcf9" title="integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)">int2x4</a>;                 
-<a name="l00119"></a><a class="code" href="a00175.html#ga75bc457489f7d23f5ea56445c0b3fa3f">00119</a>         <span class="keyword">typedef</span> detail::tmat3x2&lt;int&gt;            <a class="code" href="a00175.html#ga75bc457489f7d23f5ea56445c0b3fa3f" title="integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)">int3x2</a>;                 
-<a name="l00120"></a><a class="code" href="a00175.html#ga90d6b84bdde0d8247774aac30909ed03">00120</a>         <span class="keyword">typedef</span> detail::tmat3x3&lt;int&gt;            <a class="code" href="a00175.html#ga90d6b84bdde0d8247774aac30909ed03" title="integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)">int3x3</a>;                 
-<a name="l00121"></a><a class="code" href="a00175.html#ga91da3b288518f40c78ee1d0e1fb1cdb3">00121</a>         <span class="keyword">typedef</span> detail::tmat3x4&lt;int&gt;            <a class="code" href="a00175.html#ga91da3b288518f40c78ee1d0e1fb1cdb3" title="integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)">int3x4</a>;                 
-<a name="l00122"></a><a class="code" href="a00175.html#ga9101cda6ad27c3d5aa596ef9baeca75d">00122</a>         <span class="keyword">typedef</span> detail::tmat4x2&lt;int&gt;            <a class="code" href="a00175.html#ga9101cda6ad27c3d5aa596ef9baeca75d" title="integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)">int4x2</a>;                 
-<a name="l00123"></a><a class="code" href="a00175.html#ga5f93d57c0c99fd11c353e952b107b036">00123</a>         <span class="keyword">typedef</span> detail::tmat4x3&lt;int&gt;            <a class="code" href="a00175.html#ga5f93d57c0c99fd11c353e952b107b036" title="integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)">int4x3</a>;                 
-<a name="l00124"></a><a class="code" href="a00175.html#gacd4827b69f52f6486625bf65d23fe53f">00124</a>         <span class="keyword">typedef</span> detail::tmat4x4&lt;int&gt;            <a class="code" href="a00175.html#gacd4827b69f52f6486625bf65d23fe53f" title="integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)">int4x4</a>;                 
-<a name="l00125"></a>00125 
-<a name="l00126"></a><a class="code" href="a00175.html#gab9122ee020fa1c7ee8367cdd61dba446">00126</a>         <span class="keyword">typedef</span> detail<a class="code" href="a00005.html" title="16-bit floating point type.">::half</a>                                    <a class="code" href="a00175.html#gab9122ee020fa1c7ee8367cdd61dba446" title="half-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">half1</a>;                  
-<a name="l00127"></a><a class="code" href="a00175.html#ga9f040b22207a0e1ee89ba72740b6ff13">00127</a>         <span class="keyword">typedef</span> detail::tvec2&lt;detail::half&gt;     <a class="code" href="a00175.html#ga9f040b22207a0e1ee89ba72740b6ff13" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half2</a>;                  
-<a name="l00128"></a><a class="code" href="a00175.html#ga6d211076f0cefe2c02e2628f19349e12">00128</a>         <span class="keyword">typedef</span> detail::tvec3&lt;detail::half&gt;     <a class="code" href="a00175.html#ga6d211076f0cefe2c02e2628f19349e12" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half3</a>;                  
-<a name="l00129"></a><a class="code" href="a00175.html#gad1a750805ea267fcab6322671063a2ae">00129</a>         <span class="keyword">typedef</span> detail::tvec4&lt;detail::half&gt;     <a class="code" href="a00175.html#gad1a750805ea267fcab6322671063a2ae" title="half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">half4</a>;                  
-<a name="l00130"></a>00130 
-<a name="l00131"></a><a class="code" href="a00175.html#ga2e49b47cde1b38a4960e7dbb00ae8065">00131</a>         <span class="keyword">typedef</span> detail<a class="code" href="a00005.html" title="16-bit floating point type.">::half</a>                                    <a class="code" href="a00175.html#ga2e49b47cde1b38a4960e7dbb00ae8065" title="half-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">half1x1</a>;                
-<a name="l00132"></a><a class="code" href="a00175.html#ga8c6c5df23d5787f80038405e3324faf4">00132</a>         <span class="keyword">typedef</span> detail::tmat2x2&lt;detail::half&gt;   <a class="code" href="a00175.html#ga8c6c5df23d5787f80038405e3324faf4" title="half-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">half2x2</a>;                
-<a name="l00133"></a><a class="code" href="a00175.html#gada75b670f9e96f7a793f1d29ff1d07a4">00133</a>         <span class="keyword">typedef</span> detail::tmat2x3&lt;detail::half&gt;   <a class="code" href="a00175.html#gada75b670f9e96f7a793f1d29ff1d07a4" title="half-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">half2x3</a>;                
-<a name="l00134"></a><a class="code" href="a00175.html#ga7307abcb1b9dc9ddd05bc30ca1d94679">00134</a>         <span class="keyword">typedef</span> detail::tmat2x4&lt;detail::half&gt;   <a class="code" href="a00175.html#ga7307abcb1b9dc9ddd05bc30ca1d94679" title="half-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">half2x4</a>;                
-<a name="l00135"></a><a class="code" href="a00175.html#gaf81aaf55b67acc097f337e1b93a7581f">00135</a>         <span class="keyword">typedef</span> detail::tmat3x2&lt;detail::half&gt;   <a class="code" href="a00175.html#gaf81aaf55b67acc097f337e1b93a7581f" title="half-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">half3x2</a>;                
-<a name="l00136"></a><a class="code" href="a00175.html#gab897d9ce19ff4ecd4515f081d6ded2d2">00136</a>         <span class="keyword">typedef</span> detail::tmat3x3&lt;detail::half&gt;   <a class="code" href="a00175.html#gab897d9ce19ff4ecd4515f081d6ded2d2" title="half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">half3x3</a>;                
-<a name="l00137"></a><a class="code" href="a00175.html#gab458f374e5e655c6a1165be4368b59d8">00137</a>         <span class="keyword">typedef</span> detail::tmat3x4&lt;detail::half&gt;   <a class="code" href="a00175.html#gab458f374e5e655c6a1165be4368b59d8" title="half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">half3x4</a>;                
-<a name="l00138"></a><a class="code" href="a00175.html#gac7470c149acdb082cce1ed0433b9641b">00138</a>         <span class="keyword">typedef</span> detail::tmat4x2&lt;detail::half&gt;   <a class="code" href="a00175.html#gac7470c149acdb082cce1ed0433b9641b" title="half-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">half4x2</a>;                
-<a name="l00139"></a><a class="code" href="a00175.html#gaac2f72bc824ec4100e8abef77c77e351">00139</a>         <span class="keyword">typedef</span> detail::tmat4x3&lt;detail::half&gt;   <a class="code" href="a00175.html#gaac2f72bc824ec4100e8abef77c77e351" title="half-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">half4x3</a>;                
-<a name="l00140"></a><a class="code" href="a00175.html#ga901cc903fdb2c483899d7b9c539f6370">00140</a>         <span class="keyword">typedef</span> detail::tmat4x4&lt;detail::half&gt;   <a class="code" href="a00175.html#ga901cc903fdb2c483899d7b9c539f6370" title="half-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">half4x4</a>;                
-<a name="l00141"></a>00141 
-<a name="l00142"></a><a class="code" href="a00175.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">00142</a>         <span class="keyword">typedef</span> <span class="keywordtype">float</span>                                           <a class="code" href="a00175.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead" title="single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">float1</a>;                 
-<a name="l00143"></a><a class="code" href="a00175.html#ga36aed7f41ff3a1be99f215754f43376f">00143</a>         <span class="keyword">typedef</span> detail::tvec2&lt;float&gt;            <a class="code" href="a00175.html#ga36aed7f41ff3a1be99f215754f43376f" title="single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">float2</a>;                 
-<a name="l00144"></a><a class="code" href="a00175.html#ga1fe9cc8caced9aa000c36ca3c0a046ab">00144</a>         <span class="keyword">typedef</span> detail::tvec3&lt;float&gt;            <a class="code" href="a00175.html#ga1fe9cc8caced9aa000c36ca3c0a046ab" title="single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)...">float3</a>;                 
-<a name="l00145"></a><a class="code" href="a00175.html#ga1b1ca9850faf4c3ffddf95093a17b49c">00145</a>         <span class="keyword">typedef</span> detail::tvec4&lt;float&gt;            <a class="code" href="a00175.html#ga1b1ca9850faf4c3ffddf95093a17b49c" title="single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)...">float4</a>;                 
-<a name="l00146"></a>00146 
-<a name="l00147"></a><a class="code" href="a00175.html#ga73720b8dc4620835b17f74d428f98c0c">00147</a>         <span class="keyword">typedef</span> <span class="keywordtype">float</span>                                           <a class="code" href="a00175.html#ga73720b8dc4620835b17f74d428f98c0c" title="single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">float1x1</a>;               
-<a name="l00148"></a><a class="code" href="a00175.html#gaf8d19b6f81f5cb8151f37c66c15691fa">00148</a>         <span class="keyword">typedef</span> detail::tmat2x2&lt;float&gt;          <a class="code" href="a00175.html#gaf8d19b6f81f5cb8151f37c66c15691fa" title="single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">float2x2</a>;               
-<a name="l00149"></a><a class="code" href="a00175.html#gaafc2b478b36de8b9da6fe1e0f88f68d4">00149</a>         <span class="keyword">typedef</span> detail::tmat2x3&lt;float&gt;          <a class="code" href="a00175.html#gaafc2b478b36de8b9da6fe1e0f88f68d4" title="single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">float2x3</a>;               
-<a name="l00150"></a><a class="code" href="a00175.html#ga77d14ba22d90b0af72a1572ee1bd9458">00150</a>         <span class="keyword">typedef</span> detail::tmat2x4&lt;float&gt;          <a class="code" href="a00175.html#ga77d14ba22d90b0af72a1572ee1bd9458" title="single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">float2x4</a>;               
-<a name="l00151"></a><a class="code" href="a00175.html#ga46c62307ff5e8418d27be225c1187e25">00151</a>         <span class="keyword">typedef</span> detail::tmat3x2&lt;float&gt;          <a class="code" href="a00175.html#ga46c62307ff5e8418d27be225c1187e25" title="single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">float3x2</a>;               
-<a name="l00152"></a><a class="code" href="a00175.html#ga5e6e08a42341c82268a4a94a02f7b016">00152</a>         <span class="keyword">typedef</span> detail::tmat3x3&lt;float&gt;          <a class="code" href="a00175.html#ga5e6e08a42341c82268a4a94a02f7b016" title="single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">float3x3</a>;               
-<a name="l00153"></a><a class="code" href="a00175.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6">00153</a>         <span class="keyword">typedef</span> detail::tmat3x4&lt;float&gt;          <a class="code" href="a00175.html#ga14a4142cbea2f8ade68c6c4ca0bca2e6" title="single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)...">float3x4</a>;               
-<a name="l00154"></a><a class="code" href="a00175.html#ga7d53a0bdb8ce3ea6f26483d03a93309c">00154</a>         <span class="keyword">typedef</span> detail::tmat4x2&lt;float&gt;          <a class="code" href="a00175.html#ga7d53a0bdb8ce3ea6f26483d03a93309c" title="single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">float4x2</a>;               
-<a name="l00155"></a><a class="code" href="a00175.html#ga90ec9566c9961638c70e2ba2e3fd94fc">00155</a>         <span class="keyword">typedef</span> detail::tmat4x3&lt;float&gt;          <a class="code" href="a00175.html#ga90ec9566c9961638c70e2ba2e3fd94fc" title="single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">float4x3</a>;               
-<a name="l00156"></a><a class="code" href="a00175.html#ga1ab661a1b315e963ce81a7ebfb110aa7">00156</a>         <span class="keyword">typedef</span> detail::tmat4x4&lt;float&gt;          <a class="code" href="a00175.html#ga1ab661a1b315e963ce81a7ebfb110aa7" title="single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">float4x4</a>;               
-<a name="l00157"></a>00157 
-<a name="l00158"></a><a class="code" href="a00175.html#ga20b861a9b6e2a300323671c57a02525b">00158</a>         <span class="keyword">typedef</span> <span class="keywordtype">double</span>                                          <a class="code" href="a00175.html#ga20b861a9b6e2a300323671c57a02525b" title="double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)...">double1</a>;                
-<a name="l00159"></a><a class="code" href="a00175.html#ga7a2bed57d1cc7209ee6d027010bc96b6">00159</a>         <span class="keyword">typedef</span> detail::tvec2&lt;double&gt;           <a class="code" href="a00175.html#ga7a2bed57d1cc7209ee6d027010bc96b6" title="double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)...">double2</a>;                
-<a name="l00160"></a><a class="code" href="a00175.html#gaed0358fe1eb696b655a13eac4ececb2a">00160</a>         <span class="keyword">typedef</span> detail::tvec3&lt;double&gt;           <a class="code" href="a00175.html#gaed0358fe1eb696b655a13eac4ececb2a" title="double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)...">double3</a>;                
-<a name="l00161"></a><a class="code" href="a00175.html#gace0ba846c7443d0d56abb0ca3e61469d">00161</a>         <span class="keyword">typedef</span> detail::tvec4&lt;double&gt;           <a class="code" href="a00175.html#gace0ba846c7443d0d56abb0ca3e61469d" title="double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)...">double4</a>;                
-<a name="l00162"></a>00162 
-<a name="l00163"></a><a class="code" href="a00175.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">00163</a>         <span class="keyword">typedef</span> <span class="keywordtype">double</span>                                          <a class="code" href="a00175.html#ga45f16a4dd0db1f199afaed9fd12fe9a8" title="double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)...">double1x1</a>;              
-<a name="l00164"></a><a class="code" href="a00175.html#ga96772f5981821b9e80c572481e37f220">00164</a>         <span class="keyword">typedef</span> detail::tmat2x2&lt;double&gt;         <a class="code" href="a00175.html#ga96772f5981821b9e80c572481e37f220" title="double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)...">double2x2</a>;              
-<a name="l00165"></a><a class="code" href="a00175.html#ga07bbc143dfea7838be68d63c114317f4">00165</a>         <span class="keyword">typedef</span> detail::tmat2x3&lt;double&gt;         <a class="code" href="a00175.html#ga07bbc143dfea7838be68d63c114317f4" title="double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)...">double2x3</a>;              
-<a name="l00166"></a><a class="code" href="a00175.html#ga1e68c0a16e5684f44d86faac2a7d6810">00166</a>         <span class="keyword">typedef</span> detail::tmat2x4&lt;double&gt;         <a class="code" href="a00175.html#ga1e68c0a16e5684f44d86faac2a7d6810" title="double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)...">double2x4</a>;              
-<a name="l00167"></a><a class="code" href="a00175.html#ga6e8dd2531703ce00b253ddd3c0c6eaca">00167</a>         <span class="keyword">typedef</span> detail::tmat3x2&lt;double&gt;         <a class="code" href="a00175.html#ga6e8dd2531703ce00b253ddd3c0c6eaca" title="double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)...">double3x2</a>;              
-<a name="l00168"></a><a class="code" href="a00175.html#ga5dfb1357edcef48fcfdf9908906ae086">00168</a>         <span class="keyword">typedef</span> detail::tmat3x3&lt;double&gt;         <a class="code" href="a00175.html#ga5dfb1357edcef48fcfdf9908906ae086" title="double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)...">double3x3</a>;              
-<a name="l00169"></a><a class="code" href="a00175.html#ga3b83eafbc284acce070855469c39b991">00169</a>         <span class="keyword">typedef</span> detail::tmat3x4&lt;double&gt;         <a class="code" href="a00175.html#ga3b83eafbc284acce070855469c39b991" title="double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)...">double3x4</a>;              
-<a name="l00170"></a><a class="code" href="a00175.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35">00170</a>         <span class="keyword">typedef</span> detail::tmat4x2&lt;double&gt;         <a class="code" href="a00175.html#ga19c9ec02aa62b78e9709c4b2e2ae6f35" title="double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)...">double4x2</a>;              
-<a name="l00171"></a><a class="code" href="a00175.html#ga53c7dc9532c324aefb75a5f08033cd12">00171</a>         <span class="keyword">typedef</span> detail::tmat4x3&lt;double&gt;         <a class="code" href="a00175.html#ga53c7dc9532c324aefb75a5f08033cd12" title="double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)...">double4x3</a>;              
-<a name="l00172"></a><a class="code" href="a00175.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8">00172</a>         <span class="keyword">typedef</span> detail::tmat4x4&lt;double&gt;         <a class="code" href="a00175.html#ga2cc8e4fa772bfc5c1cada72ee5cadaf8" title="double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)...">double4x4</a>;              
-<a name="l00173"></a>00173 
-<a name="l00175"></a>00175 }<span class="comment">//namespace glm</span>
-<a name="l00176"></a>00176 
-<a name="l00177"></a>00177 <span class="preprocessor">#include &quot;compatibility.inl&quot;</span>
-<a name="l00178"></a>00178     
-<a name="l00179"></a>00179 <span class="preprocessor">#endif//GLM_GTX_compatibility</span>
-<a name="l00180"></a>00180 <span class="preprocessor"></span>
-</pre></div></div>
-</div>
+<a name="l00052"></a>00052         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00053"></a>00053         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00130.html#ga687ac48ae4591c0da916052e469aad74" title="Returns a 1D noise value based on the input value x.">noise1</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00054"></a>00054 
+<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00062"></a>00062         detail::tvec2&lt;typename genType::value_type&gt; <a class="code" href="a00130.html#ga528fc75920119a7ab65ef6dccef28752" title="Returns a 2D noise value based on the input value x.">noise2</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00063"></a>00063 
+<a name="l00070"></a>00070         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00071"></a>00071         detail::tvec3&lt;typename genType::value_type&gt; <a class="code" href="a00130.html#gaf1589bc1859b8dc53d737ece36b59b85" title="Returns a 3D noise value based on the input value x.">noise3</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00072"></a>00072 
+<a name="l00079"></a>00079         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00080"></a>00080         detail::tvec4&lt;typename genType::value_type&gt; <a class="code" href="a00130.html#ga7b3cd0ab6f03142dd9ff3054e7fe5299" title="Returns a 4D noise value based on the input value x.">noise4</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00081"></a>00081 
+<a name="l00083"></a>00083 }<span class="comment">//namespace glm</span>
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="preprocessor">#include &quot;func_noise.inl&quot;</span>
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087 <span class="preprocessor">#endif//glm_core_func_noise</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 24 - 19
doc/api-0.9.3/a00031.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>component_wise.hpp File Reference</title>
+<title>func_packing.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -51,41 +52,45 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">component_wise.hpp File Reference</div>  </div>
-</div>
+<div class="title">func_packing.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00031_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00176.html#ga70016a744618371aafdb9a6ed8b9ffda">compAdd</a> (genType const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00176.html#ga7570faad7d86649a9a5d766f3e731e89">compMax</a> (genType const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00176.html#gabe82f26e0f548e09008ad0874af9e837">compMin</a> (genType const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00176.html#gac0831fc64d0ce245f7f961d72e1893fd">compMul</a> (genType const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html#gab7776e189f8fb8210dbaf4685f9d400a">packDouble2x32</a> (detail::tvec2&lt; detail::uint32 &gt; const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html#ga5f63a9353416d3d240962520d5e77dbc">packHalf2x16</a> (vec2 const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html#ga85552b13309c20c90a43fcf4906e6314">packSnorm2x16</a> (detail::tvec2&lt; detail::float32 &gt; const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html#gaa9d1bf79e69382e55eb3adf51f978afd">packSnorm4x8</a> (detail::tvec4&lt; detail::float32 &gt; const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html#gae4cbe68e49e238fce5bf83c2ab03746c">packUnorm2x16</a> (detail::tvec2&lt; detail::float32 &gt; const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html#ga58d4ebc6f2824dcbcef73e3764339ea4">packUnorm4x8</a> (detail::tvec4&lt; detail::float32 &gt; const &amp;v)</td></tr>
+<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="a00131.html#gadfbce841431cb5fb8531469a6c1e01d9">unpackDouble2x32</a> (double const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html#ga74e86400717e9a83f30ef8610a122daf">unpackHalf2x16</a> (uint const &amp;v)</td></tr>
+<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="a00131.html#gaaf9e09346412610f361fa17a1e502090">unpackSnorm2x16</a> (detail::uint32 const &amp;p)</td></tr>
+<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="a00131.html#ga014513c3f058e755660f702b65559215">unpackSnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
+<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="a00131.html#gad146587dbc78ae05c48b8b0e7af7e640">unpackUnorm2x16</a> (detail::uint32 const &amp;p)</td></tr>
+<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="a00131.html#gaeccbff725476f317b1464a0a0fae3be7">unpackUnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00176.html">GLM_GTX_component_wise: Component wise</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2007-05-21 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2010-03-17 / 2011-06-15 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
 
-<p>Definition in file <a class="el" href="a00031_source.html">component_wise.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00031_source.html">func_packing.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 44 - 42
doc/api-0.9.3/a00031_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>component_wise.hpp Source File</title>
+<title>func_packing.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">component_wise.hpp</div>  </div>
-</div>
+<div class="title">func_packing.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00031.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -86,50 +88,50 @@
 <a name="l00033"></a>00033 
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_component_wise</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_component_wise GLM_VERSION</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#ifndef GLM_CORE_func_packing</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_packing GLM_VERSION</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span>
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>glm
+<a name="l00040"></a>00040 {       
 <a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_component_wise extension included&quot;)</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span>
-<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
-<a name="l00049"></a>00049 {
-<a name="l00052"></a>00052 
-<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00056"></a>00056         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00176.html#ga70016a744618371aafdb9a6ed8b9ffda" title="Add all vector components together.">compAdd</a>(
-<a name="l00057"></a>00057                 genType <span class="keyword">const</span> &amp; v);
-<a name="l00058"></a>00058 
-<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00062"></a>00062         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00176.html#gac0831fc64d0ce245f7f961d72e1893fd" title="Multiply all vector components together.">compMul</a>(
-<a name="l00063"></a>00063                 genType <span class="keyword">const</span> &amp; v);
-<a name="l00064"></a>00064 
-<a name="l00067"></a>00067         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00068"></a>00068         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00176.html#gabe82f26e0f548e09008ad0874af9e837" title="Find the minimum value between single vector components.">compMin</a>(
-<a name="l00069"></a>00069                 genType <span class="keyword">const</span> &amp; v);
-<a name="l00070"></a>00070 
-<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00074"></a>00074         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00176.html#ga7570faad7d86649a9a5d766f3e731e89" title="Find the maximum value between single vector components.">compMax</a>(
-<a name="l00075"></a>00075                 genType <span class="keyword">const</span> &amp; v);
-<a name="l00076"></a>00076 
-<a name="l00078"></a>00078 }<span class="comment">//namespace glm</span>
-<a name="l00079"></a>00079 
-<a name="l00080"></a>00080 <span class="preprocessor">#include &quot;component_wise.inl&quot;</span>
-<a name="l00081"></a>00081 
-<a name="l00082"></a>00082 <span class="preprocessor">#endif//GLM_GTX_component_wise</span>
-</pre></div></div>
-</div>
+<a name="l00055"></a>00055         detail::uint32 <a class="code" href="a00131.html#gae4cbe68e49e238fce5bf83c2ab03746c" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packUnorm2x16</a>(detail::tvec2&lt;detail::float32&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00056"></a>00056 
+<a name="l00068"></a>00068         detail::uint32 <a class="code" href="a00131.html#ga85552b13309c20c90a43fcf4906e6314" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packSnorm2x16</a>(detail::tvec2&lt;detail::float32&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00069"></a>00069         
+<a name="l00081"></a>00081         detail::uint32 <a class="code" href="a00131.html#ga58d4ebc6f2824dcbcef73e3764339ea4" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packUnorm4x8</a>(detail::tvec4&lt;detail::float32&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00082"></a>00082         
+<a name="l00094"></a>00094         detail::uint32 <a class="code" href="a00131.html#gaa9d1bf79e69382e55eb3adf51f978afd" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packSnorm4x8</a>(detail::tvec4&lt;detail::float32&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00095"></a>00095 
+<a name="l00107"></a>00107         detail::tvec2&lt;detail::float32&gt; <a class="code" href="a00131.html#gad146587dbc78ae05c48b8b0e7af7e640" 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>(detail::uint32 <span class="keyword">const</span> &amp; p);
+<a name="l00108"></a>00108 
+<a name="l00120"></a>00120         detail::tvec2&lt;detail::float32&gt; <a class="code" href="a00131.html#gaaf9e09346412610f361fa17a1e502090" 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.">unpackSnorm2x16</a>(detail::uint32 <span class="keyword">const</span> &amp; p);
+<a name="l00121"></a>00121         
+<a name="l00133"></a>00133     detail::tvec4&lt;detail::float32&gt; <a class="code" href="a00131.html#gaeccbff725476f317b1464a0a0fae3be7" 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>(detail::uint32 <span class="keyword">const</span> &amp; p);
+<a name="l00134"></a>00134         
+<a name="l00146"></a>00146         detail::tvec4&lt;detail::float32&gt; <a class="code" href="a00131.html#ga014513c3f058e755660f702b65559215" 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>(detail::uint32 <span class="keyword">const</span> &amp; p);
+<a name="l00147"></a>00147 
+<a name="l00156"></a>00156         <span class="keywordtype">double</span> <a class="code" href="a00131.html#gab7776e189f8fb8210dbaf4685f9d400a" title="Returns a double-precision value obtained by packing the components of v into a 64-bit value...">packDouble2x32</a>(detail::tvec2&lt;detail::uint32&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00157"></a>00157         
+<a name="l00165"></a>00165         detail::tvec2&lt;detail::uint32&gt; <a class="code" href="a00131.html#gadfbce841431cb5fb8531469a6c1e01d9" 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);
+<a name="l00166"></a>00166 
+<a name="l00167"></a>00167         
+<a name="l00176"></a>00176         <a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> <a class="code" href="a00131.html#ga5f63a9353416d3d240962520d5e77dbc" title="Returns an unsigned integer obtained by converting the components of a two-component floating-point v...">packHalf2x16</a>(<a class="code" href="a00138.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v);
+<a name="l00177"></a>00177         
+<a name="l00186"></a>00186         <a class="code" href="a00138.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <a class="code" href="a00131.html#ga74e86400717e9a83f30ef8610a122daf" title="Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...">unpackHalf2x16</a>(<a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> <span class="keyword">const</span> &amp; v);
+<a name="l00187"></a>00187         
+<a name="l00189"></a>00189 }<span class="comment">//namespace glm</span>
+<a name="l00190"></a>00190 
+<a name="l00191"></a>00191 <span class="preprocessor">#include &quot;func_packing.inl&quot;</span>
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193 <span class="preprocessor">#endif//GLM_CORE_func_packing</span>
+<a name="l00194"></a>00194 <span class="preprocessor"></span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 42 - 63
doc/api-0.9.3/a00032.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>constants.hpp File Reference</title>
+<title>func_trigonometric.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -51,85 +52,63 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">constants.hpp File Reference</div>  </div>
-</div>
+<div class="title">func_trigonometric.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00032_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gab932c1030b8bef04437a2d066dc9dc6e">e</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga73bc2500704c8c25dc3cde534134ca20">epsilon</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga4ff7948d6e7f40eaee43ce6cea887d22">euler</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga2a4f943607fcf389b7b4dd87e99e50b2">golden_ratio</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga7d3f5974acfdfee6bfb3d9dea93a7ba1">half_pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gab794cac99dec97664ba7cb0d160e3ac6">ln_ln_two</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga255e632bb482a96f8fa34482ab7f0c24">ln_ten</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gadeb5fef19262158f39a39abfe58558ad">ln_two</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gad8d83a66c551f43b816f146f20dcdb85">one</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5d4fddb4150d38cc05f7a06adbc7be6f">one_over_pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga82228b772a59165585e05e37365b2e8b">one_over_root_two</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga91033e239e639b830ce0a4e7d84ff7b6">pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaa3878a0bb7cf0c77b899560a80847f12">quarter_pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaa907e64aeec08a407739aa090f399820">root_five</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gab1bc1acc5958f93a0e677756bdcb4a27">root_half_pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gae86af6ec13101467880e06b54e3e0d71">root_ln_four</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaa83b7a56d3a4386ab4c8ef6544a0e9aa">root_pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaaa0072128a49eef880068a8078594609">root_three</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaebae6e8300655e1e1147da9c25946785">root_two</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gae3334603a5994d3585fd786d98097d82">root_two_pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gab079778327ce3a341f95ceee16f1d03a">third</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaef0c7e4c219ae01db48a20eeb19f47b0">two_over_pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga8a412c16d1aa7bbdd0d03e29aff30ebb">two_over_root_pi</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0ab78128af2f43e313e83eb60a00e321">two_thirds</a> ()</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga9f4649d36b09c63ee2bccf180f6f3985">zero</a> ()</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#gafef7954b5fa3228f4aaabde8dfa862a1">acos</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga0f37ff6b6878a0169cd41249e5377e09">acosh</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga76b6422e62c99fa0849abdf21fcef5cf">asin</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga615d386dcfb41cdbbca2609c53113aac">asinh</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga2394d11075a74869cd88473c76722bc8">atan</a> (genType const &amp;y, genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga5db83034488156692939acb4f4e46fa6">atan</a> (genType const &amp;y_over_x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#gadeda850d5dff43d4d069854b1b6a623c">atanh</a> (genType const &amp;x)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#gace62d5d164def52455aeff19e1bccd88">cos</a> (genType const &amp;angle)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#gaf1b20113fe439fa48524e8c35ea2c1d0">cosh</a> (genType const &amp;angle)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga034bdb53d458242c506e4d830c7df3aa">degrees</a> (genType const &amp;radians)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga4fb76e28851c9ff6653532566084e091">radians</a> (genType const &amp;degrees)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga4fcd05daafb008f20e121e727c0196c7">sin</a> (genType const &amp;angle)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga6f38bb1a343b5d73ac71ddd53baa3375">sinh</a> (genType const &amp;angle)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga43860bed05c85587e2d931b26d765640">tan</a> (genType const &amp;angle)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00132.html#ga5315f571fd52f30d368abc056c4aea13">tanh</a> (genType const &amp;angle)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00177.html">GLM_GTX_constants: Provide build-in constants</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2011-09-30 / 2011-09-30 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-01 / 2011-06-15 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00158.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
 
-<p>Definition in file <a class="el" href="a00032_source.html">constants.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00032_source.html">func_trigonometric.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 62 - 96
doc/api-0.9.3/a00032_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>constants.hpp Source File</title>
+<title>func_trigonometric.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">constants.hpp</div>  </div>
-</div>
+<div class="title">func_trigonometric.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00032.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -89,108 +91,72 @@
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_constants</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_constants GLM_VERSION</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span>
-<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_constants extension included&quot;)</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
-<a name="l00051"></a>00051 {
-<a name="l00054"></a>00054 
-<a name="l00058"></a>00058         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00059"></a>00059         T <a class="code" href="a00177.html#ga73bc2500704c8c25dc3cde534134ca20" title="Return the epsilon constant for floating point types.">epsilon</a>();
-<a name="l00060"></a>00060 
-<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00064"></a>00064         T <a class="code" href="a00177.html#ga9f4649d36b09c63ee2bccf180f6f3985" title="Return 0.">zero</a>();
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="preprocessor">#ifndef GLM_CORE_func_trigonometric</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_trigonometric GLM_VERSION</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span>
+<a name="l00043"></a>00043 <span class="keyword">namespace </span>glm
+<a name="l00044"></a>00044 {
+<a name="l00047"></a>00047 
+<a name="l00054"></a>00054         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00055"></a>00055         genType <a class="code" href="a00132.html#ga4fb76e28851c9ff6653532566084e091" title="Converts degrees to radians and returns the result.">radians</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00132.html#ga034bdb53d458242c506e4d830c7df3aa" title="Converts radians to degrees and returns the result.">degrees</a>);
+<a name="l00056"></a>00056 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00064"></a>00064         genType <a class="code" href="a00132.html#ga034bdb53d458242c506e4d830c7df3aa" title="Converts radians to degrees and returns the result.">degrees</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00132.html#ga4fb76e28851c9ff6653532566084e091" title="Converts degrees to radians and returns the result.">radians</a>);
 <a name="l00065"></a>00065 
-<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00069"></a>00069         T <a class="code" href="a00177.html#gad8d83a66c551f43b816f146f20dcdb85" title="Return 1.">one</a>();
-<a name="l00070"></a>00070 
-<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00074"></a>00074         T <a class="code" href="a00177.html#ga91033e239e639b830ce0a4e7d84ff7b6" title="Return the pi constant.">pi</a>();
+<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00074"></a>00074         genType <a class="code" href="a00132.html#ga4fcd05daafb008f20e121e727c0196c7" title="The standard trigonometric sine function.">sin</a>(genType <span class="keyword">const</span> &amp; angle);
 <a name="l00075"></a>00075 
-<a name="l00078"></a>00078         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00079"></a>00079         T <a class="code" href="a00177.html#gaa83b7a56d3a4386ab4c8ef6544a0e9aa" title="Return square root of pi.">root_pi</a>();
-<a name="l00080"></a>00080 
-<a name="l00083"></a>00083         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00084"></a>00084         T <a class="code" href="a00177.html#ga7d3f5974acfdfee6bfb3d9dea93a7ba1" title="Return pi / 2.">half_pi</a>();
+<a name="l00083"></a>00083         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00084"></a>00084         genType <a class="code" href="a00132.html#gace62d5d164def52455aeff19e1bccd88" title="The standard trigonometric cosine function.">cos</a>(genType <span class="keyword">const</span> &amp; angle);
 <a name="l00085"></a>00085 
-<a name="l00088"></a>00088         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00089"></a>00089         T <a class="code" href="a00177.html#gaa3878a0bb7cf0c77b899560a80847f12" title="Return pi / 4.">quarter_pi</a>();
-<a name="l00090"></a>00090 
-<a name="l00093"></a>00093         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00094"></a>00094         T <a class="code" href="a00177.html#ga5d4fddb4150d38cc05f7a06adbc7be6f" title="Return 1 / pi.">one_over_pi</a>();
-<a name="l00095"></a>00095 
-<a name="l00098"></a>00098         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00099"></a>00099         T <a class="code" href="a00177.html#gaef0c7e4c219ae01db48a20eeb19f47b0" title="Return 2 / pi.">two_over_pi</a>();
-<a name="l00100"></a>00100 
-<a name="l00103"></a>00103         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00104"></a>00104         T <a class="code" href="a00177.html#ga8a412c16d1aa7bbdd0d03e29aff30ebb" title="Return 2 / sqrt(pi).">two_over_root_pi</a>();
+<a name="l00092"></a>00092         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00093"></a>00093         genType <a class="code" href="a00132.html#ga43860bed05c85587e2d931b26d765640" title="The standard trigonometric tangent function.">tan</a>(genType <span class="keyword">const</span> &amp; angle); 
+<a name="l00094"></a>00094 
+<a name="l00103"></a>00103         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00104"></a>00104         genType <a class="code" href="a00132.html#ga76b6422e62c99fa0849abdf21fcef5cf" title="Arc sine.">asin</a>(genType <span class="keyword">const</span> &amp; x);
 <a name="l00105"></a>00105 
-<a name="l00108"></a>00108         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00109"></a>00109         T <a class="code" href="a00177.html#ga82228b772a59165585e05e37365b2e8b" title="Return 1 / sqrt(2).">one_over_root_two</a>();
-<a name="l00110"></a>00110 
-<a name="l00113"></a>00113         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00114"></a>00114         T <a class="code" href="a00177.html#gab1bc1acc5958f93a0e677756bdcb4a27" title="Return sqrt(pi / 2).">root_half_pi</a>();
-<a name="l00115"></a>00115 
-<a name="l00118"></a>00118         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00119"></a>00119         T <a class="code" href="a00177.html#gae3334603a5994d3585fd786d98097d82" title="Return sqrt(2 * pi).">root_two_pi</a>();
-<a name="l00120"></a>00120 
-<a name="l00123"></a>00123         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00124"></a>00124         T <a class="code" href="a00177.html#gae86af6ec13101467880e06b54e3e0d71" title="Return sqrt(ln(4)).">root_ln_four</a>();
-<a name="l00125"></a>00125 
-<a name="l00128"></a>00128         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00129"></a>00129         T <a class="code" href="a00177.html#gab932c1030b8bef04437a2d066dc9dc6e" title="Return e constant.">e</a>();
-<a name="l00130"></a>00130 
-<a name="l00133"></a>00133         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00134"></a>00134         T <a class="code" href="a00177.html#ga4ff7948d6e7f40eaee43ce6cea887d22" title="Return Euler&#39;s constant.">euler</a>();
-<a name="l00135"></a>00135 
-<a name="l00138"></a>00138         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00139"></a>00139         T <a class="code" href="a00177.html#gaebae6e8300655e1e1147da9c25946785" title="Return sqrt(2).">root_two</a>();
-<a name="l00140"></a>00140 
-<a name="l00143"></a>00143         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00144"></a>00144         T <a class="code" href="a00177.html#gaaa0072128a49eef880068a8078594609" title="Return sqrt(3).">root_three</a>();
-<a name="l00145"></a>00145 
-<a name="l00148"></a>00148         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00149"></a>00149         T <a class="code" href="a00177.html#gaa907e64aeec08a407739aa090f399820" title="Return sqrt(5).">root_five</a>();
-<a name="l00150"></a>00150 
-<a name="l00153"></a>00153         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00154"></a>00154         T <a class="code" href="a00177.html#gadeb5fef19262158f39a39abfe58558ad" title="Return ln(2).">ln_two</a>();
-<a name="l00155"></a>00155 
-<a name="l00158"></a>00158         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00159"></a>00159         T <a class="code" href="a00177.html#ga255e632bb482a96f8fa34482ab7f0c24" title="Return ln(10).">ln_ten</a>();
-<a name="l00160"></a>00160 
-<a name="l00163"></a>00163         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00164"></a>00164         T <a class="code" href="a00177.html#gab794cac99dec97664ba7cb0d160e3ac6" title="Return ln(ln(2)).">ln_ln_two</a>();
-<a name="l00165"></a>00165 
-<a name="l00168"></a>00168         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00169"></a>00169         T <a class="code" href="a00177.html#gab079778327ce3a341f95ceee16f1d03a" title="Return 1 / 3.">third</a>();
-<a name="l00170"></a>00170 
-<a name="l00173"></a>00173         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00174"></a>00174         T <a class="code" href="a00177.html#ga0ab78128af2f43e313e83eb60a00e321" title="Return 2 / 3.">two_thirds</a>();
-<a name="l00175"></a>00175 
-<a name="l00178"></a>00178         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00179"></a>00179         T <a class="code" href="a00177.html#ga2a4f943607fcf389b7b4dd87e99e50b2" title="Return the golden ratio constant.">golden_ratio</a>();
-<a name="l00180"></a>00180 
-<a name="l00182"></a>00182 } <span class="comment">//namespace glm</span>
-<a name="l00183"></a>00183 
-<a name="l00184"></a>00184 <span class="preprocessor">#include &quot;constants.inl&quot;</span>
+<a name="l00114"></a>00114         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00115"></a>00115         genType <a class="code" href="a00132.html#gafef7954b5fa3228f4aaabde8dfa862a1" title="Arc cosine.">acos</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00116"></a>00116 
+<a name="l00127"></a>00127         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00128"></a>00128         genType <a class="code" href="a00132.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(genType <span class="keyword">const</span> &amp; y, genType <span class="keyword">const</span> &amp; x);
+<a name="l00129"></a>00129 
+<a name="l00137"></a>00137         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00138"></a>00138         genType <a class="code" href="a00132.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(genType <span class="keyword">const</span> &amp; y_over_x);
+<a name="l00139"></a>00139 
+<a name="l00146"></a>00146         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00147"></a>00147         genType <a class="code" href="a00132.html#ga6f38bb1a343b5d73ac71ddd53baa3375" title="Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.">sinh</a>(genType <span class="keyword">const</span> &amp; angle);
+<a name="l00148"></a>00148 
+<a name="l00155"></a>00155         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00156"></a>00156         genType <a class="code" href="a00132.html#gaf1b20113fe439fa48524e8c35ea2c1d0" title="Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.">cosh</a>(genType <span class="keyword">const</span> &amp; angle);
+<a name="l00157"></a>00157 
+<a name="l00164"></a>00164         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00165"></a>00165         genType <a class="code" href="a00132.html#ga5315f571fd52f30d368abc056c4aea13" title="Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)">tanh</a>(genType <span class="keyword">const</span> &amp; angle);
+<a name="l00166"></a>00166 
+<a name="l00173"></a>00173         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00174"></a>00174         genType <a class="code" href="a00132.html#ga615d386dcfb41cdbbca2609c53113aac" title="Arc hyperbolic sine; returns the inverse of sinh.">asinh</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00175"></a>00175         
+<a name="l00183"></a>00183         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00184"></a>00184         genType <a class="code" href="a00132.html#ga0f37ff6b6878a0169cd41249e5377e09" title="Arc hyperbolic cosine; returns the non-negative inverse of cosh.">acosh</a>(genType <span class="keyword">const</span> &amp; x);
 <a name="l00185"></a>00185 
-<a name="l00186"></a>00186 <span class="preprocessor">#endif//GLM_GTX_constants</span>
-</pre></div></div>
-</div>
+<a name="l00193"></a>00193         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00194"></a>00194         genType <a class="code" href="a00132.html#gadeda850d5dff43d4d069854b1b6a623c" title="Arc hyperbolic tangent; returns the inverse of tanh.">atanh</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00195"></a>00195 
+<a name="l00197"></a>00197 }<span class="comment">//namespace glm</span>
+<a name="l00198"></a>00198 
+<a name="l00199"></a>00199 <span class="preprocessor">#include &quot;func_trigonometric.inl&quot;</span>
+<a name="l00200"></a>00200 
+<a name="l00201"></a>00201 <span class="preprocessor">#endif//GLM_CORE_func_trigonometric</span>
+<a name="l00202"></a>00202 <span class="preprocessor"></span>
+<a name="l00203"></a>00203 
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 30 - 19
doc/api-0.9.3/a00033.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>epsilon.hpp File Reference</title>
+<title>func_vector_relational.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -51,41 +52,51 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">epsilon.hpp File Reference</div>  </div>
-</div>
+<div class="title">func_vector_relational.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00033_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5a351af04e1d4ea704c3feaedf14d1a3">equalEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga9b46262410347fc17178980f0e9007f7">notEqualEpsilon</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;epsilon)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga349edc1a383fff08c6d577428416a73b">all</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga7141e1fafe91560d8c8789901d1c1271">any</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#gaeded4966b21a46182176fc6e24e05fdd">equal</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#gabd72ae0dc35908eaa143568fb42c3830">greaterThan</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#gac9b3c898e70adc1e573300b1a8e66e9f">greaterThanEqual</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga1227d6a9d2c15a57d8189c5d9f4d9c53">lessThan</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga6199b9a55616b7b872b0bf0658b239ce">lessThanEqual</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">vecType&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#gac44e885cf2f0b0896124d7ce5df6ed4f">not_</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga20caef2fbce3eacb97e895f2ed315271">notEqual</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00178.html">GLM_GTX_epsilon: Epsilon comparison</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2007-05-21 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-03 / 2011-06-15 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00158.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00164.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion: Quaternion types and functions</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
 
-<p>Definition in file <a class="el" href="a00033_source.html">epsilon.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00033_source.html">func_vector_relational.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 48 - 38
doc/api-0.9.3/a00033_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>epsilon.hpp Source File</title>
+<title>func_vector_relational.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">epsilon.hpp</div>  </div>
-</div>
+<div class="title">func_vector_relational.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00033.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -90,46 +92,54 @@
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038 
 <a name="l00039"></a>00039 
-<a name="l00040"></a>00040 <span class="preprocessor">#ifndef GLM_GTX_epsilon</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_epsilon GLM_VERSION</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span>
-<a name="l00043"></a>00043 <span class="comment">// Dependency:</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
-<a name="l00046"></a>00046 <span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span>
-<a name="l00047"></a>00047 
-<a name="l00048"></a>00048 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_epsilon extension included&quot;)</span>
-<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span>
-<a name="l00052"></a>00052 <span class="keyword">namespace </span>glm
-<a name="l00053"></a>00053 {
-<a name="l00056"></a>00056 
-<a name="l00059"></a>00059         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt; 
-<a name="l00060"></a>00060         <span class="keywordtype">bool</span> <a class="code" href="a00178.html#ga5a351af04e1d4ea704c3feaedf14d1a3" title="Returns the component-wise compare of |x - y| &lt; epsilon.">equalEpsilon</a>(
-<a name="l00061"></a>00061                 genTypeT <span class="keyword">const</span> &amp; x, 
-<a name="l00062"></a>00062                 genTypeT <span class="keyword">const</span> &amp; y, 
-<a name="l00063"></a>00063                 genTypeU <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga73bc2500704c8c25dc3cde534134ca20" title="Return the epsilon constant for floating point types.">epsilon</a>);
-<a name="l00064"></a>00064                 
-<a name="l00067"></a>00067         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;
-<a name="l00068"></a>00068         <span class="keywordtype">bool</span> <a class="code" href="a00178.html#ga9b46262410347fc17178980f0e9007f7" title="Returns the component-wise compare of |x - y| &gt;= epsilon.">notEqualEpsilon</a>(
-<a name="l00069"></a>00069                 genTypeT <span class="keyword">const</span> &amp; x, 
-<a name="l00070"></a>00070                 genTypeT <span class="keyword">const</span> &amp; y, 
-<a name="l00071"></a>00071                 genTypeU <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga73bc2500704c8c25dc3cde534134ca20" title="Return the epsilon constant for floating point types.">epsilon</a>);
-<a name="l00072"></a>00072 
-<a name="l00074"></a>00074 }<span class="comment">//namespace glm</span>
-<a name="l00075"></a>00075 
-<a name="l00076"></a>00076 <span class="preprocessor">#include &quot;epsilon.inl&quot;</span>
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 <span class="preprocessor">#ifndef GLM_CORE_func_vector_relational</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_vector_relational GLM_VERSION</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;<a class="code" href="a00003.html" title="OpenGL Mathematics (glm.g-truc.net)">_detail.hpp</a>&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="keyword">namespace </span>glm
+<a name="l00047"></a>00047 {
+<a name="l00050"></a>00050 
+<a name="l00057"></a>00057     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
+<a name="l00058"></a>00058         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00133.html#ga1227d6a9d2c15a57d8189c5d9f4d9c53" title="Returns the component-wise comparison result of x &lt; y.">lessThan</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
+<a name="l00059"></a>00059 
+<a name="l00066"></a>00066         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
+<a name="l00067"></a>00067         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00133.html#ga6199b9a55616b7b872b0bf0658b239ce" title="Returns the component-wise comparison of result x &lt;= y.">lessThanEqual</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
+<a name="l00068"></a>00068 
+<a name="l00075"></a>00075         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
+<a name="l00076"></a>00076         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00133.html#gabd72ae0dc35908eaa143568fb42c3830" title="Returns the component-wise comparison of result x &gt; y.">greaterThan</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
 <a name="l00077"></a>00077 
-<a name="l00078"></a>00078 <span class="preprocessor">#endif//GLM_GTX_epsilon</span>
-</pre></div></div>
-</div>
+<a name="l00084"></a>00084         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
+<a name="l00085"></a>00085         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00133.html#gac9b3c898e70adc1e573300b1a8e66e9f" title="Returns the component-wise comparison of result x &gt;= y.">greaterThanEqual</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
+<a name="l00086"></a>00086 
+<a name="l00093"></a>00093         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
+<a name="l00094"></a>00094         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00133.html#gaeded4966b21a46182176fc6e24e05fdd" title="Returns the component-wise comparison of result x == y.">equal</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
+<a name="l00095"></a>00095 
+<a name="l00102"></a>00102         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
+<a name="l00103"></a>00103         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00133.html#ga20caef2fbce3eacb97e895f2ed315271" title="Returns the component-wise comparison of result x != y.">notEqual</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
+<a name="l00104"></a>00104 
+<a name="l00111"></a>00111         <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; 
+<a name="l00112"></a>00112         <span class="keywordtype">bool</span> <a class="code" href="a00133.html#ga7141e1fafe91560d8c8789901d1c1271" title="Returns true if any component of x is true.">any</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00113"></a>00113 
+<a name="l00120"></a>00120         <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; 
+<a name="l00121"></a>00121         <span class="keywordtype">bool</span> <a class="code" href="a00133.html#ga349edc1a383fff08c6d577428416a73b" title="Returns true if all components of x are true.">all</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00122"></a>00122 
+<a name="l00130"></a>00130         <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; 
+<a name="l00131"></a>00131         vecType&lt;bool&gt; <a class="code" href="a00133.html#gac44e885cf2f0b0896124d7ce5df6ed4f" title="Returns the component-wise logical complement of x.">not_</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00132"></a>00132 
+<a name="l00134"></a>00134 }<span class="comment">//namespace glm</span>
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136 <span class="preprocessor">#include &quot;func_vector_relational.inl&quot;</span>
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138 <span class="preprocessor">#endif//GLM_CORE_func_vector_relational</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 17 - 49
doc/api-0.9.3/a00034.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>euler_angles.hpp File Reference</title>
+<title>glm.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,68 +49,35 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">euler_angles.hpp File Reference</div>  </div>
-</div>
+<div class="title">glm.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00034_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaac45eaecc2f40ecdda03a7112693dabf">eulerAngleX</a> (valType const &amp;angleX)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga943a94f69965d594efde254c139aaae8">eulerAngleXY</a> (valType const &amp;angleX, valType const &amp;angleY)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gafc6f582fa044bcece3506ffd6d31ef59">eulerAngleXZ</a> (valType const &amp;angleX, valType const &amp;angleZ)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae31b378f18fb01ed6d44c3f92f76eba5">eulerAngleY</a> (valType const &amp;angleY)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaac8d93a4b3ae4014ff8f1c5a5a793236">eulerAngleYX</a> (valType const &amp;angleY, valType const &amp;angleX)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gab2c29b80a86caa83f6b550de31e6889f">eulerAngleYXZ</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga99f4bb03efd91aac95be4ce38a5f44ce">eulerAngleYZ</a> (valType const &amp;angleY, valType const &amp;angleZ)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaa309eabf292cab65cde623f398910685">eulerAngleZ</a> (valType const &amp;angleZ)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga630d8b3aadde3c890251deba896c9946">eulerAngleZX</a> (valType const &amp;angleZ, valType const &amp;angleX)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga6fb1d08bf5eb9320eb6520e9c27f0e80">eulerAngleZY</a> (valType const &amp;angleZ, valType const &amp;angleY)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga381a4208b916cabe7244b1b77b0ea6c2">orientate2</a> (T const &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga745f26f19b9c0e35c22e634e7f0c1721">orientate3</a> (T const &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gadfb25615afc286d77558384ae7b367d6">orientate3</a> (detail::tvec3&lt; T &gt; const &amp;angles)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gabbba69e91bb14442bb1b4d330235c550">orientate4</a> (detail::tvec3&lt; T &gt; const &amp;angles)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga4c297724e663cb77cc2cf7e4ab89b77e">yawPitchRoll</a> (valType const &amp;yaw, valType const &amp;pitch, valType const &amp;roll)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00179.html">GLM_GTX_euler_angles: Matrix from euler angles</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-05-01 / 2011-05-16 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00158.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float: Half-precision floating-point based types and functions</a> (dependence) </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a> (Dependence)</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2005-01-14 / 2011-10-24 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
 
-<p>Definition in file <a class="el" href="a00034_source.html">euler_angles.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00034_source.html">glm.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 90 - 85
doc/api-0.9.3/a00034_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>euler_angles.hpp Source File</title>
+<title>glm.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">euler_angles.hpp</div>  </div>
-</div>
+<div class="title">glm.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00034.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -89,99 +91,102 @@
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_euler_angles</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_euler_angles GLM_VERSION</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span>
-<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 
 <a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_euler_angles extension included&quot;)</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
-<a name="l00051"></a>00051 {
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053 
 <a name="l00054"></a>00054 
-<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00058"></a>00058         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#gaac45eaecc2f40ecdda03a7112693dabf" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.">eulerAngleX</a>(
-<a name="l00059"></a>00059                 valType <span class="keyword">const</span> &amp; angleX);
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059 
 <a name="l00060"></a>00060 
-<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00064"></a>00064         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#gae31b378f18fb01ed6d44c3f92f76eba5" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.">eulerAngleY</a>(
-<a name="l00065"></a>00065                 valType <span class="keyword">const</span> &amp; angleY);
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065 
 <a name="l00066"></a>00066 
-<a name="l00069"></a>00069         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00070"></a>00070         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#gaa309eabf292cab65cde623f398910685" title="Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.">eulerAngleZ</a>(
-<a name="l00071"></a>00071                 valType <span class="keyword">const</span> &amp; angleZ);
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071 
 <a name="l00072"></a>00072 
-<a name="l00075"></a>00075         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00076"></a>00076         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#ga943a94f69965d594efde254c139aaae8" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).">eulerAngleXY</a>(
-<a name="l00077"></a>00077                 valType <span class="keyword">const</span> &amp; angleX, 
-<a name="l00078"></a>00078                 valType <span class="keyword">const</span> &amp; angleY);
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078 <span class="preprocessor">#include &quot;<a class="code" href="a00004.html" title="OpenGL Mathematics (glm.g-truc.net)">core/_fixes.hpp</a>&quot;</span>
 <a name="l00079"></a>00079 
-<a name="l00082"></a>00082         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00083"></a>00083         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#gaac8d93a4b3ae4014ff8f1c5a5a793236" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).">eulerAngleYX</a>(
-<a name="l00084"></a>00084                 valType <span class="keyword">const</span> &amp; angleY, 
-<a name="l00085"></a>00085                 valType <span class="keyword">const</span> &amp; angleX);
-<a name="l00086"></a>00086 
-<a name="l00089"></a>00089         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00090"></a>00090         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#gafc6f582fa044bcece3506ffd6d31ef59" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).">eulerAngleXZ</a>(
-<a name="l00091"></a>00091                 valType <span class="keyword">const</span> &amp; angleX, 
-<a name="l00092"></a>00092                 valType <span class="keyword">const</span> &amp; angleZ);
-<a name="l00093"></a>00093 
-<a name="l00096"></a>00096         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00097"></a>00097         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#ga630d8b3aadde3c890251deba896c9946" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).">eulerAngleZX</a>(
-<a name="l00098"></a>00098                 valType <span class="keyword">const</span> &amp; angleZ, 
-<a name="l00099"></a>00099                 valType <span class="keyword">const</span> &amp; angleX);
-<a name="l00100"></a>00100 
-<a name="l00103"></a>00103         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00104"></a>00104         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#ga99f4bb03efd91aac95be4ce38a5f44ce" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).">eulerAngleYZ</a>(
-<a name="l00105"></a>00105                 valType <span class="keyword">const</span> &amp; angleY, 
-<a name="l00106"></a>00106                 valType <span class="keyword">const</span> &amp; angleZ);
-<a name="l00107"></a>00107 
-<a name="l00110"></a>00110         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00111"></a>00111         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#ga6fb1d08bf5eb9320eb6520e9c27f0e80" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).">eulerAngleZY</a>(
-<a name="l00112"></a>00112                 valType <span class="keyword">const</span> &amp; angleZ, 
-<a name="l00113"></a>00113                 valType <span class="keyword">const</span> &amp; angleY);
-<a name="l00114"></a>00114 
-<a name="l00117"></a>00117         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00118"></a>00118         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#gab2c29b80a86caa83f6b550de31e6889f" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">eulerAngleYXZ</a>(
-<a name="l00119"></a>00119                 valType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#gaac012c1a6bc37ce07a87745d9c596eed" title="Returns yaw value of euler angles in degrees.">yaw</a>, 
-<a name="l00120"></a>00120                 valType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7" title="Returns pitch value of euler angles in degrees.">pitch</a>, 
-<a name="l00121"></a>00121                 valType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga7ef4c8c1ce1ca988add2f73392db0a06" title="Returns roll value of euler angles in degrees.">roll</a>);
+<a name="l00080"></a>00080 <span class="preprocessor">#ifndef glm_glm</span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define glm_glm</span>
+<a name="l00082"></a>00082 <span class="preprocessor"></span>
+<a name="l00083"></a>00083 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00084"></a>00084 <span class="preprocessor">#include &lt;climits&gt;</span>
+<a name="l00085"></a>00085 <span class="preprocessor">#include &lt;cfloat&gt;</span>
+<a name="l00086"></a>00086 <span class="preprocessor">#include &lt;limits&gt;</span>
+<a name="l00087"></a>00087 <span class="preprocessor">#include &lt;cstdio&gt;</span>
+<a name="l00088"></a>00088 <span class="comment">//#include &lt;type_traits&gt;</span>
+<a name="l00089"></a>00089 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">core/setup.hpp</a>&quot;</span>
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))</span>
+<a name="l00092"></a>00092 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED</span>
+<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: Core library included&quot;)</span>
+<a name="l00094"></a>00094 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
+<a name="l00095"></a>00095 <span class="preprocessor"></span>
+<a name="l00096"></a>00096 <span class="preprocessor">#include &quot;<a class="code" href="a00003.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/_detail.hpp</a>&quot;</span>
+<a name="l00097"></a>00097 <span class="preprocessor">#include &quot;<a class="code" href="a00091.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/type.hpp</a>&quot;</span>
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099 <span class="preprocessor">#include &quot;<a class="code" href="a00032.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_trigonometric.hpp</a>&quot;</span>
+<a name="l00100"></a>00100 <span class="preprocessor">#include &quot;<a class="code" href="a00026.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_exponential.hpp</a>&quot;</span>
+<a name="l00101"></a>00101 <span class="preprocessor">#include &quot;<a class="code" href="a00025.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_common.hpp</a>&quot;</span>
+<a name="l00102"></a>00102 <span class="preprocessor">#include &quot;<a class="code" href="a00031.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_packing.hpp</a>&quot;</span>
+<a name="l00103"></a>00103 <span class="preprocessor">#include &quot;<a class="code" href="a00027.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_geometric.hpp</a>&quot;</span>
+<a name="l00104"></a>00104 <span class="preprocessor">#include &quot;<a class="code" href="a00029.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_matrix.hpp</a>&quot;</span>
+<a name="l00105"></a>00105 <span class="preprocessor">#include &quot;<a class="code" href="a00033.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_vector_relational.hpp</a>&quot;</span>
+<a name="l00106"></a>00106 <span class="preprocessor">#include &quot;<a class="code" href="a00028.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_integer.hpp</a>&quot;</span>
+<a name="l00107"></a>00107 <span class="preprocessor">#include &quot;<a class="code" href="a00030.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_noise.hpp</a>&quot;</span>
+<a name="l00108"></a>00108 <span class="preprocessor">#include &quot;<a class="code" href="a00005.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/_swizzle.hpp</a>&quot;</span>
+<a name="l00109"></a>00109 
+<a name="l00111"></a>00111 <span class="comment">// check type sizes</span>
+<a name="l00112"></a>00112 <span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span>        GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::int8) == 1, <span class="stringliteral">&quot;int8 size isn&#39;t 1 byte on this platform&quot;</span>);
+<a name="l00114"></a>00114         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::int16) == 2, <span class="stringliteral">&quot;int16 size isn&#39;t 2 bytes on this platform&quot;</span>);
+<a name="l00115"></a>00115         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::int32) == 4, <span class="stringliteral">&quot;int32 size isn&#39;t 4 bytes on this platform&quot;</span>);
+<a name="l00116"></a>00116         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::int64) == 8, <span class="stringliteral">&quot;int64 size isn&#39;t 8 bytes on this platform&quot;</span>);
+<a name="l00117"></a>00117 
+<a name="l00118"></a>00118         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::uint8) == 1, <span class="stringliteral">&quot;uint8 size isn&#39;t 1 byte on this platform&quot;</span>);
+<a name="l00119"></a>00119         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::uint16) == 2, <span class="stringliteral">&quot;uint16 size isn&#39;t 2 bytes on this platform&quot;</span>);
+<a name="l00120"></a>00120         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::uint32) == 4, <span class="stringliteral">&quot;uint32 size isn&#39;t 4 bytes on this platform&quot;</span>);
+<a name="l00121"></a>00121         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::uint64) == 8, <span class="stringliteral">&quot;uint64 size isn&#39;t 8 bytes on this platform&quot;</span>);
 <a name="l00122"></a>00122 
-<a name="l00125"></a>00125         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00126"></a>00126         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00179.html#ga4c297724e663cb77cc2cf7e4ab89b77e" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">yawPitchRoll</a>(
-<a name="l00127"></a>00127                 valType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#gaac012c1a6bc37ce07a87745d9c596eed" title="Returns yaw value of euler angles in degrees.">yaw</a>, 
-<a name="l00128"></a>00128                 valType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7" title="Returns pitch value of euler angles in degrees.">pitch</a>, 
-<a name="l00129"></a>00129                 valType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga7ef4c8c1ce1ca988add2f73392db0a06" title="Returns roll value of euler angles in degrees.">roll</a>);
-<a name="l00130"></a>00130 
-<a name="l00133"></a>00133         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00134"></a>00134         detail::tmat2x2&lt;T&gt; <a class="code" href="a00179.html#ga381a4208b916cabe7244b1b77b0ea6c2" 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="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00135"></a>00135 
-<a name="l00138"></a>00138         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00139"></a>00139         detail::tmat3x3&lt;T&gt; <a class="code" href="a00179.html#ga745f26f19b9c0e35c22e634e7f0c1721" title="Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.">orientate3</a>(T <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00140"></a>00140 
-<a name="l00143"></a>00143         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00144"></a>00144         detail::tmat3x3&lt;T&gt; <a class="code" href="a00179.html#ga745f26f19b9c0e35c22e634e7f0c1721" title="Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.">orientate3</a>(detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; angles);
-<a name="l00145"></a>00145                 
-<a name="l00148"></a>00148         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00149"></a>00149         detail::tmat4x4&lt;T&gt; <a class="code" href="a00179.html#gabbba69e91bb14442bb1b4d330235c550" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">orientate4</a>(detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; angles);
-<a name="l00150"></a>00150 
-<a name="l00152"></a>00152 }<span class="comment">//namespace glm</span>
-<a name="l00153"></a>00153 
-<a name="l00154"></a>00154 <span class="preprocessor">#include &quot;euler_angles.inl&quot;</span>
-<a name="l00155"></a>00155 
-<a name="l00156"></a>00156 <span class="preprocessor">#endif//GLM_GTX_euler_angles</span>
-</pre></div></div>
-</div>
+<a name="l00123"></a>00123         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00002.html" title="16-bit floating point type.">glm::detail::float16</a>) == 2, <span class="stringliteral">&quot;float16 size isn&#39;t 2 bytes on this platform&quot;</span>);
+<a name="l00124"></a>00124         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::float32) == 4, <span class="stringliteral">&quot;float32 size isn&#39;t 4 bytes on this platform&quot;</span>);
+<a name="l00125"></a>00125         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::float64) == 8, <span class="stringliteral">&quot;float64 size isn&#39;t 8 bytes on this platform&quot;</span>);
+<a name="l00126"></a>00126 <span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span>
+<a name="l00127"></a>00127 <span class="preprocessor"></span>
+<a name="l00128"></a>00128 <span class="preprocessor">#endif//glm_glm</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 81 - 0
doc/api-0.9.3/a00035.html

@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+
+<title>gradient_paint.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  
+  
+  
+   
+  
+  
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.6.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">gradient_paint.hpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00035_source.html">Go to the source code of this file.</a></p>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00168.html">GLM_GTX_gradient_paint: Procedural gradient color</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-03-06 / 2011-06-07 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00188.html" title="Integer exponentiation of power functions.">GLM_GTX_optimum_pow: Optimum pow</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00035_source.html">gradient_paint.hpp</a>.</p>
+</div></div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.6.1
+</small></address>
+
+</body>
+</html>

+ 38 - 112
doc/api-0.9.3/a00035_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>ext.hpp Source File</title>
+<title>gradient_paint.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,12 +47,13 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">ext.hpp</div>  </div>
-</div>
+<div class="title">gradient_paint.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a href="a00035.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 
 <a name="l00004"></a>00004 
@@ -88,121 +90,45 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040 
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 
-<a name="l00043"></a>00043 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_gradient_paint</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_gradient_paint GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../gtx/optimum_pow.hpp&quot;</span>
 <a name="l00044"></a>00044 
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 
-<a name="l00047"></a>00047 
-<a name="l00048"></a>00048 
-<a name="l00049"></a>00049 
-<a name="l00050"></a>00050 
-<a name="l00051"></a>00051 
-<a name="l00052"></a>00052 
+<a name="l00045"></a>00045 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_gradient_paint extension included&quot;)</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span>
+<a name="l00049"></a>00049 <span class="keyword">namespace </span>glm
+<a name="l00050"></a>00050 {
 <a name="l00053"></a>00053 
-<a name="l00054"></a>00054 
-<a name="l00055"></a>00055 
-<a name="l00056"></a>00056 
-<a name="l00057"></a>00057 
-<a name="l00058"></a>00058 <span class="preprocessor">#ifndef glm_ext</span>
-<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#define glm_ext</span>
-<a name="l00060"></a>00060 <span class="preprocessor"></span>
-<a name="l00061"></a>00061 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))</span>
-<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED</span>
-<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: All extensions included (not recommanded)&quot;)</span>
-<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGES</span>
-<a name="l00065"></a>00065 <span class="preprocessor"></span>
-<a name="l00066"></a>00066 <span class="preprocessor">#include &quot;<a class="code" href="a00052.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/half_float.hpp</a>&quot;</span>
-<a name="l00067"></a>00067 <span class="preprocessor">#include &quot;<a class="code" href="a00067.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/matrix_access.hpp</a>&quot;</span>
-<a name="l00068"></a>00068 <span class="preprocessor">#include &quot;<a class="code" href="a00069.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/matrix_integer.hpp</a>&quot;</span>
-<a name="l00069"></a>00069 <span class="preprocessor">#include &quot;<a class="code" href="a00071.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/matrix_inverse.hpp</a>&quot;</span>
-<a name="l00070"></a>00070 <span class="preprocessor">#include &quot;<a class="code" href="a00075.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/matrix_transform.hpp</a>&quot;</span>
-<a name="l00071"></a>00071 <span class="preprocessor">#include &quot;<a class="code" href="a00091.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/quaternion.hpp</a>&quot;</span>
-<a name="l00072"></a>00072 <span class="preprocessor">#include &quot;<a class="code" href="a00104.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/swizzle.hpp</a>&quot;</span>
-<a name="l00073"></a>00073 <span class="preprocessor">#include &quot;<a class="code" href="a00122.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/type_precision.hpp</a>&quot;</span>
-<a name="l00074"></a>00074 <span class="preprocessor">#include &quot;<a class="code" href="a00123.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtc/type_ptr.hpp</a>&quot;</span>
+<a name="l00056"></a>00056         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
+<a name="l00057"></a>00057         valType radialGradient(
+<a name="l00058"></a>00058                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Center,
+<a name="l00059"></a>00059                 valType <span class="keyword">const</span> &amp; Radius,
+<a name="l00060"></a>00060                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Focal,
+<a name="l00061"></a>00061                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Position);
+<a name="l00062"></a>00062 
+<a name="l00065"></a>00065         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
+<a name="l00066"></a>00066         valType linearGradient(
+<a name="l00067"></a>00067                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Point0,
+<a name="l00068"></a>00068                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Point1,
+<a name="l00069"></a>00069                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Position);
+<a name="l00070"></a>00070 
+<a name="l00072"></a>00072 }<span class="comment">// namespace glm</span>
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074 <span class="preprocessor">#include &quot;gradient_paint.inl&quot;</span>
 <a name="l00075"></a>00075 
-<a name="l00076"></a>00076 <span class="preprocessor">#include &quot;<a class="code" href="a00024.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/associated_min_max.hpp</a>&quot;</span>
-<a name="l00077"></a>00077 <span class="preprocessor">#include &quot;<a class="code" href="a00025.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/bit.hpp</a>&quot;</span>
-<a name="l00078"></a>00078 <span class="preprocessor">#include &quot;./gtx/closest_point.hpp&quot;</span>
-<a name="l00079"></a>00079 <span class="preprocessor">#include &quot;<a class="code" href="a00027.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/color_cast.hpp</a>&quot;</span>
-<a name="l00080"></a>00080 <span class="preprocessor">#include &quot;<a class="code" href="a00028.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/color_space.hpp</a>&quot;</span>
-<a name="l00081"></a>00081 <span class="preprocessor">#include &quot;<a class="code" href="a00029.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/color_space_YCoCg.hpp</a>&quot;</span>
-<a name="l00082"></a>00082 <span class="preprocessor">#include &quot;<a class="code" href="a00030.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/compatibility.hpp</a>&quot;</span>
-<a name="l00083"></a>00083 <span class="preprocessor">#include &quot;<a class="code" href="a00031.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/component_wise.hpp</a>&quot;</span>
-<a name="l00084"></a>00084 <span class="preprocessor">#include &quot;<a class="code" href="a00033.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/epsilon.hpp</a>&quot;</span>
-<a name="l00085"></a>00085 <span class="preprocessor">#include &quot;<a class="code" href="a00034.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/euler_angles.hpp</a>&quot;</span>
-<a name="l00086"></a>00086 <span class="preprocessor">#include &quot;<a class="code" href="a00036.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/extend.hpp</a>&quot;</span>
-<a name="l00087"></a>00087 <span class="preprocessor">#include &quot;<a class="code" href="a00037.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/extented_min_max.hpp</a>&quot;</span>
-<a name="l00088"></a>00088 <span class="preprocessor">#include &quot;<a class="code" href="a00038.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/fast_exponential.hpp</a>&quot;</span>
-<a name="l00089"></a>00089 <span class="preprocessor">#include &quot;<a class="code" href="a00039.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/fast_square_root.hpp</a>&quot;</span>
-<a name="l00090"></a>00090 <span class="preprocessor">#include &quot;<a class="code" href="a00040.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/fast_trigonometry.hpp</a>&quot;</span>
-<a name="l00091"></a>00091 <span class="preprocessor">#include &quot;<a class="code" href="a00051.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/gradient_paint.hpp</a>&quot;</span>
-<a name="l00092"></a>00092 <span class="preprocessor">#include &quot;<a class="code" href="a00053.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/handed_coordinate_space.hpp</a>&quot;</span>
-<a name="l00093"></a>00093 <span class="preprocessor">#include &quot;<a class="code" href="a00055.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/inertia.hpp</a>&quot;</span>
-<a name="l00094"></a>00094 <span class="preprocessor">#include &quot;<a class="code" href="a00056.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/int_10_10_10_2.hpp</a>&quot;</span>
-<a name="l00095"></a>00095 <span class="preprocessor">#include &quot;<a class="code" href="a00057.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/integer.hpp</a>&quot;</span>
-<a name="l00096"></a>00096 <span class="preprocessor">#include &quot;<a class="code" href="a00058.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/intersect.hpp</a>&quot;</span>
-<a name="l00097"></a>00097 <span class="preprocessor">#include &quot;<a class="code" href="a00065.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/log_base.hpp</a>&quot;</span>
-<a name="l00098"></a>00098 <span class="preprocessor">#include &quot;<a class="code" href="a00068.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_cross_product.hpp</a>&quot;</span>
-<a name="l00099"></a>00099 <span class="preprocessor">#include &quot;<a class="code" href="a00070.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_interpolation.hpp</a>&quot;</span>
-<a name="l00100"></a>00100 <span class="preprocessor">#include &quot;<a class="code" href="a00072.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_major_storage.hpp</a>&quot;</span>
-<a name="l00101"></a>00101 <span class="preprocessor">#include &quot;<a class="code" href="a00073.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_operation.hpp</a>&quot;</span>
-<a name="l00102"></a>00102 <span class="preprocessor">#include &quot;<a class="code" href="a00074.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/matrix_query.hpp</a>&quot;</span>
-<a name="l00103"></a>00103 <span class="preprocessor">#include &quot;<a class="code" href="a00076.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/mixed_product.hpp</a>&quot;</span>
-<a name="l00104"></a>00104 <span class="preprocessor">#include &quot;<a class="code" href="a00077.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/multiple.hpp</a>&quot;</span>
-<a name="l00105"></a>00105 <span class="preprocessor">#include &quot;<a class="code" href="a00079.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/noise.hpp</a>&quot;</span>
-<a name="l00106"></a>00106 <span class="preprocessor">#include &quot;<a class="code" href="a00080.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/norm.hpp</a>&quot;</span>
-<a name="l00107"></a>00107 <span class="preprocessor">#include &quot;<a class="code" href="a00081.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/normal.hpp</a>&quot;</span>
-<a name="l00108"></a>00108 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/normalize_dot.hpp</a>&quot;</span>
-<a name="l00109"></a>00109 <span class="preprocessor">#include &quot;<a class="code" href="a00083.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/number_precision.hpp</a>&quot;</span>
-<a name="l00110"></a>00110 <span class="preprocessor">#include &quot;<a class="code" href="a00084.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/ocl_type.hpp</a>&quot;</span>
-<a name="l00111"></a>00111 <span class="preprocessor">#include &quot;<a class="code" href="a00085.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/optimum_pow.hpp</a>&quot;</span>
-<a name="l00112"></a>00112 <span class="preprocessor">#include &quot;<a class="code" href="a00086.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/orthonormalize.hpp</a>&quot;</span>
-<a name="l00113"></a>00113 <span class="preprocessor">#include &quot;<a class="code" href="a00088.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/perpendicular.hpp</a>&quot;</span>
-<a name="l00114"></a>00114 <span class="preprocessor">#include &quot;<a class="code" href="a00089.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/polar_coordinates.hpp</a>&quot;</span>
-<a name="l00115"></a>00115 <span class="preprocessor">#include &quot;<a class="code" href="a00090.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/projection.hpp</a>&quot;</span>
-<a name="l00116"></a>00116 <span class="preprocessor">#include &quot;<a class="code" href="a00092.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/quaternion.hpp</a>&quot;</span>
-<a name="l00117"></a>00117 <span class="preprocessor">#include &quot;<a class="code" href="a00094.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/random.hpp</a>&quot;</span>
-<a name="l00118"></a>00118 <span class="preprocessor">#include &quot;<a class="code" href="a00095.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/raw_data.hpp</a>&quot;</span>
-<a name="l00119"></a>00119 <span class="preprocessor">#include &quot;<a class="code" href="a00096.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/reciprocal.hpp</a>&quot;</span>
-<a name="l00120"></a>00120 <span class="preprocessor">#include &quot;<a class="code" href="a00097.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/rotate_vector.hpp</a>&quot;</span>
-<a name="l00121"></a>00121 <span class="preprocessor">#include &quot;<a class="code" href="a00101.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/spline.hpp</a>&quot;</span>
-<a name="l00122"></a>00122 <span class="preprocessor">#include &quot;<a class="code" href="a00102.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/std_based_type.hpp</a>&quot;</span>
-<a name="l00123"></a>00123 <span class="preprocessor">#include &quot;<a class="code" href="a00103.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/string_cast.hpp</a>&quot;</span>
-<a name="l00124"></a>00124 <span class="preprocessor">#include &quot;<a class="code" href="a00105.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/transform.hpp</a>&quot;</span>
-<a name="l00125"></a>00125 <span class="preprocessor">#include &quot;<a class="code" href="a00106.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/transform2.hpp</a>&quot;</span>
-<a name="l00126"></a>00126 <span class="preprocessor">#include &quot;<a class="code" href="a00130.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/ulp.hpp</a>&quot;</span>
-<a name="l00127"></a>00127 <span class="preprocessor">#include &quot;<a class="code" href="a00132.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/vec1.hpp</a>&quot;</span>
-<a name="l00128"></a>00128 <span class="preprocessor">#include &quot;<a class="code" href="a00133.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/vector_access.hpp</a>&quot;</span>
-<a name="l00129"></a>00129 <span class="preprocessor">#include &quot;<a class="code" href="a00134.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/vector_angle.hpp</a>&quot;</span>
-<a name="l00130"></a>00130 <span class="preprocessor">#include &quot;<a class="code" href="a00135.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/vector_query.hpp</a>&quot;</span>
-<a name="l00131"></a>00131 <span class="preprocessor">#include &quot;<a class="code" href="a00136.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/verbose_operator.hpp</a>&quot;</span>
-<a name="l00132"></a>00132 <span class="preprocessor">#include &quot;<a class="code" href="a00137.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/wrap.hpp</a>&quot;</span>
-<a name="l00133"></a>00133 
-<a name="l00134"></a>00134 <span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE2)</span>
-<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#       include &quot;<a class="code" href="a00100.html" title="OpenGL Mathematics (glm.g-truc.net)">./gtx/simd_vec4.hpp</a>&quot;</span>
-<a name="l00136"></a>00136 <span class="preprocessor">#       include &quot;./gtx/simd_mat4.hpp&quot;</span>
-<a name="l00137"></a>00137 <span class="preprocessor">#endif</span>
-<a name="l00138"></a>00138 <span class="preprocessor"></span>
-<a name="l00139"></a>00139 <span class="preprocessor">#include &quot;<a class="code" href="a00138.html" title="OpenGL Mathematics (glm.g-truc.net)">./virtrev/xstream.hpp</a>&quot;</span>
-<a name="l00140"></a>00140 
-<a name="l00141"></a>00141 <span class="comment">//const float goldenRatio = 1.618033988749894848f;</span>
-<a name="l00142"></a>00142 <span class="comment">//const float pi = 3.141592653589793238f;</span>
-<a name="l00143"></a>00143 
-<a name="l00144"></a>00144 <span class="preprocessor">#endif //glm_ext</span>
-</pre></div></div>
-</div>
+<a name="l00076"></a>00076 <span class="preprocessor">#endif//GLM_GTX_gradient_paint</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 19
doc/api-0.9.3/a00036.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>extend.hpp File Reference</title>
+<title>half_float.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,38 +49,30 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">extend.hpp File Reference</div>  </div>
-</div>
+<div class="title">half_float.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00036_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gabb68ca9fb290f499da24515735397550">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00180.html">GLM_GTX_extend: Position extending</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2006-01-07 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00141.html">GLM_GTC_half_float: Half-precision floating-point based types and functions</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-04-29 / 2011-06-05 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00036_source.html">extend.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00036_source.html">half_float.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 311 - 29
doc/api-0.9.3/a00036_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>extend.hpp Source File</title>
+<title>half_float.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">extend.hpp</div>  </div>
-</div>
+<div class="title">half_float.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00036.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -87,39 +89,319 @@
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_extend</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_extend GLM_VERSION</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_extend extension included&quot;)</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span>
-<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef GLM_GTC_half_float</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTC_half_float GLM_VERSION</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="comment">// Dependency:</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTC_half_float extension included&quot;)</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00047"></a>00047 <span class="keyword">namespace </span>glm{
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>detail
 <a name="l00049"></a>00049 {
-<a name="l00052"></a>00052 
-<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00056"></a>00056         genType <a class="code" href="a00180.html#gabb68ca9fb290f499da24515735397550" title="Extends of Length the Origin position using the (Source - Origin) direction.">extend</a>(
-<a name="l00057"></a>00057                 genType <span class="keyword">const</span> &amp; Origin, 
-<a name="l00058"></a>00058                 genType <span class="keyword">const</span> &amp; Source, 
-<a name="l00059"></a>00059                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);
+<a name="l00050"></a>00050 <span class="preprocessor">#if(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span>        <span class="keyword">template</span> &lt;&gt;
+<a name="l00052"></a>00052         <span class="keyword">struct </span>tvec2&lt;half&gt;
+<a name="l00053"></a>00053         {
+<a name="l00054"></a>00054                 <span class="keyword">enum</span> ctor{null};
+<a name="l00055"></a>00055                 <span class="keyword">typedef</span> half value_type;
+<a name="l00056"></a>00056                 <span class="keyword">typedef</span> std::size_t size_type;
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058         GLM_FUNC_DECL size_type <a class="code" href="a00127.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>() <span class="keyword">const</span>;
+<a name="l00059"></a>00059                 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
 <a name="l00060"></a>00060 
-<a name="l00062"></a>00062 }<span class="comment">//namespace glm</span>
+<a name="l00061"></a>00061                 <span class="keyword">typedef</span> tvec2&lt;half&gt; type;
+<a name="l00062"></a>00062                 <span class="keyword">typedef</span> tvec2&lt;bool&gt; bool_type;
 <a name="l00063"></a>00063 
-<a name="l00064"></a>00064 <span class="preprocessor">#include &quot;extend.inl&quot;</span>
-<a name="l00065"></a>00065 
-<a name="l00066"></a>00066 <span class="preprocessor">#endif//GLM_GTX_extend</span>
-</pre></div></div>
-</div>
+<a name="l00065"></a>00065                 <span class="comment">// Data</span>
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067                 half x, y;
+<a name="l00068"></a>00068 
+<a name="l00070"></a>00070                 <span class="comment">// Accesses</span>
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072                 half &amp; operator[](size_type i);
+<a name="l00073"></a>00073                 half <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
+<a name="l00074"></a>00074 
+<a name="l00076"></a>00076                 <span class="comment">// Implicit basic constructors</span>
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078                 tvec2();
+<a name="l00079"></a>00079                 tvec2(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00080"></a>00080 
+<a name="l00082"></a>00082                 <span class="comment">// Explicit basic constructors</span>
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084                 <span class="keyword">explicit</span> tvec2(ctor);
+<a name="l00085"></a>00085                 <span class="keyword">explicit</span> tvec2(
+<a name="l00086"></a>00086                         half <span class="keyword">const</span> &amp; s);
+<a name="l00087"></a>00087                 <span class="keyword">explicit</span> tvec2(
+<a name="l00088"></a>00088                         half <span class="keyword">const</span> &amp; s1, 
+<a name="l00089"></a>00089                         half <span class="keyword">const</span> &amp; s2);
+<a name="l00090"></a>00090 
+<a name="l00092"></a>00092                 <span class="comment">// Swizzle constructors</span>
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094                 tvec2(tref2&lt;half&gt; <span class="keyword">const</span> &amp; r);
+<a name="l00095"></a>00095 
+<a name="l00097"></a>00097                 <span class="comment">// Convertion scalar constructors</span>
+<a name="l00098"></a>00098 
+<a name="l00100"></a>00100                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00101"></a>00101                 <span class="keyword">explicit</span> tvec2(U <span class="keyword">const</span> &amp; x);
+<a name="l00103"></a>00103                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt; 
+<a name="l00104"></a>00104                 <span class="keyword">explicit</span> tvec2(U <span class="keyword">const</span> &amp; x, V <span class="keyword">const</span> &amp; y);                       
+<a name="l00105"></a>00105 
+<a name="l00107"></a>00107                 <span class="comment">// Convertion vector constructors</span>
+<a name="l00108"></a>00108 
+<a name="l00110"></a>00110                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00111"></a>00111                 <span class="keyword">explicit</span> tvec2(tvec2&lt;U&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00113"></a>00113                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00114"></a>00114                 <span class="keyword">explicit</span> tvec2(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00116"></a>00116                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00117"></a>00117                 <span class="keyword">explicit</span> tvec2(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00118"></a>00118 
+<a name="l00120"></a>00120                 <span class="comment">// Unary arithmetic operators</span>
+<a name="l00121"></a>00121 
+<a name="l00122"></a>00122                 tvec2&lt;half&gt;&amp; operator= (tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124                 tvec2&lt;half&gt;&amp; operator+=(half <span class="keyword">const</span> &amp; s);
+<a name="l00125"></a>00125                 tvec2&lt;half&gt;&amp; operator+=(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00126"></a>00126                 tvec2&lt;half&gt;&amp; operator-=(half <span class="keyword">const</span> &amp; s);
+<a name="l00127"></a>00127                 tvec2&lt;half&gt;&amp; operator-=(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00128"></a>00128                 tvec2&lt;half&gt;&amp; operator*=(half <span class="keyword">const</span> &amp; s);
+<a name="l00129"></a>00129                 tvec2&lt;half&gt;&amp; operator*=(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00130"></a>00130                 tvec2&lt;half&gt;&amp; operator/=(half <span class="keyword">const</span> &amp; s);
+<a name="l00131"></a>00131                 tvec2&lt;half&gt;&amp; operator/=(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00132"></a>00132                 tvec2&lt;half&gt;&amp; operator++();
+<a name="l00133"></a>00133                 tvec2&lt;half&gt;&amp; operator--();
+<a name="l00134"></a>00134 
+<a name="l00136"></a>00136                 <span class="comment">// Swizzle operators</span>
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138                 half swizzle(comp X) <span class="keyword">const</span>;
+<a name="l00139"></a>00139                 tvec2&lt;half&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
+<a name="l00140"></a>00140                 tvec3&lt;half&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
+<a name="l00141"></a>00141                 tvec4&lt;half&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
+<a name="l00142"></a>00142                 tref2&lt;half&gt; swizzle(comp X, comp Y);
+<a name="l00143"></a>00143         };
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145         <span class="keyword">template</span> &lt;&gt;
+<a name="l00146"></a>00146         <span class="keyword">struct </span>tvec3&lt;half&gt;
+<a name="l00147"></a>00147         {
+<a name="l00148"></a>00148                 <span class="keyword">enum</span> ctor{null};
+<a name="l00149"></a>00149                 <span class="keyword">typedef</span> half value_type;
+<a name="l00150"></a>00150                 <span class="keyword">typedef</span> std::size_t size_type;
+<a name="l00151"></a>00151         GLM_FUNC_DECL size_type <a class="code" href="a00127.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>() <span class="keyword">const</span>;
+<a name="l00152"></a>00152                 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154                 <span class="keyword">typedef</span> tvec3&lt;half&gt; type;
+<a name="l00155"></a>00155                 <span class="keyword">typedef</span> tvec3&lt;bool&gt; bool_type;
+<a name="l00156"></a>00156 
+<a name="l00158"></a>00158                 <span class="comment">// Data</span>
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160                 half x, y, z;
+<a name="l00161"></a>00161 
+<a name="l00163"></a>00163                 <span class="comment">// Accesses</span>
+<a name="l00164"></a>00164 
+<a name="l00165"></a>00165                 half &amp; operator[](size_type i);
+<a name="l00166"></a>00166                 half <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
+<a name="l00167"></a>00167 
+<a name="l00169"></a>00169                 <span class="comment">// Implicit basic constructors</span>
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171                 tvec3();
+<a name="l00172"></a>00172                 tvec3(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00173"></a>00173 
+<a name="l00175"></a>00175                 <span class="comment">// Explicit basic constructors</span>
+<a name="l00176"></a>00176 
+<a name="l00177"></a>00177                 <span class="keyword">explicit</span> tvec3(ctor);
+<a name="l00178"></a>00178                 <span class="keyword">explicit</span> tvec3(
+<a name="l00179"></a>00179                         half <span class="keyword">const</span> &amp; s);
+<a name="l00180"></a>00180                 <span class="keyword">explicit</span> tvec3(
+<a name="l00181"></a>00181                         half <span class="keyword">const</span> &amp; s1, 
+<a name="l00182"></a>00182                         half <span class="keyword">const</span> &amp; s2, 
+<a name="l00183"></a>00183                         half <span class="keyword">const</span> &amp; s3);
+<a name="l00184"></a>00184 
+<a name="l00186"></a>00186                 <span class="comment">// Swizzle constructors</span>
+<a name="l00187"></a>00187 
+<a name="l00188"></a>00188                 tvec3(tref3&lt;half&gt; <span class="keyword">const</span> &amp; r);
+<a name="l00189"></a>00189 
+<a name="l00191"></a>00191                 <span class="comment">// Convertion scalar constructors</span>
+<a name="l00192"></a>00192 
+<a name="l00194"></a>00194                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00195"></a>00195                 <span class="keyword">explicit</span> tvec3(U <span class="keyword">const</span> &amp; x);
+<a name="l00197"></a>00197                 <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; 
+<a name="l00198"></a>00198                 <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);                  
+<a name="l00199"></a>00199 
+<a name="l00201"></a>00201                 <span class="comment">// Convertion vector constructors</span>
+<a name="l00202"></a>00202 
+<a name="l00204"></a>00204                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
+<a name="l00205"></a>00205                 <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);
+<a name="l00207"></a>00207                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
+<a name="l00208"></a>00208                 <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);
+<a name="l00210"></a>00210                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00211"></a>00211                 <span class="keyword">explicit</span> tvec3(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00213"></a>00213                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00214"></a>00214                 <span class="keyword">explicit</span> tvec3(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00215"></a>00215 
+<a name="l00217"></a>00217                 <span class="comment">// Unary arithmetic operators</span>
+<a name="l00218"></a>00218 
+<a name="l00219"></a>00219                 tvec3&lt;half&gt;&amp; operator= (tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221                 tvec3&lt;half&gt;&amp; operator+=(half <span class="keyword">const</span> &amp; s);
+<a name="l00222"></a>00222                 tvec3&lt;half&gt;&amp; operator+=(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00223"></a>00223                 tvec3&lt;half&gt;&amp; operator-=(half <span class="keyword">const</span> &amp; s);
+<a name="l00224"></a>00224                 tvec3&lt;half&gt;&amp; operator-=(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00225"></a>00225                 tvec3&lt;half&gt;&amp; operator*=(half <span class="keyword">const</span> &amp; s);
+<a name="l00226"></a>00226                 tvec3&lt;half&gt;&amp; operator*=(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00227"></a>00227                 tvec3&lt;half&gt;&amp; operator/=(half <span class="keyword">const</span> &amp; s);
+<a name="l00228"></a>00228                 tvec3&lt;half&gt;&amp; operator/=(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00229"></a>00229                 tvec3&lt;half&gt;&amp; operator++();
+<a name="l00230"></a>00230                 tvec3&lt;half&gt;&amp; operator--();
+<a name="l00231"></a>00231 
+<a name="l00233"></a>00233                 <span class="comment">// Swizzle operators</span>
+<a name="l00234"></a>00234 
+<a name="l00235"></a>00235                 half swizzle(comp X) <span class="keyword">const</span>;
+<a name="l00236"></a>00236                 tvec2&lt;half&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
+<a name="l00237"></a>00237                 tvec3&lt;half&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
+<a name="l00238"></a>00238                 tvec4&lt;half&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
+<a name="l00239"></a>00239                 tref3&lt;half&gt; swizzle(comp X, comp Y, comp Z);
+<a name="l00240"></a>00240         };
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242         <span class="keyword">template</span> &lt;&gt;
+<a name="l00243"></a>00243         <span class="keyword">struct </span>tvec4&lt;half&gt;
+<a name="l00244"></a>00244         {
+<a name="l00245"></a>00245                 <span class="keyword">enum</span> ctor{null};
+<a name="l00246"></a>00246                 <span class="keyword">typedef</span> half value_type;
+<a name="l00247"></a>00247                 <span class="keyword">typedef</span> std::size_t size_type;
+<a name="l00248"></a>00248         GLM_FUNC_DECL size_type <a class="code" href="a00127.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>() <span class="keyword">const</span>;
+<a name="l00249"></a>00249                 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
+<a name="l00250"></a>00250 
+<a name="l00251"></a>00251                 <span class="keyword">typedef</span> tvec4&lt;half&gt; type;
+<a name="l00252"></a>00252                 <span class="keyword">typedef</span> tvec4&lt;bool&gt; bool_type;
+<a name="l00253"></a>00253 
+<a name="l00255"></a>00255                 <span class="comment">// Data</span>
+<a name="l00256"></a>00256 
+<a name="l00257"></a>00257                 half x, y, z, w;
+<a name="l00258"></a>00258 
+<a name="l00260"></a>00260                 <span class="comment">// Accesses</span>
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262                 half &amp; operator[](size_type i);
+<a name="l00263"></a>00263                 half <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
+<a name="l00264"></a>00264 
+<a name="l00266"></a>00266                 <span class="comment">// Implicit basic constructors</span>
+<a name="l00267"></a>00267 
+<a name="l00268"></a>00268                 tvec4();
+<a name="l00269"></a>00269                 tvec4(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00270"></a>00270 
+<a name="l00272"></a>00272                 <span class="comment">// Explicit basic constructors</span>
+<a name="l00273"></a>00273 
+<a name="l00274"></a>00274                 <span class="keyword">explicit</span> tvec4(ctor);
+<a name="l00275"></a>00275                 <span class="keyword">explicit</span> tvec4(
+<a name="l00276"></a>00276                         half <span class="keyword">const</span> &amp; s);
+<a name="l00277"></a>00277                 <span class="keyword">explicit</span> tvec4(
+<a name="l00278"></a>00278                         half <span class="keyword">const</span> &amp; s0, 
+<a name="l00279"></a>00279                         half <span class="keyword">const</span> &amp; s1, 
+<a name="l00280"></a>00280                         half <span class="keyword">const</span> &amp; s2, 
+<a name="l00281"></a>00281                         half <span class="keyword">const</span> &amp; s3);
+<a name="l00282"></a>00282 
+<a name="l00284"></a>00284                 <span class="comment">// Swizzle constructors</span>
+<a name="l00285"></a>00285 
+<a name="l00286"></a>00286                 tvec4(tref4&lt;half&gt; <span class="keyword">const</span> &amp; r);
+<a name="l00287"></a>00287 
+<a name="l00289"></a>00289                 <span class="comment">// Convertion scalar constructors</span>
+<a name="l00290"></a>00290 
+<a name="l00292"></a>00292                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00293"></a>00293                 <span class="keyword">explicit</span> tvec4(U <span class="keyword">const</span> &amp; x);
+<a name="l00295"></a>00295                 <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; 
+<a name="l00296"></a>00296                 <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);                     
+<a name="l00297"></a>00297 
+<a name="l00299"></a>00299                 <span class="comment">// Convertion vector constructors</span>
+<a name="l00300"></a>00300 
+<a name="l00302"></a>00302                 <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; 
+<a name="l00303"></a>00303                 <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);
+<a name="l00305"></a>00305                 <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; 
+<a name="l00306"></a>00306                 <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);
+<a name="l00308"></a>00308                 <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; 
+<a name="l00309"></a>00309                 <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);
+<a name="l00311"></a>00311                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
+<a name="l00312"></a>00312                 <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);
+<a name="l00314"></a>00314                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
+<a name="l00315"></a>00315                 <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);
+<a name="l00317"></a>00317                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
+<a name="l00318"></a>00318                 <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);
+<a name="l00320"></a>00320                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
+<a name="l00321"></a>00321                 <span class="keyword">explicit</span> tvec4(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00322"></a>00322 
+<a name="l00324"></a>00324                 <span class="comment">// Unary arithmetic operators</span>
+<a name="l00325"></a>00325 
+<a name="l00326"></a>00326                 tvec4&lt;half&gt;&amp; operator= (tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00327"></a>00327 
+<a name="l00328"></a>00328                 tvec4&lt;half&gt;&amp; operator+=(half <span class="keyword">const</span> &amp; s);
+<a name="l00329"></a>00329                 tvec4&lt;half&gt;&amp; operator+=(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00330"></a>00330                 tvec4&lt;half&gt;&amp; operator-=(half <span class="keyword">const</span> &amp; s);
+<a name="l00331"></a>00331                 tvec4&lt;half&gt;&amp; operator-=(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00332"></a>00332                 tvec4&lt;half&gt;&amp; operator*=(half <span class="keyword">const</span> &amp; s);
+<a name="l00333"></a>00333                 tvec4&lt;half&gt;&amp; operator*=(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00334"></a>00334                 tvec4&lt;half&gt;&amp; operator/=(half <span class="keyword">const</span> &amp; s);
+<a name="l00335"></a>00335                 tvec4&lt;half&gt;&amp; operator/=(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
+<a name="l00336"></a>00336                 tvec4&lt;half&gt;&amp; operator++();
+<a name="l00337"></a>00337                 tvec4&lt;half&gt;&amp; operator--();
+<a name="l00338"></a>00338 
+<a name="l00340"></a>00340                 <span class="comment">// Swizzle operators</span>
+<a name="l00341"></a>00341 
+<a name="l00342"></a>00342                 half swizzle(comp X) <span class="keyword">const</span>;
+<a name="l00343"></a>00343                 tvec2&lt;half&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
+<a name="l00344"></a>00344                 tvec3&lt;half&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
+<a name="l00345"></a>00345                 tvec4&lt;half&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
+<a name="l00346"></a>00346                 tref4&lt;half&gt; swizzle(comp X, comp Y, comp Z, comp W);
+<a name="l00347"></a>00347         };
+<a name="l00348"></a>00348 <span class="preprocessor">#endif//(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())</span>
+<a name="l00349"></a>00349 <span class="preprocessor"></span>}
+<a name="l00350"></a>00350 <span class="comment">//namespace detail</span>
+<a name="l00351"></a>00351 
+<a name="l00354"></a>00354 
+<a name="l00357"></a>00357         <span class="keyword">typedef</span> detail::half                                    half;
+<a name="l00358"></a>00358 
+<a name="l00361"></a>00361         <span class="keyword">typedef</span> detail::tvec2&lt;detail::half&gt;     hvec2;
+<a name="l00362"></a>00362 
+<a name="l00365"></a>00365         <span class="keyword">typedef</span> detail::tvec3&lt;detail::half&gt;     hvec3;
+<a name="l00366"></a>00366 
+<a name="l00369"></a>00369         <span class="keyword">typedef</span> detail::tvec4&lt;detail::half&gt;     hvec4;
+<a name="l00370"></a>00370 
+<a name="l00373"></a>00373         <span class="keyword">typedef</span> detail::tmat2x2&lt;detail::half&gt;   hmat2;
+<a name="l00374"></a>00374     
+<a name="l00377"></a>00377         <span class="keyword">typedef</span> detail::tmat3x3&lt;detail::half&gt;   hmat3;
+<a name="l00378"></a>00378 
+<a name="l00381"></a>00381         <span class="keyword">typedef</span> detail::tmat4x4&lt;detail::half&gt;   hmat4;
+<a name="l00382"></a>00382 
+<a name="l00385"></a>00385         <span class="keyword">typedef</span> detail::tmat2x2&lt;detail::half&gt;   hmat2x2;
+<a name="l00386"></a>00386     
+<a name="l00389"></a>00389         <span class="keyword">typedef</span> detail::tmat2x3&lt;detail::half&gt;   hmat2x3;
+<a name="l00390"></a>00390     
+<a name="l00393"></a>00393         <span class="keyword">typedef</span> detail::tmat2x4&lt;detail::half&gt;   hmat2x4;
+<a name="l00394"></a>00394 
+<a name="l00397"></a>00397         <span class="keyword">typedef</span> detail::tmat3x2&lt;detail::half&gt;   hmat3x2;
+<a name="l00398"></a>00398     
+<a name="l00401"></a>00401         <span class="keyword">typedef</span> detail::tmat3x3&lt;detail::half&gt;   hmat3x3;
+<a name="l00402"></a>00402     
+<a name="l00405"></a>00405         <span class="keyword">typedef</span> detail::tmat3x4&lt;detail::half&gt;   hmat3x4;
+<a name="l00406"></a>00406 
+<a name="l00409"></a>00409         <span class="keyword">typedef</span> detail::tmat4x2&lt;detail::half&gt;   hmat4x2;    
+<a name="l00410"></a>00410 
+<a name="l00413"></a>00413         <span class="keyword">typedef</span> detail::tmat4x3&lt;detail::half&gt;   hmat4x3;
+<a name="l00414"></a>00414     
+<a name="l00417"></a>00417         <span class="keyword">typedef</span> detail::tmat4x4&lt;detail::half&gt;   hmat4x4;
+<a name="l00418"></a>00418     
+<a name="l00420"></a>00420 }<span class="comment">// namespace glm</span>
+<a name="l00421"></a>00421 
+<a name="l00422"></a>00422 <span class="preprocessor">#include &quot;half_float.inl&quot;</span>
+<a name="l00423"></a>00423 
+<a name="l00424"></a>00424 <span class="preprocessor">#endif//GLM_GTC_half_float</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 43
doc/api-0.9.3/a00037.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>extented_min_max.hpp File Reference</title>
+<title>handed_coordinate_space.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,62 +49,30 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">extented_min_max.hpp File Reference</div>  </div>
-</div>
+<div class="title">handed_coordinate_space.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00037_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gacf95a09cc9ae2fd9c4412f6d2ab4cdd6">max</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga0ec6528b8efa37fd7570fd5e83431909">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::value_type const &amp;y, typename C&lt; T &gt;::value_type const &amp;z)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gabce5be93a81bd88050511f8053dc7506">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga182c8b93fb0330d69d7b7de753e55b43">max</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga6bdb95318ecd311ed6b577022b93ab57">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::value_type const &amp;y, typename C&lt; T &gt;::value_type const &amp;z, typename C&lt; T &gt;::value_type const &amp;w)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga50cbe34b354aa247e7cf7a7f9d4d53e2">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaa8615e92f9e0fd6561ff55ed6f1e0552">min</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga538f32ce393e8d88e57d426299c11dbe">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::value_type const &amp;y, typename C&lt; T &gt;::value_type const &amp;z)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaaf6116a1a1336637fae81c776931d6a2">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga66d6335250659e47aebbc7ed3b9f02e3">min</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga01e1772c215d5f0a0ac509e452171c2e">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::value_type const &amp;y, typename C&lt; T &gt;::value_type const &amp;z, typename C&lt; T &gt;::value_type const &amp;w)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga9a01347f2741d9b08c0b09027044281d">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00181.html">GLM_GTX_extented_min_max: Extended min max</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2007-03-14 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00169.html">GLM_GTX_handed_coordinate_space: Space Handedness</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtx_half_float (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00037_source.html">extented_min_max.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00037_source.html">handed_coordinate_space.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 38 - 137
doc/api-0.9.3/a00037_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>extented_min_max.hpp Source File</title>
+<title>handed_coordinate_space.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">extented_min_max.hpp</div>  </div>
-</div>
+<div class="title">handed_coordinate_space.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00037.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -88,144 +90,43 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_extented_min_max</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_extented_min_max GLM_VERSION</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span>
-<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_extented_min_max extension included&quot;)</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
-<a name="l00051"></a>00051 {
-<a name="l00054"></a>00054 
-<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00058"></a>00058         T <a class="code" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
-<a name="l00059"></a>00059                 T <span class="keyword">const</span> &amp; x, 
-<a name="l00060"></a>00060                 T <span class="keyword">const</span> &amp; y, 
-<a name="l00061"></a>00061                 T <span class="keyword">const</span> &amp; z);
-<a name="l00062"></a>00062 
-<a name="l00065"></a>00065         <span class="keyword">template</span> 
-<a name="l00066"></a>00066         &lt;
-<a name="l00067"></a>00067                 <span class="keyword">typename</span> T, 
-<a name="l00068"></a>00068                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
-<a name="l00069"></a>00069         &gt;
-<a name="l00070"></a>00070         C&lt;T&gt; <a class="code" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
-<a name="l00071"></a>00071                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00072"></a>00072                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y, 
-<a name="l00073"></a>00073                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z);
-<a name="l00074"></a>00074 
-<a name="l00077"></a>00077         <span class="keyword">template</span> 
-<a name="l00078"></a>00078         &lt;
-<a name="l00079"></a>00079                 <span class="keyword">typename</span> T, 
-<a name="l00080"></a>00080                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
-<a name="l00081"></a>00081         &gt;
-<a name="l00082"></a>00082         C&lt;T&gt; <a class="code" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
-<a name="l00083"></a>00083                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00084"></a>00084                 C&lt;T&gt; <span class="keyword">const</span> &amp; y, 
-<a name="l00085"></a>00085                 C&lt;T&gt; <span class="keyword">const</span> &amp; z);
-<a name="l00086"></a>00086 
-<a name="l00089"></a>00089         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00090"></a>00090         T <a class="code" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
-<a name="l00091"></a>00091                 T <span class="keyword">const</span> &amp; x, 
-<a name="l00092"></a>00092                 T <span class="keyword">const</span> &amp; y, 
-<a name="l00093"></a>00093                 T <span class="keyword">const</span> &amp; z, 
-<a name="l00094"></a>00094                 T <span class="keyword">const</span> &amp; w);
-<a name="l00095"></a>00095 
-<a name="l00098"></a>00098         <span class="keyword">template</span> 
-<a name="l00099"></a>00099         &lt;
-<a name="l00100"></a>00100                 <span class="keyword">typename</span> T, 
-<a name="l00101"></a>00101                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
-<a name="l00102"></a>00102         &gt;
-<a name="l00103"></a>00103         C&lt;T&gt; <a class="code" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
-<a name="l00104"></a>00104                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00105"></a>00105                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y, 
-<a name="l00106"></a>00106                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z, 
-<a name="l00107"></a>00107                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; w);
-<a name="l00108"></a>00108 
-<a name="l00111"></a>00111         <span class="keyword">template</span> 
-<a name="l00112"></a>00112         &lt;
-<a name="l00113"></a>00113                 <span class="keyword">typename</span> T, 
-<a name="l00114"></a>00114                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
-<a name="l00115"></a>00115         &gt;
-<a name="l00116"></a>00116         C&lt;T&gt; <a class="code" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
-<a name="l00117"></a>00117                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00118"></a>00118                 C&lt;T&gt; <span class="keyword">const</span> &amp; y, 
-<a name="l00119"></a>00119                 C&lt;T&gt; <span class="keyword">const</span> &amp; z,
-<a name="l00120"></a>00120                 C&lt;T&gt; <span class="keyword">const</span> &amp; w);
-<a name="l00121"></a>00121 
-<a name="l00124"></a>00124         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00125"></a>00125         T <a class="code" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
-<a name="l00126"></a>00126                 T <span class="keyword">const</span> &amp; x, 
-<a name="l00127"></a>00127                 T <span class="keyword">const</span> &amp; y, 
-<a name="l00128"></a>00128                 T <span class="keyword">const</span> &amp; z);
-<a name="l00129"></a>00129 
-<a name="l00132"></a>00132         <span class="keyword">template</span> 
-<a name="l00133"></a>00133         &lt;
-<a name="l00134"></a>00134                 <span class="keyword">typename</span> T, 
-<a name="l00135"></a>00135                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
-<a name="l00136"></a>00136         &gt;
-<a name="l00137"></a>00137         C&lt;T&gt; <a class="code" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
-<a name="l00138"></a>00138                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00139"></a>00139                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y, 
-<a name="l00140"></a>00140                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z);
-<a name="l00141"></a>00141 
-<a name="l00144"></a>00144         <span class="keyword">template</span> 
-<a name="l00145"></a>00145         &lt;
-<a name="l00146"></a>00146                 <span class="keyword">typename</span> T, 
-<a name="l00147"></a>00147                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
-<a name="l00148"></a>00148         &gt;
-<a name="l00149"></a>00149         C&lt;T&gt; <a class="code" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
-<a name="l00150"></a>00150                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00151"></a>00151                 C&lt;T&gt; <span class="keyword">const</span> &amp; y, 
-<a name="l00152"></a>00152                 C&lt;T&gt; <span class="keyword">const</span> &amp; z);
-<a name="l00153"></a>00153 
-<a name="l00156"></a>00156         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00157"></a>00157         T <a class="code" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
-<a name="l00158"></a>00158                 T <span class="keyword">const</span> &amp; x, 
-<a name="l00159"></a>00159                 T <span class="keyword">const</span> &amp; y, 
-<a name="l00160"></a>00160                 T <span class="keyword">const</span> &amp; z, 
-<a name="l00161"></a>00161                 T <span class="keyword">const</span> &amp; w);
-<a name="l00162"></a>00162 
-<a name="l00165"></a>00165         <span class="keyword">template</span> 
-<a name="l00166"></a>00166         &lt;
-<a name="l00167"></a>00167                 <span class="keyword">typename</span> T, 
-<a name="l00168"></a>00168                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
-<a name="l00169"></a>00169         &gt;
-<a name="l00170"></a>00170         C&lt;T&gt; <a class="code" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
-<a name="l00171"></a>00171                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00172"></a>00172                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; y, 
-<a name="l00173"></a>00173                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; z, 
-<a name="l00174"></a>00174                 <span class="keyword">typename</span> C&lt;T&gt;::value_type <span class="keyword">const</span> &amp; w);
-<a name="l00175"></a>00175 
-<a name="l00178"></a>00178         <span class="keyword">template</span> 
-<a name="l00179"></a>00179         &lt;
-<a name="l00180"></a>00180                 <span class="keyword">typename</span> T, 
-<a name="l00181"></a>00181                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C
-<a name="l00182"></a>00182         &gt;
-<a name="l00183"></a>00183         C&lt;T&gt; <a class="code" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
-<a name="l00184"></a>00184                 C&lt;T&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00185"></a>00185                 C&lt;T&gt; <span class="keyword">const</span> &amp; y, 
-<a name="l00186"></a>00186                 C&lt;T&gt; <span class="keyword">const</span> &amp; z, 
-<a name="l00187"></a>00187                 C&lt;T&gt; <span class="keyword">const</span> &amp; w);
-<a name="l00188"></a>00188 
-<a name="l00190"></a>00190 }<span class="comment">//namespace glm</span>
-<a name="l00191"></a>00191 
-<a name="l00192"></a>00192 <span class="preprocessor">#include &quot;extented_min_max.inl&quot;</span>
-<a name="l00193"></a>00193 
-<a name="l00194"></a>00194 <span class="preprocessor">#endif//GLM_GTX_extented_min_max</span>
-</pre></div></div>
-</div>
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_handed_coordinate_space</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_handed_coordinate_space GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_handed_coordinate_space extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00056"></a>00056         <span class="keywordtype">bool</span> rightHanded(
+<a name="l00057"></a>00057                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; tangent, 
+<a name="l00058"></a>00058                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; binormal, 
+<a name="l00059"></a>00059                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; normal);
+<a name="l00060"></a>00060 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00064"></a>00064         <span class="keywordtype">bool</span> leftHanded(
+<a name="l00065"></a>00065                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; tangent, 
+<a name="l00066"></a>00066                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; binormal, 
+<a name="l00067"></a>00067                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; normal);
+<a name="l00068"></a>00068 
+<a name="l00070"></a>00070 }<span class="comment">// namespace glm</span>
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="preprocessor">#include &quot;handed_coordinate_space.inl&quot;</span>
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074 <span class="preprocessor">#endif//GLM_GTX_handed_coordinate_space</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 34
doc/api-0.9.3/a00038.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>fast_exponential.hpp File Reference</title>
+<title>hint.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,52 +49,29 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">fast_exponential.hpp File Reference</div>  </div>
-</div>
+<div class="title">hint.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00038_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga81550f837781889cc21fe49852102ea0">fastExp</a> (const T &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga27ffd3d58db8a5309300f16cc5d9284c">fastExp2</a> (const T &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaddd4e635f1c3168122fe7b14753935b9">fastLn</a> (const T &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga784a80d571f0f596d438863775827cd0">fastLog</a> (const T &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac516a11818384b9392412ac199044cf6">fastLog2</a> (const T &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga0ecbe429c87b820368f425ee8d22841a">fastPow</a> (genType const &amp;x, genType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3afd7b7f1ac505ca9247dc6ffa0c25cb">fastPow</a> (genTypeT const &amp;x, genTypeU const &amp;y)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00182.html">GLM_GTX_fast_exponential: Fast exponentiation functions</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2006-01-09 / 2011-06-07 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtx_half_float (dependence) </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-14 / 2011-06-15 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
 
-<p>Definition in file <a class="el" href="a00038_source.html">fast_exponential.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00038_source.html">hint.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 20 - 61
doc/api-0.9.3/a00038_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>fast_exponential.hpp Source File</title>
+<title>hint.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">fast_exponential.hpp</div>  </div>
-</div>
+<div class="title">hint.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00038.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,68 +81,25 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 
-<a name="l00033"></a>00033 
-<a name="l00034"></a>00034 
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_fast_exponential</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_fast_exponential GLM_VERSION</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span>
-<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_fast_exponential extension included&quot;)</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
-<a name="l00051"></a>00051 {
-<a name="l00054"></a>00054 
-<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00058"></a>00058         genType <a class="code" href="a00182.html#ga0ecbe429c87b820368f425ee8d22841a" title="Faster than the common pow function but less accurate.">fastPow</a>(
-<a name="l00059"></a>00059                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00060"></a>00060                 genType <span class="keyword">const</span> &amp; y);
-<a name="l00061"></a>00061 
-<a name="l00064"></a>00064         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt; 
-<a name="l00065"></a>00065         genTypeT <a class="code" href="a00182.html#ga0ecbe429c87b820368f425ee8d22841a" title="Faster than the common pow function but less accurate.">fastPow</a>(
-<a name="l00066"></a>00066                 genTypeT <span class="keyword">const</span> &amp; x, 
-<a name="l00067"></a>00067                 genTypeU <span class="keyword">const</span> &amp; y);
-<a name="l00068"></a>00068                 
-<a name="l00071"></a>00071         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00072"></a>00072         T <a class="code" href="a00182.html#ga81550f837781889cc21fe49852102ea0" title="Faster than the common exp function but less accurate.">fastExp</a>(<span class="keyword">const</span> T&amp; x);
-<a name="l00073"></a>00073                 
-<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00077"></a>00077         T <a class="code" href="a00182.html#ga784a80d571f0f596d438863775827cd0" title="Faster than the common log function but less accurate.">fastLog</a>(<span class="keyword">const</span> T&amp; x);
-<a name="l00078"></a>00078 
-<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00082"></a>00082         T <a class="code" href="a00182.html#ga27ffd3d58db8a5309300f16cc5d9284c" title="Faster than the common exp2 function but less accurate.">fastExp2</a>(<span class="keyword">const</span> T&amp; x);
-<a name="l00083"></a>00083                 
-<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00087"></a>00087         T <a class="code" href="a00182.html#gac516a11818384b9392412ac199044cf6" title="Faster than the common log2 function but less accurate.">fastLog2</a>(<span class="keyword">const</span> T&amp; x);
-<a name="l00088"></a>00088 
-<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00092"></a>00092         T <a class="code" href="a00182.html#gaddd4e635f1c3168122fe7b14753935b9" title="Faster than the common ln function but less accurate.">fastLn</a>(<span class="keyword">const</span> T&amp; x);
-<a name="l00093"></a>00093 
-<a name="l00095"></a>00095 }<span class="comment">//namespace glm</span>
-<a name="l00096"></a>00096 
-<a name="l00097"></a>00097 <span class="preprocessor">#include &quot;fast_exponential.inl&quot;</span>
-<a name="l00098"></a>00098 
-<a name="l00099"></a>00099 <span class="preprocessor">#endif//GLM_GTX_fast_exponential</span>
-</pre></div></div>
-</div>
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_core_type</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_type</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="keyword">namespace </span>glm
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034         <span class="comment">// Use dont_care, nicest and fastest to optimize implementations.</span>
+<a name="l00035"></a>00035         <span class="keyword">class </span>dont_care {};
+<a name="l00036"></a>00036         <span class="keyword">class </span>nicest {};
+<a name="l00037"></a>00037         <span class="keyword">class </span>fastest {};
+<a name="l00038"></a>00038 }<span class="comment">//namespace glm</span>
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="preprocessor">#endif//glm_core_type</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 14 - 27
doc/api-0.9.3/a00039.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>fast_square_root.hpp File Reference</title>
+<title>inertia.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,46 +49,32 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">fast_square_root.hpp File Reference</div>  </div>
-</div>
+<div class="title">inertia.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00039_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga646eee2633e9de7274de9bc6f5af92b5">fastDistance</a> (genType const &amp;x, genType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga49dd9caa2853398474e5aae377259a22">fastInverseSqrt</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2e726cc8b9f02b7c09910858ea1afac6">fastLength</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2953e7426a420bb2b33affce7360ef40">fastNormalize</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gad57c343d2362c1469043adedeb8ef8eb">fastSqrt</a> (genType const &amp;x)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00183.html">GLM_GTX_fast_square_root: Fast square root functions</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2006-01-04 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00170.html">GLM_GTX_inertia: Intertial matrix</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2006-04-21 / 2011-06-07 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00164.html" title="Min and max functions for 3 to 4 parameters.">GLM_GTX_extented_min_max: Extended min max</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00039_source.html">fast_square_root.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00039_source.html">inertia.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 65 - 40
doc/api-0.9.3/a00039_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>fast_square_root.hpp Source File</title>
+<title>inertia.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">fast_square_root.hpp</div>  </div>
-</div>
+<div class="title">inertia.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00039.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -89,48 +91,71 @@
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038 
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040 <span class="preprocessor">#ifndef GLM_GTX_fast_square_root</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_fast_square_root GLM_VERSION</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span>
-<a name="l00043"></a>00043 <span class="comment">// Dependency:</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_fast_square_root extension included&quot;)</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
-<a name="l00051"></a>00051 {
-<a name="l00054"></a>00054 
-<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00058"></a>00058         genType <a class="code" href="a00183.html#gad57c343d2362c1469043adedeb8ef8eb" title="Faster than the common sqrt function but less accurate.">fastSqrt</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00059"></a>00059 
-<a name="l00062"></a>00062         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00063"></a>00063         genType <a class="code" href="a00183.html#ga49dd9caa2853398474e5aae377259a22" title="Faster than the common inversesqrt function but less accurate.">fastInverseSqrt</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00064"></a>00064                 
-<a name="l00067"></a>00067         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00068"></a>00068         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00183.html#ga2e726cc8b9f02b7c09910858ea1afac6" title="Faster than the common length function but less accurate.">fastLength</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00069"></a>00069 
-<a name="l00072"></a>00072         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00073"></a>00073         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00183.html#ga646eee2633e9de7274de9bc6f5af92b5" 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);
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_inertia</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_inertia GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_inertia extension included&quot;)</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span>
+<a name="l00049"></a>00049 <span class="keyword">namespace </span>glm
+<a name="l00050"></a>00050 {
+<a name="l00053"></a>00053 
+<a name="l00056"></a>00056         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00057"></a>00057         detail::tmat3x3&lt;T&gt; boxInertia3(
+<a name="l00058"></a>00058                 T <span class="keyword">const</span> &amp; Mass, 
+<a name="l00059"></a>00059                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; Scale);
+<a name="l00060"></a>00060                 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00064"></a>00064         detail::tmat4x4&lt;T&gt; boxInertia4(
+<a name="l00065"></a>00065                 T <span class="keyword">const</span> &amp; Mass, 
+<a name="l00066"></a>00066                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; Scale);
+<a name="l00067"></a>00067                 
+<a name="l00070"></a>00070         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00071"></a>00071         detail::tmat3x3&lt;T&gt; diskInertia3(
+<a name="l00072"></a>00072                 T <span class="keyword">const</span> &amp; Mass, 
+<a name="l00073"></a>00073                 T <span class="keyword">const</span> &amp; Radius);
 <a name="l00074"></a>00074 
-<a name="l00077"></a>00077         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00078"></a>00078         genType <a class="code" href="a00183.html#ga2953e7426a420bb2b33affce7360ef40" title="Faster than the common normalize function but less accurate.">fastNormalize</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00079"></a>00079 
-<a name="l00081"></a>00081 }<span class="comment">// namespace glm</span>
-<a name="l00082"></a>00082 
-<a name="l00083"></a>00083 <span class="preprocessor">#include &quot;fast_square_root.inl&quot;</span>
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085 <span class="preprocessor">#endif//GLM_GTX_fast_square_root</span>
-</pre></div></div>
-</div>
+<a name="l00077"></a>00077         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00078"></a>00078         detail::tmat4x4&lt;T&gt; diskInertia4(
+<a name="l00079"></a>00079                 T <span class="keyword">const</span> &amp; Mass, 
+<a name="l00080"></a>00080                 T <span class="keyword">const</span> &amp; Radius);
+<a name="l00081"></a>00081 
+<a name="l00084"></a>00084         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00085"></a>00085         detail::tmat3x3&lt;T&gt; ballInertia3(
+<a name="l00086"></a>00086                 T <span class="keyword">const</span> &amp; Mass, 
+<a name="l00087"></a>00087                 T <span class="keyword">const</span> &amp; Radius);
+<a name="l00088"></a>00088                 
+<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00092"></a>00092         detail::tmat4x4&lt;T&gt; ballInertia4(
+<a name="l00093"></a>00093                 T <span class="keyword">const</span> &amp; Mass, 
+<a name="l00094"></a>00094                 T <span class="keyword">const</span> &amp; Radius);
+<a name="l00095"></a>00095 
+<a name="l00098"></a>00098         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00099"></a>00099         detail::tmat3x3&lt;T&gt; sphereInertia3(
+<a name="l00100"></a>00100                 T <span class="keyword">const</span> &amp; Mass, 
+<a name="l00101"></a>00101                 T <span class="keyword">const</span> &amp; Radius);
+<a name="l00102"></a>00102 
+<a name="l00105"></a>00105         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00106"></a>00106         detail::tmat4x4&lt;T&gt; sphereInertia4(
+<a name="l00107"></a>00107                 T <span class="keyword">const</span> &amp; Mass, 
+<a name="l00108"></a>00108                 T <span class="keyword">const</span> &amp; Radius);
+<a name="l00109"></a>00109 
+<a name="l00111"></a>00111 }<span class="comment">// namespace glm</span>
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113 <span class="preprocessor">#include &quot;inertia.inl&quot;</span>
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115 <span class="preprocessor">#endif//GLM_GTX_inertia</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 14 - 31
doc/api-0.9.3/a00040.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>fast_trigonometry.hpp File Reference</title>
+<title>int_10_10_10_2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,50 +49,32 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">fast_trigonometry.hpp File Reference</div>  </div>
-</div>
+<div class="title">int_10_10_10_2.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00040_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga33b609e0abf9c38548d4381d0540b95b">fastAcos</a> (const T &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gabe1e89bd95ee266f0f6b02e11f0f122c">fastAsin</a> (const T &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gaa788571fc615b131e96c66df01b10e36">fastAtan</a> (const T &amp;y, const T &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gab6f0c71fbd1c4cd4c3e4992f3656178f">fastAtan</a> (const T &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gada306b7a16a4e230c28ea0764b325ef0">fastCos</a> (const T &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga8069d4fb062dc17d93183946cdb3bf3a">fastSin</a> (const T &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gaf9f4798ceb6e0fc0b67bfcab836f0288">fastTan</a> (const T &amp;angle)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00184.html">GLM_GTX_fast_trigonometry: Fast trigonometric functions</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2006-01-08 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00171.html">GLM_GTX_int_10_10_10_2: Packed integer</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2010-07-07 / 2011-06-07 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00195.html" title="Projection of a vector to other one.">GLM_GTX_raw_data: Raw data</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00040_source.html">fast_trigonometry.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00040_source.html">int_10_10_10_2.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 29 - 45
doc/api-0.9.3/a00040_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>fast_trigonometry.hpp Source File</title>
+<title>int_10_10_10_2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">fast_trigonometry.hpp</div>  </div>
-</div>
+<div class="title">int_10_10_10_2.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00040.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -88,53 +90,35 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_fast_trigonometry</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_fast_trigonometry GLM_VERSION</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_fast_trigonometry extension included&quot;)</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span>
-<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
-<a name="l00049"></a>00049 {
-<a name="l00052"></a>00052 
-<a name="l00056"></a>00056     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00057"></a>00057         T <a class="code" href="a00184.html#ga8069d4fb062dc17d93183946cdb3bf3a" title="Faster than the common sin function but less accurate.">fastSin</a>(<span class="keyword">const</span> T&amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_int_10_10_10_2</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_int_10_10_10_2 GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtx/raw_data.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_int_10_10_10_2 extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
+<a name="l00054"></a>00054 
+<a name="l00057"></a>00057         dword uint10_10_10_2_cast(<a class="code" href="a00138.html#ga3f36f44916da88f7173bc4afa030ebe1" title="4 components vector of floating-point numbers.">glm::vec4</a> <span class="keyword">const</span> &amp; v);
 <a name="l00058"></a>00058 
-<a name="l00062"></a>00062         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00063"></a>00063         T <a class="code" href="a00184.html#gada306b7a16a4e230c28ea0764b325ef0" title="Faster than the common cos function but less accurate.">fastCos</a>(<span class="keyword">const</span> T&amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00064"></a>00064 
-<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00069"></a>00069         T <a class="code" href="a00184.html#gaf9f4798ceb6e0fc0b67bfcab836f0288" title="Faster than the common tan function but less accurate.">fastTan</a>(<span class="keyword">const</span> T&amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00070"></a>00070 
-<a name="l00074"></a>00074         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00075"></a>00075         T <a class="code" href="a00184.html#gabe1e89bd95ee266f0f6b02e11f0f122c" title="Faster than the common asin function but less accurate.">fastAsin</a>(<span class="keyword">const</span> T&amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00076"></a>00076 
-<a name="l00080"></a>00080     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00081"></a>00081         T <a class="code" href="a00184.html#ga33b609e0abf9c38548d4381d0540b95b" title="Faster than the common acos function but less accurate.">fastAcos</a>(<span class="keyword">const</span> T&amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00082"></a>00082 
-<a name="l00086"></a>00086         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00087"></a>00087         T <a class="code" href="a00184.html#gaa788571fc615b131e96c66df01b10e36" 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);
-<a name="l00088"></a>00088 
-<a name="l00092"></a>00092     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
-<a name="l00093"></a>00093         T <a class="code" href="a00184.html#gaa788571fc615b131e96c66df01b10e36" title="Faster than the common atan function but less accurate.">fastAtan</a>(<span class="keyword">const</span> T&amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00094"></a>00094 
-<a name="l00096"></a>00096 }<span class="comment">//namespace glm</span>
-<a name="l00097"></a>00097 
-<a name="l00098"></a>00098 <span class="preprocessor">#include &quot;fast_trigonometry.inl&quot;</span>
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100 <span class="preprocessor">#endif//GLM_GTX_fast_trigonometry</span>
-</pre></div></div>
-</div>
+<a name="l00060"></a>00060 }<span class="comment">//namespace glm</span>
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062 <span class="preprocessor">#include &quot;int_10_10_10_2.inl&quot;</span>
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="preprocessor">#endif//GLM_GTX_int_10_10_10_2</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 69
doc/api-0.9.3/a00041.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_common.hpp File Reference</title>
+<title>integer.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,88 +49,30 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">func_common.hpp File Reference</div>  </div>
-</div>
+<div class="title">integer.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00041_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gaeca8e195d482248f677e3905d00f11ae">abs</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga1ce130f2934cf1d7aca83a7027422f3c">ceil</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga99b1ce602a02833646e5077345858da4">clamp</a> (genType const &amp;x, genType const &amp;minVal, genType const &amp;maxVal)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga0ac6c59156dcdc12fa8fd861925ddb4c">floatBitsToInt</a> (genType const &amp;value)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gaccd4fbc2c30848eb85370e2e5b4e4eec">floatBitsToUint</a> (genType const &amp;value)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gac3458e950a8a716468866f841a833c77">floor</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gae88b926eebc4d610ecdd148bf8c7bdac">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gad5e3814491ff6baa4f0d16aebcabff9b">fract</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga459a98ee7601031e99bf0e99978ff13f">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga15f7f0f93ebb026338cb3d7d5876e1b7">intBitsToFloat</a> (genIType const &amp;value)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gaf1da75ac632eb4833cdd63255031d730">isinf</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gabcdbb01cf43c83e59777f2c5d855e315">isnan</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gaf210cb4f21bbfde6ace0849e960a4b3a">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2">max</a> (genType const &amp;x, genType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe">min</a> (genType const &amp;x, genType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga3f64b3986efe205cf30300700667e761">mix</a> (genTypeT const &amp;x, genTypeT const &amp;y, genTypeU const &amp;a)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga3bdf136bc96f670965cd2f48d14356b4">mod</a> (genType const &amp;x, genType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gaafffb265a1455c56d85594032ded2dc3">mod</a> (genType const &amp;x, typename genType::value_type const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga34ff69d5efb2fafa3156ad2b87bd49ec">modf</a> (genType const &amp;x, genType &amp;i)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga32125c5451799e80b886ef665b947d0c">round</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gab46fe1ce5fdd08f904be811a53364968">roundEven</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga79f412e6d33cb4be13497056c2298d14">sign</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gabdfe71a62ef69b5ec834601e87588667">smoothstep</a> (genType const &amp;edge0, genType const &amp;edge1, genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga3d3199dcbbb0ac8e0d9664d538702a40">step</a> (genType const &amp;edge, genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#gae1268fe85d913d9e4054de0e046abaef">trunc</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00142.html#ga3e4a94c90cffac713c287d1fb7b51c08">uintBitsToFloat</a> (genUType const &amp;value)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2008-03-08 / 2010-01-26 </dd></dl>
+<p><a class="el" href="a00172.html">GLM_GTX_integer: Extended integer functions</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-24 / 2011-10-13 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00041_source.html">func_common.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00041_source.html">integer.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 51 - 142
doc/api-0.9.3/a00041_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_common.hpp Source File</title>
+<title>integer.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_common.hpp</div>  </div>
-</div>
+<div class="title">integer.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00041.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -86,150 +88,57 @@
 <a name="l00033"></a>00033 
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
-<a name="l00036"></a>00036 <span class="preprocessor">#ifndef GLM_CORE_func_common</span>
-<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_common GLM_VERSION</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include &quot;<a class="code" href="a00020.html" title="OpenGL Mathematics (glm.g-truc.net)">_fixes.hpp</a>&quot;</span>
-<a name="l00040"></a>00040 
-<a name="l00041"></a>00041 <span class="keyword">namespace </span>glm
-<a name="l00042"></a>00042 {
-<a name="l00045"></a>00045 
-<a name="l00052"></a>00052     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00053"></a>00053         genType <a class="code" href="a00142.html#gaeca8e195d482248f677e3905d00f11ae" title="Returns x if x &gt;= 0; otherwise, it returns -x.">abs</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00054"></a>00054 
-<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00062"></a>00062         genType <a class="code" href="a00142.html#ga79f412e6d33cb4be13497056c2298d14" title="Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.">sign</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00063"></a>00063 
-<a name="l00070"></a>00070         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00071"></a>00071         genType <a class="code" href="a00142.html#gac3458e950a8a716468866f841a833c77" 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);
-<a name="l00072"></a>00072 
-<a name="l00080"></a>00080         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00081"></a>00081         genType <a class="code" href="a00142.html#gae1268fe85d913d9e4054de0e046abaef" 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);
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_integer</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_integer GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_integer extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055         <span class="keywordtype">int</span> <a class="code" href="a00126.html#gac93ea301c287d87a63fa14a4c44b719b" title="Returns x raised to the y power.">pow</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);
+<a name="l00056"></a>00056 
+<a name="l00059"></a>00059         <span class="keywordtype">int</span> <a class="code" href="a00126.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f" title="Returns the positive square root of x.">sqrt</a>(<span class="keywordtype">int</span> x);
+<a name="l00060"></a>00060 
+<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
+<a name="l00064"></a>00064         genIUType <a class="code" href="a00126.html#gae19ff18661b33a0fe1b8edee61382f40" title="Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...">log2</a>(genIUType <span class="keyword">const</span> &amp; x);
+<a name="l00065"></a>00065 
+<a name="l00068"></a>00068         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> floor_log2(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x);
+<a name="l00069"></a>00069 
+<a name="l00072"></a>00072         <span class="keywordtype">int</span> <a class="code" href="a00125.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);
+<a name="l00073"></a>00073 
+<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00077"></a>00077         genType factorial(genType <span class="keyword">const</span> &amp; x);
+<a name="l00078"></a>00078 
+<a name="l00081"></a>00081         <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span>                                      sint;
 <a name="l00082"></a>00082 
-<a name="l00093"></a>00093         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00094"></a>00094         genType <a class="code" href="a00142.html#ga32125c5451799e80b886ef665b947d0c" title="Returns a value equal to the nearest integer to x.">round</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00095"></a>00095 
-<a name="l00105"></a>00105         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00106"></a>00106         genType <a class="code" href="a00142.html#gab46fe1ce5fdd08f904be811a53364968" title="Returns a value equal to the nearest integer to x.">roundEven</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00107"></a>00107 
-<a name="l00115"></a>00115     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00116"></a>00116         genType <a class="code" href="a00142.html#ga1ce130f2934cf1d7aca83a7027422f3c" 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);
-<a name="l00117"></a>00117 
-<a name="l00124"></a>00124     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00125"></a>00125         genType <a class="code" href="a00142.html#gad5e3814491ff6baa4f0d16aebcabff9b" title="Return x - floor(x).">fract</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00126"></a>00126 
-<a name="l00134"></a>00134     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00135"></a>00135         genType <a class="code" href="a00142.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(
-<a name="l00136"></a>00136                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00137"></a>00137                 genType <span class="keyword">const</span> &amp; y);
-<a name="l00138"></a>00138 
-<a name="l00146"></a>00146     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00147"></a>00147         genType <a class="code" href="a00142.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(
-<a name="l00148"></a>00148                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00149"></a>00149                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
-<a name="l00150"></a>00150 
-<a name="l00160"></a>00160         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00161"></a>00161         genType <a class="code" href="a00142.html#ga34ff69d5efb2fafa3156ad2b87bd49ec" title="Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...">modf</a>(
-<a name="l00162"></a>00162                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00163"></a>00163                 genType &amp; i);
-<a name="l00164"></a>00164 
-<a name="l00171"></a>00171         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00172"></a>00172         genType <a class="code" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
-<a name="l00173"></a>00173                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00174"></a>00174                 genType <span class="keyword">const</span> &amp; y);
-<a name="l00175"></a>00175 
-<a name="l00176"></a>00176         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00177"></a>00177         genType <a class="code" href="a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(
-<a name="l00178"></a>00178                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00179"></a>00179                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
-<a name="l00180"></a>00180 
-<a name="l00187"></a>00187         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00188"></a>00188         genType <a class="code" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
-<a name="l00189"></a>00189                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00190"></a>00190                 genType <span class="keyword">const</span> &amp; y);
-<a name="l00191"></a>00191 
-<a name="l00192"></a>00192         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00193"></a>00193         genType <a class="code" href="a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(
-<a name="l00194"></a>00194                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00195"></a>00195                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; y);
-<a name="l00196"></a>00196 
-<a name="l00204"></a>00204         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00205"></a>00205         genType <a class="code" href="a00142.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(
-<a name="l00206"></a>00206                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00207"></a>00207                 genType <span class="keyword">const</span> &amp; minVal, 
-<a name="l00208"></a>00208                 genType <span class="keyword">const</span> &amp; maxVal); 
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00211"></a>00211         genType <a class="code" href="a00142.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x.">clamp</a>(
-<a name="l00212"></a>00212                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00213"></a>00213                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; minVal, 
-<a name="l00214"></a>00214                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; maxVal); 
-<a name="l00215"></a>00215 
-<a name="l00258"></a>00258         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt; 
-<a name="l00259"></a>00259         genTypeT <a class="code" href="a00142.html#ga3f64b3986efe205cf30300700667e761">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);
-<a name="l00260"></a>00260 
-<a name="l00265"></a>00265         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00266"></a>00266         genType <a class="code" href="a00142.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title="Returns 0.0 if x &lt; edge, otherwise it returns 1.0.">step</a>(
-<a name="l00267"></a>00267                 genType <span class="keyword">const</span> &amp; edge, 
-<a name="l00268"></a>00268                 genType <span class="keyword">const</span> &amp; x);
-<a name="l00269"></a>00269 
-<a name="l00270"></a>00270         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00271"></a>00271         genType <a class="code" href="a00142.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title="Returns 0.0 if x &lt; edge, otherwise it returns 1.0.">step</a>(
-<a name="l00272"></a>00272                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge, 
-<a name="l00273"></a>00273                 genType <span class="keyword">const</span> &amp; x);
-<a name="l00274"></a>00274 
-<a name="l00289"></a>00289         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00290"></a>00290         genType <a class="code" href="a00142.html#gabdfe71a62ef69b5ec834601e87588667" title="Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...">smoothstep</a>(
-<a name="l00291"></a>00291                 genType <span class="keyword">const</span> &amp; edge0, 
-<a name="l00292"></a>00292                 genType <span class="keyword">const</span> &amp; edge1, 
-<a name="l00293"></a>00293                 genType <span class="keyword">const</span> &amp; x);
-<a name="l00294"></a>00294 
-<a name="l00295"></a>00295         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00296"></a>00296         genType <a class="code" href="a00142.html#gabdfe71a62ef69b5ec834601e87588667" title="Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...">smoothstep</a>(
-<a name="l00297"></a>00297                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge0, 
-<a name="l00298"></a>00298                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; edge1, 
-<a name="l00299"></a>00299                 genType <span class="keyword">const</span> &amp; x);
-<a name="l00300"></a>00300 
-<a name="l00311"></a>00311         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00312"></a>00312         <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00142.html#gabcdbb01cf43c83e59777f2c5d855e315" title="Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...">isnan</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00313"></a>00313 
-<a name="l00324"></a>00324         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00325"></a>00325         <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00142.html#gaf1da75ac632eb4833cdd63255031d730" 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);
-<a name="l00326"></a>00326 
-<a name="l00336"></a>00336         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
-<a name="l00337"></a>00337         genIType <a class="code" href="a00142.html#ga0ac6c59156dcdc12fa8fd861925ddb4c" title="Returns a signed integer value representing the encoding of a floating-point value.">floatBitsToInt</a>(genType <span class="keyword">const</span> &amp; value);
-<a name="l00338"></a>00338 
-<a name="l00348"></a>00348         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genUType&gt;
-<a name="l00349"></a>00349         genUType <a class="code" href="a00142.html#gaccd4fbc2c30848eb85370e2e5b4e4eec" title="Returns a unsigned integer value representing the encoding of a floating-point value.">floatBitsToUint</a>(genType <span class="keyword">const</span> &amp; value);
-<a name="l00350"></a>00350 
-<a name="l00364"></a>00364         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
-<a name="l00365"></a>00365         genType <a class="code" href="a00142.html#ga15f7f0f93ebb026338cb3d7d5876e1b7" 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);
-<a name="l00366"></a>00366         
-<a name="l00380"></a>00380     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genUType&gt;
-<a name="l00381"></a>00381     genType <a class="code" href="a00142.html#ga3e4a94c90cffac713c287d1fb7b51c08" 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);
-<a name="l00382"></a>00382         
-<a name="l00389"></a>00389         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
-<a name="l00390"></a>00390         genType <a class="code" href="a00142.html#gae88b926eebc4d610ecdd148bf8c7bdac" 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);
-<a name="l00391"></a>00391 
-<a name="l00406"></a>00406         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
-<a name="l00407"></a>00407         genType <a class="code" href="a00142.html#ga459a98ee7601031e99bf0e99978ff13f" 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="a00143.html#ga03903bb9395a13d554a5fbecdf67792b" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>);
-<a name="l00408"></a>00408 
-<a name="l00420"></a>00420         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;
-<a name="l00421"></a>00421         genType <a class="code" href="a00142.html#gaf210cb4f21bbfde6ace0849e960a4b3a" 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="a00143.html#ga03903bb9395a13d554a5fbecdf67792b" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>);
-<a name="l00422"></a>00422 
-<a name="l00424"></a>00424 }<span class="comment">//namespace glm</span>
-<a name="l00425"></a>00425 
-<a name="l00426"></a>00426 <span class="preprocessor">#include &quot;func_common.inl&quot;</span>
-<a name="l00427"></a>00427 
-<a name="l00428"></a>00428 <span class="preprocessor">#endif//GLM_CORE_func_common</span>
-</pre></div></div>
-</div>
+<a name="l00085"></a>00085         <a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> <a class="code" href="a00126.html#gac93ea301c287d87a63fa14a4c44b719b" title="Returns x raised to the y power.">pow</a>(<a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> x, <a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> y);
+<a name="l00086"></a>00086 
+<a name="l00089"></a>00089         <a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> <a class="code" href="a00126.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f" title="Returns the positive square root of x.">sqrt</a>(<a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> x);
+<a name="l00090"></a>00090 
+<a name="l00093"></a>00093         <a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> <a class="code" href="a00125.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(<a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> x, <a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> y);
+<a name="l00094"></a>00094 
+<a name="l00097"></a>00097         <a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> nlz(<a class="code" href="a00139.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> x);
+<a name="l00098"></a>00098 
+<a name="l00100"></a>00100 }<span class="comment">//namespace glm</span>
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102 <span class="preprocessor">#include &quot;integer.inl&quot;</span>
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104 <span class="preprocessor">#endif//GLM_GTX_integer</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 14 - 31
doc/api-0.9.3/a00042.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_exponential.hpp File Reference</title>
+<title>intersect.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,50 +49,32 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">func_exponential.hpp File Reference</div>  </div>
-</div>
+<div class="title">intersect.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00042_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00143.html#ga03903bb9395a13d554a5fbecdf67792b">exp</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00143.html#ga18385688b951da01cdc3a22c232e4e28">exp2</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00143.html#ga3fd19e045e3943b96e0cdad22fbda111">inversesqrt</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00143.html#ga46a307f466090551e328eec42abf61bc">log</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00143.html#gae19ff18661b33a0fe1b8edee61382f40">log2</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00143.html#gac93ea301c287d87a63fa14a4c44b719b">pow</a> (genType const &amp;x, genType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00143.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f">sqrt</a> (genType const &amp;x)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-08 / 2011-06-14 </dd></dl>
+<p><a class="el" href="a00173.html">GLM_GTX_intersect: Intersection tests</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2007-04-03 / 2011-06-07 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00154.html" title="Find the point on a straight line which is the closet of a point.">GLM_GTX_closest_point: Find closest point</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00042_source.html">func_exponential.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00042_source.html">intersect.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 52 - 37
doc/api-0.9.3/a00042_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_exponential.hpp Source File</title>
+<title>intersect.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_exponential.hpp</div>  </div>
-</div>
+<div class="title">intersect.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00042.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -86,46 +88,59 @@
 <a name="l00033"></a>00033 
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
-<a name="l00036"></a>00036 <span class="preprocessor">#ifndef glm_core_func_exponential</span>
-<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_func_exponential GLM_VERSION</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span>
-<a name="l00039"></a>00039 <span class="keyword">namespace </span>glm
-<a name="l00040"></a>00040 {
-<a name="l00043"></a>00043 
-<a name="l00052"></a>00052         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00053"></a>00053         genType <a class="code" href="a00143.html#gac93ea301c287d87a63fa14a4c44b719b" 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);
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_intersect</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_intersect GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../gtx/closest_point.hpp&quot;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="keyword">namespace </span>glm
+<a name="l00051"></a>00051 {
 <a name="l00054"></a>00054 
-<a name="l00062"></a>00062         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00063"></a>00063         genType <a class="code" href="a00143.html#ga03903bb9395a13d554a5fbecdf67792b" title="Returns the natural exponentiation of x, i.e., e^x.">exp</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00064"></a>00064 
-<a name="l00074"></a>00074         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00075"></a>00075         genType <a class="code" href="a00143.html#ga46a307f466090551e328eec42abf61bc" 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);
-<a name="l00076"></a>00076 
-<a name="l00084"></a>00084         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00085"></a>00085         genType <a class="code" href="a00143.html#ga18385688b951da01cdc3a22c232e4e28" title="Returns 2 raised to the x power.">exp2</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00057"></a>00057         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00058"></a>00058         <span class="keywordtype">bool</span> intersectRayTriangle(
+<a name="l00059"></a>00059                 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
+<a name="l00060"></a>00060                 genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,
+<a name="l00061"></a>00061                 genType &amp; baryPosition);
+<a name="l00062"></a>00062 
+<a name="l00065"></a>00065         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00066"></a>00066         <span class="keywordtype">bool</span> intersectLineTriangle(
+<a name="l00067"></a>00067                 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
+<a name="l00068"></a>00068                 genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,
+<a name="l00069"></a>00069                 genType &amp; position);
+<a name="l00070"></a>00070 
+<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00074"></a>00074         <span class="keywordtype">bool</span> intersectRaySphere(
+<a name="l00075"></a>00075                 genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,
+<a name="l00076"></a>00076                 genType <span class="keyword">const</span> &amp; center, <span class="keyword">typename</span> genType::value_type radius,
+<a name="l00077"></a>00077                 genType &amp; position, genType &amp; normal);
+<a name="l00078"></a>00078 
+<a name="l00081"></a>00081         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
+<a name="l00082"></a>00082         <span class="keywordtype">bool</span> intersectLineSphere(
+<a name="l00083"></a>00083                 genType <span class="keyword">const</span> &amp; point0, genType <span class="keyword">const</span> &amp; point1,
+<a name="l00084"></a>00084                 genType <span class="keyword">const</span> &amp; center, <span class="keyword">typename</span> genType::value_type radius,
+<a name="l00085"></a>00085                 genType &amp; position, genType &amp; normal);
 <a name="l00086"></a>00086 
-<a name="l00095"></a>00095         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00096"></a>00096         genType <a class="code" href="a00143.html#gae19ff18661b33a0fe1b8edee61382f40" 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);
-<a name="l00097"></a>00097 
-<a name="l00105"></a>00105         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00106"></a>00106         genType <a class="code" href="a00143.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f" title="Returns the positive square root of x.">sqrt</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00107"></a>00107     
-<a name="l00115"></a>00115         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00116"></a>00116         genType <a class="code" href="a00143.html#ga3fd19e045e3943b96e0cdad22fbda111" title="Returns the reciprocal of the positive square root of x.">inversesqrt</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00117"></a>00117 
-<a name="l00119"></a>00119 }<span class="comment">//namespace glm</span>
-<a name="l00120"></a>00120 
-<a name="l00121"></a>00121 <span class="preprocessor">#include &quot;func_exponential.inl&quot;</span>
-<a name="l00122"></a>00122 
-<a name="l00123"></a>00123 <span class="preprocessor">#endif//glm_core_func_exponential</span>
-</pre></div></div>
-</div>
+<a name="l00088"></a>00088 }<span class="comment">//namespace glm</span>
+<a name="l00089"></a>00089 
+<a name="l00090"></a>00090 <span class="preprocessor">#include &quot;intersect.inl&quot;</span>
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092 <span class="preprocessor">#endif//GLM_GTX_intersect</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 17 - 33
doc/api-0.9.3/a00043.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_geometric.hpp File Reference</title>
+<title>intrinsic_common.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,52 +49,35 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">func_geometric.hpp File Reference</div>  </div>
-</div>
+<div class="title">intrinsic_common.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00043_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00144.html#gaa127ddc9d38f715125f91742d399eb6f">cross</a> (detail::tvec3&lt; valType &gt; const &amp;x, detail::tvec3&lt; valType &gt; const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00144.html#ga3fac0e61144f60184d961dd156709dd3">distance</a> (genType const &amp;p0, genType const &amp;p1)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00144.html#ga7a31d2864eccfe665409e3b44f5e6e8d">dot</a> (genType const &amp;x, genType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00144.html#ga855fc5fd7779df1683482564956c6764">faceforward</a> (genType const &amp;N, genType const &amp;I, genType const &amp;Nref)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00144.html#ga282360c8bb80b80d3c7f5bc00766d873">length</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00144.html#ga68b931c228750eeba844c273c54ca43d">normalize</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00144.html#gabe1fa0bef5f854242eb70ce56e5a7d03">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00144.html#gabbb4909d3e99a7a2411cc63252afbbd8">refract</a> (genType const &amp;I, genType const &amp;N, typename genType::value_type const &amp;eta)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-03 / 2011-06-14 </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-05-11 / 2011-06-15 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-06-05 / 2011-06-15 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
 
-<p>Definition in file <a class="el" href="a00043_source.html">func_geometric.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00043_source.html">intrinsic_common.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 65 - 61
doc/api-0.9.3/a00043_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_geometric.hpp Source File</title>
+<title>intrinsic_common.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_geometric.hpp</div>  </div>
-</div>
+<div class="title">intrinsic_common.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00043.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,72 +81,74 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_detail_intrinsic_common</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_detail_intrinsic_common</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">setup.hpp</a>&quot;</span>
 <a name="l00033"></a>00033 
-<a name="l00034"></a>00034 
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036 <span class="preprocessor">#ifndef glm_core_func_geometric</span>
-<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_func_geometric GLM_VERSION</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span>
-<a name="l00039"></a>00039 <span class="keyword">namespace </span>glm
+<a name="l00034"></a>00034 <span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE2) != GLM_ARCH_SSE2)</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#       error &quot;SSE2 instructions not supported or enabled&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>glm{
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>detail
 <a name="l00040"></a>00040 {
-<a name="l00043"></a>00043 
-<a name="l00050"></a>00050         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00051"></a>00051         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00144.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>(
-<a name="l00052"></a>00052                 genType <span class="keyword">const</span> &amp; x); 
+<a name="l00041"></a>00041         __m128 sse_abs_ps(__m128 x);
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043         __m128 sse_sgn_ps(__m128 x);
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045         <span class="comment">//floor</span>
+<a name="l00046"></a>00046         __m128 sse_flr_ps(__m128 v);
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048         <span class="comment">//trunc</span>
+<a name="l00049"></a>00049         __m128 sse_trc_ps(__m128 v);
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051         <span class="comment">//round</span>
+<a name="l00052"></a>00052         __m128 sse_nd_ps(__m128 v);
 <a name="l00053"></a>00053 
-<a name="l00060"></a>00060         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00061"></a>00061         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00144.html#ga3fac0e61144f60184d961dd156709dd3" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance</a>(
-<a name="l00062"></a>00062                 genType <span class="keyword">const</span> &amp; p0, 
-<a name="l00063"></a>00063                 genType <span class="keyword">const</span> &amp; p1);
+<a name="l00054"></a>00054         <span class="comment">//roundEven</span>
+<a name="l00055"></a>00055         __m128 sse_rde_ps(__m128 v);
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057         __m128 sse_rnd_ps(__m128 x);
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059         __m128 sse_ceil_ps(__m128 v);
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061         __m128 sse_frc_ps(__m128 x);
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063         __m128 sse_mod_ps(__m128 x, __m128 y);
 <a name="l00064"></a>00064 
-<a name="l00071"></a>00071     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00072"></a>00072         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00144.html#ga7a31d2864eccfe665409e3b44f5e6e8d" title="Returns the dot product of x and y, i.e., result = x * y.">dot</a>(
-<a name="l00073"></a>00073                 genType <span class="keyword">const</span> &amp; x, 
-<a name="l00074"></a>00074                 genType <span class="keyword">const</span> &amp; y);
-<a name="l00075"></a>00075 
-<a name="l00082"></a>00082     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00083"></a>00083         detail::tvec3&lt;valType&gt; <a class="code" href="a00144.html#gaa127ddc9d38f715125f91742d399eb6f" title="Returns the cross product of x and y.">cross</a>(
-<a name="l00084"></a>00084                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; x, 
-<a name="l00085"></a>00085                 detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; y);
-<a name="l00086"></a>00086 
-<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00092"></a>00092         genType <a class="code" href="a00144.html#ga68b931c228750eeba844c273c54ca43d" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(
-<a name="l00093"></a>00093                 genType <span class="keyword">const</span> &amp; x);
-<a name="l00094"></a>00094 
-<a name="l00101"></a>00101     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00102"></a>00102         genType <a class="code" href="a00144.html#ga855fc5fd7779df1683482564956c6764" title="If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N.">faceforward</a>(
-<a name="l00103"></a>00103                 genType <span class="keyword">const</span> &amp; N, 
-<a name="l00104"></a>00104                 genType <span class="keyword">const</span> &amp; I, 
-<a name="l00105"></a>00105                 genType <span class="keyword">const</span> &amp; Nref);
-<a name="l00106"></a>00106   
-<a name="l00114"></a>00114     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00115"></a>00115         genType <a class="code" href="a00144.html#gabe1fa0bef5f854242eb70ce56e5a7d03" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">reflect</a>(
-<a name="l00116"></a>00116                 genType <span class="keyword">const</span> &amp; I, 
-<a name="l00117"></a>00117                 genType <span class="keyword">const</span> &amp; N);
-<a name="l00118"></a>00118   
-<a name="l00127"></a>00127     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00128"></a>00128         genType <a class="code" href="a00144.html#gabbb4909d3e99a7a2411cc63252afbbd8" title="For the incident vector I and surface normal N, and the ratio of indices of refraction eta...">refract</a>(
-<a name="l00129"></a>00129                 genType <span class="keyword">const</span> &amp; I, 
-<a name="l00130"></a>00130                 genType <span class="keyword">const</span> &amp; N, 
-<a name="l00131"></a>00131                 <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; eta);
-<a name="l00132"></a>00132 
-<a name="l00134"></a>00134 }<span class="comment">//namespace glm</span>
-<a name="l00135"></a>00135 
-<a name="l00136"></a>00136 <span class="preprocessor">#include &quot;func_geometric.inl&quot;</span>
-<a name="l00137"></a>00137 
-<a name="l00138"></a>00138 <span class="preprocessor">#endif//glm_core_func_geometric</span>
-</pre></div></div>
-</div>
+<a name="l00065"></a>00065         __m128 sse_modf_ps(__m128 x, __m128i &amp; i);
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067         <span class="comment">//GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)</span>
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069         <span class="comment">//GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)</span>
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071         __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073         __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075         __m128 sse_stp_ps(__m128 edge, __m128 x);
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077         __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079         __m128 sse_nan_ps(__m128 x);
+<a name="l00080"></a>00080 
+<a name="l00081"></a>00081         __m128 sse_inf_ps(__m128 x);
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 }<span class="comment">//namespace detail</span>
+<a name="l00084"></a>00084 }<span class="comment">//namespace glm</span>
+<a name="l00085"></a>00085 
+<a name="l00086"></a>00086 <span class="preprocessor">#include &quot;intrinsic_common.inl&quot;</span>
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088 <span class="preprocessor">#endif//GLM_ARCH</span>
+<a name="l00089"></a>00089 <span class="preprocessor"></span><span class="preprocessor">#endif//glm_detail_intrinsic_common</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 38
doc/api-0.9.3/a00044.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_integer.hpp File Reference</title>
+<title>intrinsic_exponential.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,56 +49,29 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">func_integer.hpp File Reference</div>  </div>
-</div>
+<div class="title">intrinsic_exponential.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00044_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class genIUType&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga5c4d37c42926b09be4384a9656f73ee4">bitCount</a> (genIUType&lt; T &gt; const &amp;Value)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaeae27fd61779ae93b8d0fa9cef142c3d">bitfieldExtract</a> (genIUType const &amp;Value, int const &amp;Offset, int const &amp;Bits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga490b328e7b5d06b477ede4a59edfb798">bitfieldInsert</a> (genIUType const &amp;Base, genIUType const &amp;Insert, int const &amp;Offset, int const &amp;Bits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac36ad04d509817f2f4769d45f13f43e5">bitfieldReverse</a> (genIUType const &amp;value)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class genIUType&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf921488d20990ec15f3fde3d1db919f0">findLSB</a> (genIUType&lt; T &gt; const &amp;Value)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class genIUType&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&lt; T &gt;::signed_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaa17f942299cb7a51c60155f9e78228f3">findMSB</a> (genIUType&lt; T &gt; const &amp;Value)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gab0eaec4d0964925429322eebf8dca6d0">imulExtended</a> (genIType const &amp;x, genIType const &amp;y, genIType &amp;msb, genIType &amp;lsb)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga7d96efb73301e722a527b912f05f6ac0">uaddCarry</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;carry)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga8e89fcd6b0e2cd96cd2e1b69fdb7afd9">umulExtended</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;msb, genUType &amp;lsb)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genUType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gacd727c8bb8bda7a509773f9f204ab5a1">usubBorrow</a> (genUType const &amp;x, genUType const &amp;y, genUType &amp;borrow)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2010-03-17 / 2011-06-18 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-05-11 / 2011-06-15 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
 
-<p>Definition in file <a class="el" href="a00044_source.html">func_integer.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00044_source.html">intrinsic_exponential.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 58 - 78
doc/api-0.9.3/a00044_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_integer.hpp Source File</title>
+<title>intrinsic_exponential.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_integer.hpp</div>  </div>
-</div>
+<div class="title">intrinsic_exponential.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00044.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,86 +81,64 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_detail_intrinsic_exponential</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_detail_intrinsic_exponential</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">setup.hpp</a>&quot;</span>
 <a name="l00033"></a>00033 
-<a name="l00034"></a>00034 
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef glm_core_func_integer</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_func_integer GLM_VERSION</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="keyword">namespace </span>glm
-<a name="l00042"></a>00042 {
-<a name="l00045"></a>00045 
-<a name="l00054"></a>00054         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
-<a name="l00055"></a>00055         genUType <a class="code" href="a00145.html#ga7d96efb73301e722a527b912f05f6ac0" title="Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).">uaddCarry</a>(
-<a name="l00056"></a>00056                 genUType <span class="keyword">const</span> &amp; x, 
-<a name="l00057"></a>00057                 genUType <span class="keyword">const</span> &amp; y, 
-<a name="l00058"></a>00058                 genUType &amp; carry);
-<a name="l00059"></a>00059 
-<a name="l00068"></a>00068         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
-<a name="l00069"></a>00069         genUType <a class="code" href="a00145.html#gacd727c8bb8bda7a509773f9f204ab5a1" 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>(
-<a name="l00070"></a>00070                 genUType <span class="keyword">const</span> &amp; x, 
-<a name="l00071"></a>00071                 genUType <span class="keyword">const</span> &amp; y, 
-<a name="l00072"></a>00072                 genUType &amp; borrow);
-<a name="l00073"></a>00073                 
-<a name="l00082"></a>00082         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genUType&gt;
-<a name="l00083"></a>00083         <span class="keywordtype">void</span> <a class="code" href="a00145.html#ga8e89fcd6b0e2cd96cd2e1b69fdb7afd9" title="Multiplies 32-bit integers x and y, producing a 64-bit result.">umulExtended</a>(
-<a name="l00084"></a>00084                 genUType <span class="keyword">const</span> &amp; x, 
-<a name="l00085"></a>00085                 genUType <span class="keyword">const</span> &amp; y, 
-<a name="l00086"></a>00086                 genUType &amp; msb, 
-<a name="l00087"></a>00087                 genUType &amp; lsb);
-<a name="l00088"></a>00088                 
-<a name="l00097"></a>00097         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIType&gt;
-<a name="l00098"></a>00098         <span class="keywordtype">void</span> <a class="code" href="a00145.html#gab0eaec4d0964925429322eebf8dca6d0" title="Multiplies 32-bit integers x and y, producing a 64-bit result.">imulExtended</a>(
-<a name="l00099"></a>00099                 genIType <span class="keyword">const</span> &amp; x, 
-<a name="l00100"></a>00100                 genIType <span class="keyword">const</span> &amp; y, 
-<a name="l00101"></a>00101                 genIType &amp; msb, 
-<a name="l00102"></a>00102                 genIType &amp; lsb);
-<a name="l00103"></a>00103 
-<a name="l00119"></a>00119         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
-<a name="l00120"></a>00120         genIUType <a class="code" href="a00145.html#gaeae27fd61779ae93b8d0fa9cef142c3d" title="Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...">bitfieldExtract</a>(
-<a name="l00121"></a>00121                 genIUType <span class="keyword">const</span> &amp; Value, 
-<a name="l00122"></a>00122                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Offset, 
-<a name="l00123"></a>00123                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Bits);
-<a name="l00124"></a>00124 
-<a name="l00139"></a>00139         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
-<a name="l00140"></a>00140         genIUType <a class="code" href="a00145.html#ga490b328e7b5d06b477ede4a59edfb798" title="Returns the insertion the bits least-significant bits of insert into base.">bitfieldInsert</a>(
-<a name="l00141"></a>00141                 genIUType <span class="keyword">const</span> &amp; Base, 
-<a name="l00142"></a>00142                 genIUType <span class="keyword">const</span> &amp; Insert, 
-<a name="l00143"></a>00143                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Offset, 
-<a name="l00144"></a>00144                 <span class="keywordtype">int</span> <span class="keyword">const</span> &amp; Bits);
-<a name="l00145"></a>00145 
-<a name="l00154"></a>00154         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;
-<a name="l00155"></a>00155         genIUType <a class="code" href="a00145.html#gac36ad04d509817f2f4769d45f13f43e5" title="Returns the reversal of the bits of value.">bitfieldReverse</a>(genIUType <span class="keyword">const</span> &amp; value);
-<a name="l00156"></a>00156                 
-<a name="l00165"></a>00165         <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>genIUType&gt;
-<a name="l00166"></a>00166         <span class="keyword">typename</span> genIUType&lt;T&gt;::signed_type <a class="code" href="a00145.html#ga5c4d37c42926b09be4384a9656f73ee4" title="Returns the number of bits set to 1 in the binary representation of value.">bitCount</a>(genIUType&lt;T&gt; <span class="keyword">const</span> &amp; Value);
-<a name="l00167"></a>00167 
-<a name="l00178"></a>00178         <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>genIUType&gt;
-<a name="l00179"></a>00179         <span class="keyword">typename</span> genIUType&lt;T&gt;::signed_type <a class="code" href="a00145.html#gaf921488d20990ec15f3fde3d1db919f0" title="Returns the bit number of the least significant bit set to 1 in the binary representation of value...">findLSB</a>(genIUType&lt;T&gt; <span class="keyword">const</span> &amp; Value);
-<a name="l00180"></a>00180 
-<a name="l00192"></a>00192         <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>genIUType&gt;
-<a name="l00193"></a>00193         <span class="keyword">typename</span> genIUType&lt;T&gt;::signed_type <a class="code" href="a00145.html#gaa17f942299cb7a51c60155f9e78228f3" title="Returns the bit number of the most significant bit in the binary representation of value...">findMSB</a>(genIUType&lt;T&gt; <span class="keyword">const</span> &amp; Value);
-<a name="l00194"></a>00194 
-<a name="l00196"></a>00196 }<span class="comment">//namespace glm</span>
-<a name="l00197"></a>00197 
-<a name="l00198"></a>00198 <span class="preprocessor">#include &quot;func_integer.inl&quot;</span>
-<a name="l00199"></a>00199 
-<a name="l00200"></a>00200 <span class="preprocessor">#endif//glm_core_func_integer</span>
-<a name="l00201"></a>00201 <span class="preprocessor"></span>
-</pre></div></div>
-</div>
+<a name="l00034"></a>00034 <span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE2) != GLM_ARCH_SSE2)</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#       error &quot;SSE2 instructions not supported or enabled&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>glm{
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>detail
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041 <span class="comment">/*</span>
+<a name="l00042"></a>00042 <span class="comment">GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)</span>
+<a name="l00043"></a>00043 <span class="comment">{</span>
+<a name="l00044"></a>00044 <span class="comment">        __m128 recip = _mm_rsqrt_ss( x );  // &quot;estimate&quot; opcode</span>
+<a name="l00045"></a>00045 <span class="comment">        const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load</span>
+<a name="l00046"></a>00046 <span class="comment">        const static __m128 half = { 0.5,0.5,0.5,0.5 };</span>
+<a name="l00047"></a>00047 <span class="comment">        __m128 halfrecip = _mm_mul_ss( half, recip );</span>
+<a name="l00048"></a>00048 <span class="comment">        __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );</span>
+<a name="l00049"></a>00049 <span class="comment">        return _mm_mul_ss( halfrecip, threeminus_xrr );</span>
+<a name="l00050"></a>00050 <span class="comment">}</span>
+<a name="l00051"></a>00051 <span class="comment"> </span>
+<a name="l00052"></a>00052 <span class="comment">GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps(  float * RESTRICT vOut, float * RESTRICT vIn )</span>
+<a name="l00053"></a>00053 <span class="comment">{</span>
+<a name="l00054"></a>00054 <span class="comment">        __m128 x = _mm_load_ss(&amp;vIn[0]);</span>
+<a name="l00055"></a>00055 <span class="comment">        __m128 y = _mm_load_ss(&amp;vIn[1]);</span>
+<a name="l00056"></a>00056 <span class="comment">        __m128 z = _mm_load_ss(&amp;vIn[2]);</span>
+<a name="l00057"></a>00057 <span class="comment"> </span>
+<a name="l00058"></a>00058 <span class="comment">        const __m128 l =  // compute x*x + y*y + z*z</span>
+<a name="l00059"></a>00059 <span class="comment">                _mm_add_ss(</span>
+<a name="l00060"></a>00060 <span class="comment">                 _mm_add_ss( _mm_mul_ss(x,x),</span>
+<a name="l00061"></a>00061 <span class="comment">                             _mm_mul_ss(y,y)</span>
+<a name="l00062"></a>00062 <span class="comment">                            ),</span>
+<a name="l00063"></a>00063 <span class="comment">                 _mm_mul_ss( z, z )</span>
+<a name="l00064"></a>00064 <span class="comment">                );</span>
+<a name="l00065"></a>00065 <span class="comment"> </span>
+<a name="l00066"></a>00066 <span class="comment"> </span>
+<a name="l00067"></a>00067 <span class="comment">        const __m128 rsqt = _mm_rsqrt_nr_ss( l );</span>
+<a name="l00068"></a>00068 <span class="comment">        _mm_store_ss( &amp;vOut[0] , _mm_mul_ss( rsqt, x ) );</span>
+<a name="l00069"></a>00069 <span class="comment">        _mm_store_ss( &amp;vOut[1] , _mm_mul_ss( rsqt, y ) );</span>
+<a name="l00070"></a>00070 <span class="comment">        _mm_store_ss( &amp;vOut[2] , _mm_mul_ss( rsqt, z ) );</span>
+<a name="l00071"></a>00071 <span class="comment"> </span>
+<a name="l00072"></a>00072 <span class="comment">        return _mm_mul_ss( l , rsqt );</span>
+<a name="l00073"></a>00073 <span class="comment">}</span>
+<a name="l00074"></a>00074 <span class="comment">*/</span>
+<a name="l00075"></a>00075 }<span class="comment">//namespace detail</span>
+<a name="l00076"></a>00076 }<span class="comment">//namespace glm</span>
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078 <span class="preprocessor">#endif//GLM_ARCH</span>
+<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">#endif//glm_detail_intrinsic_exponential</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 39
doc/api-0.9.3/a00045.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_matrix.hpp File Reference</title>
+<title>intrinsic_geometric.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,57 +49,29 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">func_matrix.hpp File Reference</div>  </div>
-</div>
+<div class="title">intrinsic_geometric.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00045_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; valType &gt;<br class="typebreak"/>
-::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gad3bfb2098e1572d2131a261c1fb76dd4">determinant</a> (detail::tmat2x2&lt; valType &gt; const &amp;m)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;<br class="typebreak"/>
-::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga2f26bb474e077cf03b9db23f813e8450">determinant</a> (detail::tmat3x3&lt; valType &gt; const &amp;m)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;<br class="typebreak"/>
-::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga1daa306eecf6e8b379626d761b8c222f">determinant</a> (detail::tmat4x4&lt; valType &gt; const &amp;m)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gada3384a86cf38a1fd96275194b8ba8c0">inverse</a> (detail::tmat2x2&lt; valType &gt; const &amp;m)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga1a455651f7ba323ade0cd9191542b179">inverse</a> (detail::tmat3x3&lt; valType &gt; const &amp;m)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gabc94b29dea14e111e48bc963c47559b2">inverse</a> (detail::tmat4x4&lt; valType &gt; const &amp;m)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga0e48491a51b3f366d671c01894705605">matrixCompMult</a> (matType const &amp;x, matType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType , typename matType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga5d896e8651512fc098a677dbe403eeac">outerProduct</a> (vecType const &amp;c, vecType const &amp;r)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">matType::transpose_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gac58a4106a57fb7da41b3aeae3832998b">transpose</a> (matType const &amp;x)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-03 / 2011-06-15 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-05-08 / 2011-06-15 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
 
-<p>Definition in file <a class="el" href="a00045_source.html">func_matrix.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00045_source.html">intrinsic_geometric.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 53 - 64
doc/api-0.9.3/a00045_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_matrix.hpp Source File</title>
+<title>intrinsic_geometric.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_matrix.hpp</div>  </div>
-</div>
+<div class="title">intrinsic_geometric.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00045.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,74 +81,61 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_core_intrinsic_geometric</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_intrinsic_geometric</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">setup.hpp</a>&quot;</span>
 <a name="l00033"></a>00033 
-<a name="l00034"></a>00034 
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
+<a name="l00034"></a>00034 <span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE2) != GLM_ARCH_SSE2)</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#       error &quot;SSE2 instructions not supported or enabled&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include &quot;<a class="code" href="a00043.html" title="OpenGL Mathematics (glm.g-truc.net)">intrinsic_common.hpp</a>&quot;</span>
 <a name="l00039"></a>00039 
-<a name="l00040"></a>00040 <span class="preprocessor">#ifndef GLM_CORE_func_matrix</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_matrix GLM_VERSION</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span>
-<a name="l00043"></a>00043 <span class="keyword">namespace </span>glm
-<a name="l00044"></a>00044 {
-<a name="l00047"></a>00047 
-<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> matType&gt; 
-<a name="l00056"></a>00056         matType <a class="code" href="a00146.html#ga0e48491a51b3f366d671c01894705605" 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>(
-<a name="l00057"></a>00057                 matType <span class="keyword">const</span> &amp; x, 
-<a name="l00058"></a>00058                 matType <span class="keyword">const</span> &amp; y);
-<a name="l00059"></a>00059 
-<a name="l00070"></a>00070     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType, <span class="keyword">typename</span> matType&gt; 
-<a name="l00071"></a>00071         matType <a class="code" href="a00146.html#ga5d896e8651512fc098a677dbe403eeac" title="Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...">outerProduct</a>(
-<a name="l00072"></a>00072                 vecType <span class="keyword">const</span> &amp; c, 
-<a name="l00073"></a>00073                 vecType <span class="keyword">const</span> &amp; r);
+<a name="l00040"></a>00040 <span class="keyword">namespace </span>glm{
+<a name="l00041"></a>00041 <span class="keyword">namespace </span>detail
+<a name="l00042"></a>00042 {
+<a name="l00043"></a>00043         <span class="comment">//length</span>
+<a name="l00044"></a>00044         __m128 sse_len_ps(__m128 x);
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046         <span class="comment">//distance</span>
+<a name="l00047"></a>00047         __m128 sse_dst_ps(__m128 p0, __m128 p1);
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049         <span class="comment">//dot</span>
+<a name="l00050"></a>00050         __m128 sse_dot_ps(__m128 v1, __m128 v2);
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052         <span class="comment">// SSE1</span>
+<a name="l00053"></a>00053         __m128 sse_dot_ss(__m128 v1, __m128 v2);
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055         <span class="comment">//cross</span>
+<a name="l00056"></a>00056         __m128 sse_xpd_ps(__m128 v1, __m128 v2);
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058         <span class="comment">//normalize</span>
+<a name="l00059"></a>00059         __m128 sse_nrm_ps(__m128 v);
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061         <span class="comment">//faceforward</span>
+<a name="l00062"></a>00062         __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064         <span class="comment">//reflect</span>
+<a name="l00065"></a>00065         __m128 sse_rfe_ps(__m128 I, __m128 N);
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067         <span class="comment">//refract</span>
+<a name="l00068"></a>00068         __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070 }<span class="comment">//namespace detail</span>
+<a name="l00071"></a>00071 }<span class="comment">//namespace glm</span>
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073 <span class="preprocessor">#include &quot;intrinsic_geometric.inl&quot;</span>
 <a name="l00074"></a>00074 
-<a name="l00081"></a>00081     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> matType&gt; 
-<a name="l00082"></a>00082         <span class="keyword">typename</span> matType::transpose_type <a class="code" href="a00146.html#gac58a4106a57fb7da41b3aeae3832998b" title="Returns the transposed matrix of x.">transpose</a>(
-<a name="l00083"></a>00083                 matType <span class="keyword">const</span> &amp; x);
-<a name="l00084"></a>00084         
-<a name="l00091"></a>00091         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00092"></a>00092         <span class="keyword">typename</span> detail::tmat2x2&lt;valType&gt;::value_type <a class="code" href="a00146.html#gad3bfb2098e1572d2131a261c1fb76dd4" title="Return the determinant of a mat2 matrix.">determinant</a>(
-<a name="l00093"></a>00093                 detail::tmat2x2&lt;valType&gt; <span class="keyword">const</span> &amp; m);
-<a name="l00094"></a>00094 
-<a name="l00101"></a>00101         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00102"></a>00102         <span class="keyword">typename</span> detail::tmat3x3&lt;valType&gt;::value_type <a class="code" href="a00146.html#gad3bfb2098e1572d2131a261c1fb76dd4" title="Return the determinant of a mat2 matrix.">determinant</a>(
-<a name="l00103"></a>00103                 detail::tmat3x3&lt;valType&gt; <span class="keyword">const</span> &amp; m);
-<a name="l00104"></a>00104 
-<a name="l00111"></a>00111     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00112"></a>00112         <span class="keyword">typename</span> detail::tmat4x4&lt;valType&gt;::value_type <a class="code" href="a00146.html#gad3bfb2098e1572d2131a261c1fb76dd4" title="Return the determinant of a mat2 matrix.">determinant</a>(
-<a name="l00113"></a>00113                 detail::tmat4x4&lt;valType&gt; <span class="keyword">const</span> &amp; m);
-<a name="l00114"></a>00114 
-<a name="l00121"></a>00121         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00122"></a>00122         detail::tmat2x2&lt;valType&gt; <a class="code" href="a00146.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(
-<a name="l00123"></a>00123                 detail::tmat2x2&lt;valType&gt; <span class="keyword">const</span> &amp; m);
-<a name="l00124"></a>00124 
-<a name="l00131"></a>00131         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00132"></a>00132         detail::tmat3x3&lt;valType&gt; <a class="code" href="a00146.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(
-<a name="l00133"></a>00133                 detail::tmat3x3&lt;valType&gt; <span class="keyword">const</span> &amp; m);
-<a name="l00134"></a>00134 
-<a name="l00141"></a>00141         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; 
-<a name="l00142"></a>00142         detail::tmat4x4&lt;valType&gt; <a class="code" href="a00146.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(
-<a name="l00143"></a>00143                 detail::tmat4x4&lt;valType&gt; <span class="keyword">const</span> &amp; m);
-<a name="l00144"></a>00144 
-<a name="l00146"></a>00146 }<span class="comment">//namespace glm</span>
-<a name="l00147"></a>00147 
-<a name="l00148"></a>00148 <span class="preprocessor">#include &quot;func_matrix.inl&quot;</span>
-<a name="l00149"></a>00149 
-<a name="l00150"></a>00150 <span class="preprocessor">#endif//GLM_CORE_func_matrix</span>
-</pre></div></div>
-</div>
+<a name="l00075"></a>00075 <span class="preprocessor">#endif//GLM_ARCH</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor">#endif//glm_core_intrinsic_geometric</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 47 - 37
doc/api-0.9.3/a00046_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_noise.hpp Source File</title>
+<title>intrinsic_matrix.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,12 +47,13 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_noise.hpp</div>  </div>
-</div>
+<div class="title">intrinsic_matrix.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
-<a href="a00046.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 
 <a name="l00004"></a>00004 
@@ -79,46 +81,54 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_detail_intrinsic_matrix</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_detail_intrinsic_matrix</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">setup.hpp</a>&quot;</span>
 <a name="l00033"></a>00033 
-<a name="l00034"></a>00034 
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef glm_core_func_noise</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define glm_core_func_noise GLM_VERSION</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="keyword">namespace </span>glm
+<a name="l00034"></a>00034 <span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE2) != GLM_ARCH_SSE2)</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#       error &quot;SSE2 instructions not supported or enabled&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include &quot;<a class="code" href="a00045.html" title="OpenGL Mathematics (glm.g-truc.net)">intrinsic_geometric.hpp</a>&quot;</span>
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="keyword">namespace </span>glm{
+<a name="l00041"></a>00041 <span class="keyword">namespace </span>detail
 <a name="l00042"></a>00042 {
-<a name="l00045"></a>00045 
-<a name="l00052"></a>00052         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
-<a name="l00053"></a>00053         <span class="keyword">typename</span> genType::value_type <a class="code" href="a00147.html#ga687ac48ae4591c0da916052e469aad74" title="Returns a 1D noise value based on the input value x.">noise1</a>(genType <span class="keyword">const</span> &amp; x);
+<a name="l00043"></a>00043         <span class="keywordtype">void</span> sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045         <span class="keywordtype">void</span> sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047         __m128 sse_mul_ps(__m128 m[4], __m128 v);
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049         __m128 sse_mul_ps(__m128 v, __m128 m[4]);
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051         <span class="keywordtype">void</span> sse_mul_ps(__m128 <span class="keyword">const</span> in1[4], __m128 <span class="keyword">const</span> in2[4], __m128 out[4]);
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053         <span class="keywordtype">void</span> sse_transpose_ps(__m128 <span class="keyword">const</span> in[4], __m128 out[4]);
 <a name="l00054"></a>00054 
-<a name="l00061"></a>00061         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
-<a name="l00062"></a>00062         detail::tvec2&lt;typename genType::value_type&gt; <a class="code" href="a00147.html#ga528fc75920119a7ab65ef6dccef28752" title="Returns a 2D noise value based on the input value x.">noise2</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00063"></a>00063 
-<a name="l00070"></a>00070         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
-<a name="l00071"></a>00071         detail::tvec3&lt;typename genType::value_type&gt; <a class="code" href="a00147.html#gaf1589bc1859b8dc53d737ece36b59b85" title="Returns a 3D noise value based on the input value x.">noise3</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00072"></a>00072 
-<a name="l00079"></a>00079         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;
-<a name="l00080"></a>00080         detail::tvec4&lt;typename genType::value_type&gt; <a class="code" href="a00147.html#ga7b3cd0ab6f03142dd9ff3054e7fe5299" title="Returns a 4D noise value based on the input value x.">noise4</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00081"></a>00081 
-<a name="l00083"></a>00083 }<span class="comment">//namespace glm</span>
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085 <span class="preprocessor">#include &quot;func_noise.inl&quot;</span>
-<a name="l00086"></a>00086 
-<a name="l00087"></a>00087 <span class="preprocessor">#endif//glm_core_func_noise</span>
-</pre></div></div>
-</div>
+<a name="l00055"></a>00055         <span class="keywordtype">void</span> sse_inverse_ps(__m128 <span class="keyword">const</span> in[4], __m128 out[4]);
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057         <span class="keywordtype">void</span> sse_rotate_ps(__m128 <span class="keyword">const</span> in[4], <span class="keywordtype">float</span> Angle, <span class="keywordtype">float</span> <span class="keyword">const</span> v[3], __m128 out[4]);
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059         __m128 sse_det_ps(__m128 <span class="keyword">const</span> m[4]);
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061         __m128 sse_slow_det_ps(__m128 <span class="keyword">const</span> m[4]);
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 }<span class="comment">//namespace detail</span>
+<a name="l00064"></a>00064 }<span class="comment">//namespace glm</span>
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066 <span class="preprocessor">#include &quot;intrinsic_matrix.inl&quot;</span>
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068 <span class="preprocessor">#endif//GLM_ARCH</span>
+<a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor">#endif//glm_detail_intrinsic_matrix</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 30
doc/api-0.9.3/a00047.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_packing.hpp File Reference</title>
+<title>intrinsic_trigonometric.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,48 +49,29 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">func_packing.hpp File Reference</div>  </div>
-</div>
+<div class="title">intrinsic_trigonometric.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00047_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#gab7776e189f8fb8210dbaf4685f9d400a">packDouble2x32</a> (detail::tvec2&lt; detail::uint32 &gt; const &amp;v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ga5f63a9353416d3d240962520d5e77dbc">packHalf2x16</a> (vec2 const &amp;v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ga85552b13309c20c90a43fcf4906e6314">packSnorm2x16</a> (detail::tvec2&lt; detail::float32 &gt; const &amp;v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#gaa9d1bf79e69382e55eb3adf51f978afd">packSnorm4x8</a> (detail::tvec4&lt; detail::float32 &gt; const &amp;v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#gae4cbe68e49e238fce5bf83c2ab03746c">packUnorm2x16</a> (detail::tvec2&lt; detail::float32 &gt; const &amp;v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ga58d4ebc6f2824dcbcef73e3764339ea4">packUnorm4x8</a> (detail::tvec4&lt; detail::float32 &gt; const &amp;v)</td></tr>
-<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="a00148.html#gadfbce841431cb5fb8531469a6c1e01d9">unpackDouble2x32</a> (double const &amp;v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ga74e86400717e9a83f30ef8610a122daf">unpackHalf2x16</a> (uint const &amp;v)</td></tr>
-<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="a00148.html#gaaf9e09346412610f361fa17a1e502090">unpackSnorm2x16</a> (detail::uint32 const &amp;p)</td></tr>
-<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="a00148.html#ga014513c3f058e755660f702b65559215">unpackSnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
-<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="a00148.html#gad146587dbc78ae05c48b8b0e7af7e640">unpackUnorm2x16</a> (detail::uint32 const &amp;p)</td></tr>
-<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="a00148.html#gaeccbff725476f317b1464a0a0fae3be7">unpackUnorm4x8</a> (detail::uint32 const &amp;p)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2010-03-17 / 2011-06-15 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-06-09 / 2011-06-15 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
 
-<p>Definition in file <a class="el" href="a00047_source.html">func_packing.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00047_source.html">intrinsic_trigonometric.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 27 - 50
doc/api-0.9.3/a00047_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_packing.hpp Source File</title>
+<title>intrinsic_trigonometric.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_packing.hpp</div>  </div>
-</div>
+<div class="title">intrinsic_trigonometric.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00047.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,58 +81,33 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_detail_intrinsic_trigonometric</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_detail_intrinsic_trigonometric</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">setup.hpp</a>&quot;</span>
 <a name="l00033"></a>00033 
-<a name="l00034"></a>00034 
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036 <span class="preprocessor">#ifndef GLM_CORE_func_packing</span>
-<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_packing GLM_VERSION</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span>
-<a name="l00039"></a>00039 <span class="keyword">namespace </span>glm
-<a name="l00040"></a>00040 {       
-<a name="l00043"></a>00043 
-<a name="l00055"></a>00055         detail::uint32 <a class="code" href="a00148.html#gae4cbe68e49e238fce5bf83c2ab03746c" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packUnorm2x16</a>(detail::tvec2&lt;detail::float32&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00056"></a>00056 
-<a name="l00068"></a>00068         detail::uint32 <a class="code" href="a00148.html#ga85552b13309c20c90a43fcf4906e6314" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packSnorm2x16</a>(detail::tvec2&lt;detail::float32&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00069"></a>00069         
-<a name="l00081"></a>00081         detail::uint32 <a class="code" href="a00148.html#ga58d4ebc6f2824dcbcef73e3764339ea4" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packUnorm4x8</a>(detail::tvec4&lt;detail::float32&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00082"></a>00082         
-<a name="l00094"></a>00094         detail::uint32 <a class="code" href="a00148.html#gaa9d1bf79e69382e55eb3adf51f978afd" title="First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...">packSnorm4x8</a>(detail::tvec4&lt;detail::float32&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00095"></a>00095 
-<a name="l00107"></a>00107         detail::tvec2&lt;detail::float32&gt; <a class="code" href="a00148.html#gad146587dbc78ae05c48b8b0e7af7e640" 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>(detail::uint32 <span class="keyword">const</span> &amp; p);
-<a name="l00108"></a>00108 
-<a name="l00120"></a>00120         detail::tvec2&lt;detail::float32&gt; <a class="code" href="a00148.html#gaaf9e09346412610f361fa17a1e502090" 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.">unpackSnorm2x16</a>(detail::uint32 <span class="keyword">const</span> &amp; p);
-<a name="l00121"></a>00121         
-<a name="l00133"></a>00133     detail::tvec4&lt;detail::float32&gt; <a class="code" href="a00148.html#gaeccbff725476f317b1464a0a0fae3be7" 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>(detail::uint32 <span class="keyword">const</span> &amp; p);
-<a name="l00134"></a>00134         
-<a name="l00146"></a>00146         detail::tvec4&lt;detail::float32&gt; <a class="code" href="a00148.html#ga014513c3f058e755660f702b65559215" 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>(detail::uint32 <span class="keyword">const</span> &amp; p);
-<a name="l00147"></a>00147 
-<a name="l00156"></a>00156         <span class="keywordtype">double</span> <a class="code" href="a00148.html#gab7776e189f8fb8210dbaf4685f9d400a" title="Returns a double-precision value obtained by packing the components of v into a 64-bit value...">packDouble2x32</a>(detail::tvec2&lt;detail::uint32&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00157"></a>00157         
-<a name="l00165"></a>00165         detail::tvec2&lt;detail::uint32&gt; <a class="code" href="a00148.html#gadfbce841431cb5fb8531469a6c1e01d9" 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);
-<a name="l00166"></a>00166 
-<a name="l00167"></a>00167         
-<a name="l00176"></a>00176         <a class="code" href="a00156.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> <a class="code" href="a00148.html#ga5f63a9353416d3d240962520d5e77dbc" title="Returns an unsigned integer obtained by converting the components of a two-component floating-point v...">packHalf2x16</a>(<a class="code" href="a00155.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v);
-<a name="l00177"></a>00177         
-<a name="l00186"></a>00186         <a class="code" href="a00155.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <a class="code" href="a00148.html#ga74e86400717e9a83f30ef8610a122daf" title="Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...">unpackHalf2x16</a>(<a class="code" href="a00156.html#ga4d16da297112d05af72fc456a1c4f386" title="Unsigned integer type.">uint</a> <span class="keyword">const</span> &amp; v);
-<a name="l00187"></a>00187         
-<a name="l00189"></a>00189 }<span class="comment">//namespace glm</span>
-<a name="l00190"></a>00190 
-<a name="l00191"></a>00191 <span class="preprocessor">#include &quot;func_packing.inl&quot;</span>
-<a name="l00192"></a>00192 
-<a name="l00193"></a>00193 <span class="preprocessor">#endif//GLM_CORE_func_packing</span>
-<a name="l00194"></a>00194 <span class="preprocessor"></span>
-</pre></div></div>
-</div>
+<a name="l00034"></a>00034 <span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE2) != GLM_ARCH_SSE2)</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#       error &quot;SSE2 instructions not supported or enabled&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>glm{
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>detail
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041 
+<a name="l00042"></a>00042 }<span class="comment">//namespace detail</span>
+<a name="l00043"></a>00043 }<span class="comment">//namespace glm</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;intrinsic_trigonometric.inl&quot;</span>
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="preprocessor">#endif//GLM_ARCH</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif//glm_detail_intrinsic_trigonometric</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 48
doc/api-0.9.3/a00048.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_trigonometric.hpp File Reference</title>
+<title>intrinsic_vector_relational.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,66 +49,29 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">func_trigonometric.hpp File Reference</div>  </div>
-</div>
+<div class="title">intrinsic_vector_relational.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00048_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gafef7954b5fa3228f4aaabde8dfa862a1">acos</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga0f37ff6b6878a0169cd41249e5377e09">acosh</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga76b6422e62c99fa0849abdf21fcef5cf">asin</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga615d386dcfb41cdbbca2609c53113aac">asinh</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga2394d11075a74869cd88473c76722bc8">atan</a> (genType const &amp;y, genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga5db83034488156692939acb4f4e46fa6">atan</a> (genType const &amp;y_over_x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gadeda850d5dff43d4d069854b1b6a623c">atanh</a> (genType const &amp;x)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gace62d5d164def52455aeff19e1bccd88">cos</a> (genType const &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gaf1b20113fe439fa48524e8c35ea2c1d0">cosh</a> (genType const &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga034bdb53d458242c506e4d830c7df3aa">degrees</a> (genType const &amp;radians)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga4fb76e28851c9ff6653532566084e091">radians</a> (genType const &amp;degrees)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga4fcd05daafb008f20e121e727c0196c7">sin</a> (genType const &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga6f38bb1a343b5d73ac71ddd53baa3375">sinh</a> (genType const &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga43860bed05c85587e2d931b26d765640">tan</a> (genType const &amp;angle)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga5315f571fd52f30d368abc056c4aea13">tanh</a> (genType const &amp;angle)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-01 / 2011-06-15 </dd></dl>
-<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<p><a class="el" href="a00137.html">GLM Core</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2009-06-09 / 2011-06-15 </dd></dl>
+<dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio </dd></dl>
 
-<p>Definition in file <a class="el" href="a00048_source.html">func_trigonometric.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00048_source.html">intrinsic_vector_relational.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 27 - 75
doc/api-0.9.3/a00048_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_trigonometric.hpp Source File</title>
+<title>intrinsic_vector_relational.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_trigonometric.hpp</div>  </div>
-</div>
+<div class="title">intrinsic_vector_relational.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00048.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -79,83 +81,33 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef glm_detail_intrinsic_vector_relational</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define glm_detail_intrinsic_vector_relational</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net)">setup.hpp</a>&quot;</span>
 <a name="l00033"></a>00033 
-<a name="l00034"></a>00034 
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040 <span class="preprocessor">#ifndef GLM_CORE_func_trigonometric</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_trigonometric GLM_VERSION</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span>
-<a name="l00043"></a>00043 <span class="keyword">namespace </span>glm
-<a name="l00044"></a>00044 {
-<a name="l00047"></a>00047 
-<a name="l00054"></a>00054         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00055"></a>00055         genType <a class="code" href="a00149.html#ga4fb76e28851c9ff6653532566084e091" title="Converts degrees to radians and returns the result.">radians</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00149.html#ga034bdb53d458242c506e4d830c7df3aa" title="Converts radians to degrees and returns the result.">degrees</a>);
-<a name="l00056"></a>00056 
-<a name="l00063"></a>00063         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00064"></a>00064         genType <a class="code" href="a00149.html#ga034bdb53d458242c506e4d830c7df3aa" title="Converts radians to degrees and returns the result.">degrees</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00149.html#ga4fb76e28851c9ff6653532566084e091" title="Converts degrees to radians and returns the result.">radians</a>);
-<a name="l00065"></a>00065 
-<a name="l00073"></a>00073         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00074"></a>00074         genType <a class="code" href="a00149.html#ga4fcd05daafb008f20e121e727c0196c7" title="The standard trigonometric sine function.">sin</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00075"></a>00075 
-<a name="l00083"></a>00083         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00084"></a>00084         genType <a class="code" href="a00149.html#gace62d5d164def52455aeff19e1bccd88" title="The standard trigonometric cosine function.">cos</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00085"></a>00085 
-<a name="l00092"></a>00092         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00093"></a>00093         genType <a class="code" href="a00149.html#ga43860bed05c85587e2d931b26d765640" title="The standard trigonometric tangent function.">tan</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>); 
-<a name="l00094"></a>00094 
-<a name="l00103"></a>00103         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00104"></a>00104         genType <a class="code" href="a00149.html#ga76b6422e62c99fa0849abdf21fcef5cf" title="Arc sine.">asin</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00105"></a>00105 
-<a name="l00114"></a>00114         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00115"></a>00115         genType <a class="code" href="a00149.html#gafef7954b5fa3228f4aaabde8dfa862a1" title="Arc cosine.">acos</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00116"></a>00116 
-<a name="l00127"></a>00127         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00128"></a>00128         genType <a class="code" href="a00149.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(genType <span class="keyword">const</span> &amp; y, genType <span class="keyword">const</span> &amp; x);
-<a name="l00129"></a>00129 
-<a name="l00137"></a>00137         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00138"></a>00138         genType <a class="code" href="a00149.html#ga2394d11075a74869cd88473c76722bc8" title="Arc tangent.">atan</a>(genType <span class="keyword">const</span> &amp; y_over_x);
-<a name="l00139"></a>00139 
-<a name="l00146"></a>00146         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00147"></a>00147         genType <a class="code" href="a00149.html#ga6f38bb1a343b5d73ac71ddd53baa3375" title="Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.">sinh</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00148"></a>00148 
-<a name="l00155"></a>00155         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00156"></a>00156         genType <a class="code" href="a00149.html#gaf1b20113fe439fa48524e8c35ea2c1d0" title="Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.">cosh</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00157"></a>00157 
-<a name="l00164"></a>00164         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00165"></a>00165         genType <a class="code" href="a00149.html#ga5315f571fd52f30d368abc056c4aea13" title="Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)">tanh</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00210.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);
-<a name="l00166"></a>00166 
-<a name="l00173"></a>00173         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00174"></a>00174         genType <a class="code" href="a00149.html#ga615d386dcfb41cdbbca2609c53113aac" title="Arc hyperbolic sine; returns the inverse of sinh.">asinh</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00175"></a>00175         
-<a name="l00183"></a>00183         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00184"></a>00184         genType <a class="code" href="a00149.html#ga0f37ff6b6878a0169cd41249e5377e09" title="Arc hyperbolic cosine; returns the non-negative inverse of cosh.">acosh</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00185"></a>00185 
-<a name="l00193"></a>00193         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
-<a name="l00194"></a>00194         genType <a class="code" href="a00149.html#gadeda850d5dff43d4d069854b1b6a623c" title="Arc hyperbolic tangent; returns the inverse of tanh.">atanh</a>(genType <span class="keyword">const</span> &amp; x);
-<a name="l00195"></a>00195 
-<a name="l00197"></a>00197 }<span class="comment">//namespace glm</span>
-<a name="l00198"></a>00198 
-<a name="l00199"></a>00199 <span class="preprocessor">#include &quot;func_trigonometric.inl&quot;</span>
-<a name="l00200"></a>00200 
-<a name="l00201"></a>00201 <span class="preprocessor">#endif//GLM_CORE_func_trigonometric</span>
-<a name="l00202"></a>00202 <span class="preprocessor"></span>
-<a name="l00203"></a>00203 
-</pre></div></div>
-</div>
+<a name="l00034"></a>00034 <span class="preprocessor">#if((GLM_ARCH &amp; GLM_ARCH_SSE2) != GLM_ARCH_SSE2)</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#       error &quot;SSE2 instructions not supported or enabled&quot;</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>glm{
+<a name="l00039"></a>00039 <span class="keyword">namespace </span>detail
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041 
+<a name="l00042"></a>00042 }<span class="comment">//namespace detail</span>
+<a name="l00043"></a>00043 }<span class="comment">//namespace glm</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;intrinsic_vector_relational.inl&quot;</span>
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="preprocessor">#endif//GLM_ARCH</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif//glm_detail_intrinsic_vector_relational</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 35
doc/api-0.9.3/a00049.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_vector_relational.hpp File Reference</title>
+<title>log_base.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,54 +49,30 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">func_vector_relational.hpp File Reference</div>  </div>
-</div>
+<div class="title">log_base.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00049_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga349edc1a383fff08c6d577428416a73b">all</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga7141e1fafe91560d8c8789901d1c1271">any</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gaeded4966b21a46182176fc6e24e05fdd">equal</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gabd72ae0dc35908eaa143568fb42c3830">greaterThan</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gac9b3c898e70adc1e573300b1a8e66e9f">greaterThanEqual</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga1227d6a9d2c15a57d8189c5d9f4d9c53">lessThan</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga6199b9a55616b7b872b0bf0658b239ce">lessThanEqual</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;template&lt; typename &gt; class vecType&gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">vecType&lt; bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gac44e885cf2f0b0896124d7ce5df6ed4f">not_</a> (vecType&lt; bool &gt; const &amp;v)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">vecType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga20caef2fbce3eacb97e895f2ed315271">notEqual</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00154.html">GLM Core</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2008-08-03 / 2011-06-15 </dd></dl>
+<p><a class="el" href="a00174.html">GLM_GTX_log_base: Log with base</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2008-10-24 / 2011-06-07 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00049_source.html">func_vector_relational.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00049_source.html">log_base.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 30 - 49
doc/api-0.9.3/a00049_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>func_vector_relational.hpp Source File</title>
+<title>log_base.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">func_vector_relational.hpp</div>  </div>
-</div>
+<div class="title">log_base.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00049.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -88,57 +90,36 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040 
-<a name="l00041"></a>00041 <span class="preprocessor">#ifndef GLM_CORE_func_vector_relational</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#define GLM_CORE_func_vector_relational GLM_VERSION</span>
-<a name="l00043"></a>00043 <span class="preprocessor"></span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;<a class="code" href="a00019.html" title="OpenGL Mathematics (glm.g-truc.net)">_detail.hpp</a>&quot;</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="keyword">namespace </span>glm
-<a name="l00047"></a>00047 {
-<a name="l00050"></a>00050 
-<a name="l00057"></a>00057     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
-<a name="l00058"></a>00058         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00150.html#ga1227d6a9d2c15a57d8189c5d9f4d9c53" title="Returns the component-wise comparison result of x &lt; y.">lessThan</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_log_base</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_log_base GLM_VERSION</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_log_base extension included&quot;)</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>glm
+<a name="l00049"></a>00049 {
+<a name="l00052"></a>00052 
+<a name="l00055"></a>00055         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00056"></a>00056         genType <a class="code" href="a00126.html#ga46a307f466090551e328eec42abf61bc" title="Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...">log</a>(
+<a name="l00057"></a>00057                 genType <span class="keyword">const</span> &amp; x, 
+<a name="l00058"></a>00058                 genType <span class="keyword">const</span> &amp; base);
 <a name="l00059"></a>00059 
-<a name="l00066"></a>00066         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
-<a name="l00067"></a>00067         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00150.html#ga6199b9a55616b7b872b0bf0658b239ce" title="Returns the component-wise comparison of result x &lt;= y.">lessThanEqual</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
-<a name="l00068"></a>00068 
-<a name="l00075"></a>00075         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
-<a name="l00076"></a>00076         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00150.html#gabd72ae0dc35908eaa143568fb42c3830" title="Returns the component-wise comparison of result x &gt; y.">greaterThan</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
-<a name="l00077"></a>00077 
-<a name="l00084"></a>00084         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
-<a name="l00085"></a>00085         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00150.html#gac9b3c898e70adc1e573300b1a8e66e9f" title="Returns the component-wise comparison of result x &gt;= y.">greaterThanEqual</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
-<a name="l00086"></a>00086 
-<a name="l00093"></a>00093         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
-<a name="l00094"></a>00094         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00150.html#gaeded4966b21a46182176fc6e24e05fdd" title="Returns the component-wise comparison of result x == y.">equal</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
-<a name="l00095"></a>00095 
-<a name="l00102"></a>00102         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; 
-<a name="l00103"></a>00103         <span class="keyword">typename</span> vecType::bool_type <a class="code" href="a00150.html#ga20caef2fbce3eacb97e895f2ed315271" title="Returns the component-wise comparison of result x != y.">notEqual</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; y);
-<a name="l00104"></a>00104 
-<a name="l00111"></a>00111         <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; 
-<a name="l00112"></a>00112         <span class="keywordtype">bool</span> <a class="code" href="a00150.html#ga7141e1fafe91560d8c8789901d1c1271" title="Returns true if any component of x is true.">any</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00113"></a>00113 
-<a name="l00120"></a>00120         <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; 
-<a name="l00121"></a>00121         <span class="keywordtype">bool</span> <a class="code" href="a00150.html#ga349edc1a383fff08c6d577428416a73b" title="Returns true if all components of x are true.">all</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00122"></a>00122 
-<a name="l00130"></a>00130         <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; 
-<a name="l00131"></a>00131         vecType&lt;bool&gt; <a class="code" href="a00150.html#gac44e885cf2f0b0896124d7ce5df6ed4f" title="Returns the component-wise logical complement of x.">not_</a>(vecType&lt;bool&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00132"></a>00132 
-<a name="l00134"></a>00134 }<span class="comment">//namespace glm</span>
-<a name="l00135"></a>00135 
-<a name="l00136"></a>00136 <span class="preprocessor">#include &quot;func_vector_relational.inl&quot;</span>
-<a name="l00137"></a>00137 
-<a name="l00138"></a>00138 <span class="preprocessor">#endif//GLM_CORE_func_vector_relational</span>
-</pre></div></div>
-</div>
+<a name="l00061"></a>00061 }<span class="comment">//namespace glm</span>
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 <span class="preprocessor">#include &quot;log_base.inl&quot;</span>
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065 <span class="preprocessor">#endif//GLM_GTX_log_base</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 1774 - 127
doc/api-0.9.3/a00050_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>glm.hpp Source File</title>
+<title>man.doxy Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,146 +47,1792 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">glm.hpp</div>  </div>
-</div>
+<div class="title">man.doxy</div>  </div>
+</div><!--header-->
 <div class="contents">
-<a href="a00050.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 
-<a name="l00004"></a>00004 
-<a name="l00005"></a>00005 
-<a name="l00006"></a>00006 
-<a name="l00007"></a>00007 
-<a name="l00008"></a>00008 
-<a name="l00009"></a>00009 
-<a name="l00010"></a>00010 
-<a name="l00011"></a>00011 
-<a name="l00012"></a>00012 
-<a name="l00013"></a>00013 
-<a name="l00014"></a>00014 
-<a name="l00015"></a>00015 
-<a name="l00016"></a>00016 
-<a name="l00017"></a>00017 
-<a name="l00018"></a>00018 
-<a name="l00019"></a>00019 
-<a name="l00020"></a>00020 
-<a name="l00021"></a>00021 
-<a name="l00022"></a>00022 
-<a name="l00023"></a>00023 
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor"># Doxyfile 1.7.6</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span>
+<a name="l00003"></a>00003 <span class="preprocessor"># This file describes the settings to be used by the documentation system</span>
+<a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor"># doxygen (www.doxygen.org) for a project</span>
+<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#</span>
+<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor"># All text after a hash (#) is considered a comment and will be ignored</span>
+<a name="l00007"></a>00007 <span class="preprocessor"></span><span class="preprocessor"># The format is:</span>
+<a name="l00008"></a>00008 <span class="preprocessor"></span><span class="preprocessor">#       TAG = value [value, ...]</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor"># For lists items can also be appended using:</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#       TAG += value [value, ...]</span>
+<a name="l00011"></a>00011 <span class="preprocessor"></span><span class="preprocessor"># Values that contain spaces should be placed between quotes (&quot; &quot;)</span>
+<a name="l00012"></a>00012 <span class="preprocessor"></span>
+<a name="l00013"></a>00013 <span class="preprocessor">#---------------------------------------------------------------------------</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># Project related configuration options</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#---------------------------------------------------------------------------</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor"># This tag specifies the encoding used for all characters in the config file </span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor"># that follow. The default is UTF-8 which is also the encoding used for all </span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor"># text before the first occurrence of this tag. Doxygen uses libiconv (or the </span>
+<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># iconv built into libc) for the transcoding. See </span>
+<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># http://www.gnu.org/software/libiconv for the list of possible encodings.</span>
+<a name="l00022"></a>00022 <span class="preprocessor"></span>
+<a name="l00023"></a>00023 DOXYFILE_ENCODING      = UTF-8
 <a name="l00024"></a>00024 
-<a name="l00025"></a>00025 
-<a name="l00026"></a>00026 
-<a name="l00027"></a>00027 
-<a name="l00028"></a>00028 
-<a name="l00029"></a>00029 
+<a name="l00025"></a>00025 <span class="preprocessor"># The PROJECT_NAME tag is a single word (or sequence of words) that should </span>
+<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor"># identify the project. Note that if you do not use Doxywizard you need </span>
+<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor"># to put quotes around the project name if it contains spaces.</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span>
+<a name="l00029"></a>00029 PROJECT_NAME           = 
 <a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00032"></a>00032 
-<a name="l00033"></a>00033 
-<a name="l00034"></a>00034 
-<a name="l00035"></a>00035 
+<a name="l00031"></a>00031 <span class="preprocessor"># The PROJECT_NUMBER tag can be used to enter a project or revision number. </span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor"># This could be handy for archiving the generated documentation or </span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor"># if some version control system is used.</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00035"></a>00035 PROJECT_NUMBER         = 0.9.3
 <a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040 
-<a name="l00041"></a>00041 
+<a name="l00037"></a>00037 <span class="preprocessor"># Using the PROJECT_BRIEF tag one can provide an optional one line description </span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor"># for a project that appears at the top of each page and should give viewer </span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor"># a quick idea about the purpose of the project. Keep the description short.</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 PROJECT_BRIEF          = 
 <a name="l00042"></a>00042 
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 
-<a name="l00047"></a>00047 
-<a name="l00048"></a>00048 
+<a name="l00043"></a>00043 <span class="preprocessor"># With the PROJECT_LOGO tag one can specify an logo or icon that is </span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor"># included in the documentation. The maximum height of the logo should not </span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor"># exceed 55 pixels and the maximum width should not exceed 200 pixels. </span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor"># Doxygen will copy the logo to the output directory.</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 PROJECT_LOGO           = ./image/logo-mini.png
 <a name="l00049"></a>00049 
-<a name="l00050"></a>00050 
-<a name="l00051"></a>00051 
-<a name="l00052"></a>00052 
-<a name="l00053"></a>00053 
-<a name="l00054"></a>00054 
-<a name="l00055"></a>00055 
+<a name="l00050"></a>00050 <span class="preprocessor"># The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) </span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor"># base path where the generated documentation will be put. </span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor"># If a relative path is entered, it will be relative to the location </span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor"># where doxygen was started. If left blank the current directory will be used.</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span>
+<a name="l00055"></a>00055 OUTPUT_DIRECTORY       = .
 <a name="l00056"></a>00056 
-<a name="l00057"></a>00057 
-<a name="l00058"></a>00058 
-<a name="l00059"></a>00059 
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061 
-<a name="l00062"></a>00062 
-<a name="l00063"></a>00063 
-<a name="l00064"></a>00064 
+<a name="l00057"></a>00057 # If the CREATE_SUBDIRS tag is <span class="keyword">set</span> to YES, then doxygen will create 
+<a name="l00058"></a>00058 <span class="preprocessor"># 4096 sub-directories (in 2 levels) under the output directory of each output </span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor"># format and will distribute the generated files over these directories. </span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor"># Enabling this option can be useful when feeding doxygen a huge amount of </span>
+<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor"># source files, where putting all generated files in the same directory would </span>
+<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor"># otherwise cause performance problems for the file system.</span>
+<a name="l00063"></a>00063 <span class="preprocessor"></span>
+<a name="l00064"></a>00064 CREATE_SUBDIRS         = NO
 <a name="l00065"></a>00065 
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067 
-<a name="l00068"></a>00068 
-<a name="l00069"></a>00069 
-<a name="l00070"></a>00070 
-<a name="l00071"></a>00071 
-<a name="l00072"></a>00072 
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074 
-<a name="l00075"></a>00075 
-<a name="l00076"></a>00076 
-<a name="l00077"></a>00077 
-<a name="l00078"></a>00078 <span class="preprocessor">#include &quot;<a class="code" href="a00020.html" title="OpenGL Mathematics (glm.g-truc.net)">core/_fixes.hpp</a>&quot;</span>
-<a name="l00079"></a>00079 
-<a name="l00080"></a>00080 <span class="preprocessor">#ifndef glm_glm</span>
-<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define glm_glm</span>
-<a name="l00082"></a>00082 <span class="preprocessor"></span>
-<a name="l00083"></a>00083 <span class="preprocessor">#include &lt;cmath&gt;</span>
-<a name="l00084"></a>00084 <span class="preprocessor">#include &lt;climits&gt;</span>
-<a name="l00085"></a>00085 <span class="preprocessor">#include &lt;cfloat&gt;</span>
-<a name="l00086"></a>00086 <span class="preprocessor">#include &lt;limits&gt;</span>
-<a name="l00087"></a>00087 <span class="preprocessor">#include &lt;cstdio&gt;</span>
-<a name="l00088"></a>00088 <span class="comment">//#include &lt;type_traits&gt;</span>
-<a name="l00089"></a>00089 <span class="preprocessor">#include &quot;<a class="code" href="a00098.html" title="OpenGL Mathematics (glm.g-truc.net)">core/setup.hpp</a>&quot;</span>
-<a name="l00090"></a>00090 
-<a name="l00091"></a>00091 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))</span>
-<a name="l00092"></a>00092 <span class="preprocessor"></span><span class="preprocessor">#       define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED</span>
-<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: Core library included&quot;)</span>
-<a name="l00094"></a>00094 <span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span>
-<a name="l00095"></a>00095 <span class="preprocessor"></span>
-<a name="l00096"></a>00096 <span class="preprocessor">#include &quot;<a class="code" href="a00019.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/_detail.hpp</a>&quot;</span>
-<a name="l00097"></a>00097 <span class="preprocessor">#include &quot;<a class="code" href="a00107.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/type.hpp</a>&quot;</span>
-<a name="l00098"></a>00098 
-<a name="l00099"></a>00099 <span class="preprocessor">#include &quot;<a class="code" href="a00048.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_trigonometric.hpp</a>&quot;</span>
-<a name="l00100"></a>00100 <span class="preprocessor">#include &quot;<a class="code" href="a00042.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_exponential.hpp</a>&quot;</span>
-<a name="l00101"></a>00101 <span class="preprocessor">#include &quot;<a class="code" href="a00041.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_common.hpp</a>&quot;</span>
-<a name="l00102"></a>00102 <span class="preprocessor">#include &quot;<a class="code" href="a00047.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_packing.hpp</a>&quot;</span>
-<a name="l00103"></a>00103 <span class="preprocessor">#include &quot;<a class="code" href="a00043.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_geometric.hpp</a>&quot;</span>
-<a name="l00104"></a>00104 <span class="preprocessor">#include &quot;<a class="code" href="a00045.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_matrix.hpp</a>&quot;</span>
-<a name="l00105"></a>00105 <span class="preprocessor">#include &quot;<a class="code" href="a00049.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_vector_relational.hpp</a>&quot;</span>
-<a name="l00106"></a>00106 <span class="preprocessor">#include &quot;<a class="code" href="a00044.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_integer.hpp</a>&quot;</span>
-<a name="l00107"></a>00107 <span class="preprocessor">#include &quot;<a class="code" href="a00046.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/func_noise.hpp</a>&quot;</span>
-<a name="l00108"></a>00108 <span class="preprocessor">#include &quot;<a class="code" href="a00021.html" title="OpenGL Mathematics (glm.g-truc.net)">./core/_swizzle.hpp</a>&quot;</span>
-<a name="l00109"></a>00109 
-<a name="l00111"></a>00111 <span class="comment">// check type sizes</span>
-<a name="l00112"></a>00112 <span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span>
-<a name="l00113"></a>00113 <span class="preprocessor"></span>        GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::int8) == 1, <span class="stringliteral">&quot;int8 size isn&#39;t 1 byte on this platform&quot;</span>);
-<a name="l00114"></a>00114         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::int16) == 2, <span class="stringliteral">&quot;int16 size isn&#39;t 2 bytes on this platform&quot;</span>);
-<a name="l00115"></a>00115         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::int32) == 4, <span class="stringliteral">&quot;int32 size isn&#39;t 4 bytes on this platform&quot;</span>);
-<a name="l00116"></a>00116         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::int64) == 8, <span class="stringliteral">&quot;int64 size isn&#39;t 8 bytes on this platform&quot;</span>);
-<a name="l00117"></a>00117 
-<a name="l00118"></a>00118         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::uint8) == 1, <span class="stringliteral">&quot;uint8 size isn&#39;t 1 byte on this platform&quot;</span>);
-<a name="l00119"></a>00119         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::uint16) == 2, <span class="stringliteral">&quot;uint16 size isn&#39;t 2 bytes on this platform&quot;</span>);
-<a name="l00120"></a>00120         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::uint32) == 4, <span class="stringliteral">&quot;uint32 size isn&#39;t 4 bytes on this platform&quot;</span>);
-<a name="l00121"></a>00121         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::uint64) == 8, <span class="stringliteral">&quot;uint64 size isn&#39;t 8 bytes on this platform&quot;</span>);
-<a name="l00122"></a>00122 
-<a name="l00123"></a>00123         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00005.html" title="16-bit floating point type.">glm::detail::float16</a>) == 2, <span class="stringliteral">&quot;float16 size isn&#39;t 2 bytes on this platform&quot;</span>);
-<a name="l00124"></a>00124         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::float32) == 4, <span class="stringliteral">&quot;float32 size isn&#39;t 4 bytes on this platform&quot;</span>);
-<a name="l00125"></a>00125         GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(glm::detail::float64) == 8, <span class="stringliteral">&quot;float64 size isn&#39;t 8 bytes on this platform&quot;</span>);
-<a name="l00126"></a>00126 <span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span>
-<a name="l00127"></a>00127 <span class="preprocessor"></span>
-<a name="l00128"></a>00128 <span class="preprocessor">#endif//glm_glm</span>
-</pre></div></div>
-</div>
+<a name="l00066"></a>00066 <span class="preprocessor"># The OUTPUT_LANGUAGE tag is used to specify the language in which all </span>
+<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="preprocessor"># documentation generated by doxygen is written. Doxygen will use this </span>
+<a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor"># information to generate all constant output in the proper language. </span>
+<a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor"># The default language is English, other supported languages are: </span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span><span class="preprocessor"># Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, </span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span><span class="preprocessor"># Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, </span>
+<a name="l00072"></a>00072 <span class="preprocessor"></span><span class="preprocessor"># Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English </span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span><span class="preprocessor"># messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, </span>
+<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="preprocessor"># Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, </span>
+<a name="l00075"></a>00075 <span class="preprocessor"></span><span class="preprocessor"># Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span>
+<a name="l00077"></a>00077 OUTPUT_LANGUAGE        = English
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079 <span class="preprocessor"># If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will </span>
+<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor"># include brief member descriptions after the members that are listed in </span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor"># the file and class documentation (similar to JavaDoc). </span>
+<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor"># Set to NO to disable this.</span>
+<a name="l00083"></a>00083 <span class="preprocessor"></span>
+<a name="l00084"></a>00084 BRIEF_MEMBER_DESC      = NO
+<a name="l00085"></a>00085 
+<a name="l00086"></a>00086 <span class="preprocessor"># If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend </span>
+<a name="l00087"></a>00087 <span class="preprocessor"></span><span class="preprocessor"># the brief description of a member or function before the detailed description. </span>
+<a name="l00088"></a>00088 <span class="preprocessor"></span><span class="preprocessor"># Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the </span>
+<a name="l00089"></a>00089 <span class="preprocessor"></span><span class="preprocessor"># brief descriptions will be completely suppressed.</span>
+<a name="l00090"></a>00090 <span class="preprocessor"></span>
+<a name="l00091"></a>00091 REPEAT_BRIEF           = YES
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093 <span class="preprocessor"># This tag implements a quasi-intelligent brief description abbreviator </span>
+<a name="l00094"></a>00094 <span class="preprocessor"></span><span class="preprocessor"># that is used to form the text in various listings. Each string </span>
+<a name="l00095"></a>00095 <span class="preprocessor"></span><span class="preprocessor"># in this list, if found as the leading text of the brief description, will be </span>
+<a name="l00096"></a>00096 <span class="preprocessor"></span><span class="preprocessor"># stripped from the text and the result after processing the whole list, is </span>
+<a name="l00097"></a>00097 <span class="preprocessor"></span><span class="preprocessor"># used as the annotated text. Otherwise, the brief description is used as-is. </span>
+<a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor"># If left blank, the following values are used (&quot;$name&quot; is automatically </span>
+<a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor"># replaced with the name of the entity): &quot;The $name class&quot; &quot;The $name widget&quot; </span>
+<a name="l00100"></a>00100 <span class="preprocessor"></span><span class="preprocessor"># &quot;The $name file&quot; &quot;is&quot; &quot;provides&quot; &quot;specifies&quot; &quot;contains&quot; </span>
+<a name="l00101"></a>00101 <span class="preprocessor"></span><span class="preprocessor"># &quot;represents&quot; &quot;a&quot; &quot;an&quot; &quot;the&quot;</span>
+<a name="l00102"></a>00102 <span class="preprocessor"></span>
+<a name="l00103"></a>00103 ABBREVIATE_BRIEF       = <span class="stringliteral">&quot;The $name class       &quot;</span> \
+<a name="l00104"></a>00104                          <span class="stringliteral">&quot;The $name widget       &quot;</span> \
+<a name="l00105"></a>00105                          <span class="stringliteral">&quot;The $name file       &quot;</span> \
+<a name="l00106"></a>00106                          is \
+<a name="l00107"></a>00107                          provides \
+<a name="l00108"></a>00108                          specifies \
+<a name="l00109"></a>00109                          contains \
+<a name="l00110"></a>00110                          represents \
+<a name="l00111"></a>00111                          a \
+<a name="l00112"></a>00112                          an \
+<a name="l00113"></a>00113                          the
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115 <span class="preprocessor"># If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then </span>
+<a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor"># Doxygen will generate a detailed section even if there is only a brief </span>
+<a name="l00117"></a>00117 <span class="preprocessor"></span><span class="preprocessor"># description.</span>
+<a name="l00118"></a>00118 <span class="preprocessor"></span>
+<a name="l00119"></a>00119 ALWAYS_DETAILED_SEC    = NO
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121 <span class="preprocessor"># If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all </span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor"># inherited members of a class in the documentation of that class as if those </span>
+<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor"># members were ordinary class members. Constructors, destructors and assignment </span>
+<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor"># operators of the base classes will not be shown.</span>
+<a name="l00125"></a>00125 <span class="preprocessor"></span>
+<a name="l00126"></a>00126 INLINE_INHERITED_MEMB  = NO
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128 <span class="preprocessor"># If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full </span>
+<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor"># path before files name in the file list and in the header files. If set </span>
+<a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor"># to NO the shortest path that makes the file name unique will be used.</span>
+<a name="l00131"></a>00131 <span class="preprocessor"></span>
+<a name="l00132"></a>00132 FULL_PATH_NAMES        = NO
+<a name="l00133"></a>00133 
+<a name="l00134"></a>00134 <span class="preprocessor"># If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag </span>
+<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor"># can be used to strip a user-defined part of the path. Stripping is </span>
+<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor"># only done if one of the specified strings matches the left-hand part of </span>
+<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor"># the path. The tag can be used to show relative paths in the file list. </span>
+<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor"># If left blank the directory from which doxygen is run is used as the </span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor"># path to strip.</span>
+<a name="l00140"></a>00140 <span class="preprocessor"></span>
+<a name="l00141"></a>00141 STRIP_FROM_PATH        = <span class="stringliteral">&quot;C:/Documents and Settings/Groove/       &quot;</span>
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143 <span class="preprocessor"># The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of </span>
+<a name="l00144"></a>00144 <span class="preprocessor"></span><span class="preprocessor"># the path mentioned in the documentation of a class, which tells </span>
+<a name="l00145"></a>00145 <span class="preprocessor"></span><span class="preprocessor"># the reader which header file to include in order to use a class. </span>
+<a name="l00146"></a>00146 <span class="preprocessor"></span><span class="preprocessor"># If left blank only the name of the header file containing the class </span>
+<a name="l00147"></a>00147 <span class="preprocessor"></span><span class="preprocessor"># definition is used. Otherwise one should specify the include paths that </span>
+<a name="l00148"></a>00148 <span class="preprocessor"></span><span class="preprocessor"># are normally passed to the compiler using the -I flag.</span>
+<a name="l00149"></a>00149 <span class="preprocessor"></span>
+<a name="l00150"></a>00150 STRIP_FROM_INC_PATH    = 
+<a name="l00151"></a>00151 
+<a name="l00152"></a>00152 <span class="preprocessor"># If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter </span>
+<a name="l00153"></a>00153 <span class="preprocessor"></span><span class="preprocessor"># (but less readable) file names. This can be useful if your file system </span>
+<a name="l00154"></a>00154 <span class="preprocessor"></span><span class="preprocessor"># doesn&#39;t support long names like on DOS, Mac, or CD-ROM.</span>
+<a name="l00155"></a>00155 <span class="preprocessor"></span>
+<a name="l00156"></a>00156 SHORT_NAMES            = YES
+<a name="l00157"></a>00157 
+<a name="l00158"></a>00158 <span class="preprocessor"># If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen </span>
+<a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor"># will interpret the first line (until the first dot) of a JavaDoc-style </span>
+<a name="l00160"></a>00160 <span class="preprocessor"></span><span class="preprocessor"># comment as the brief description. If set to NO, the JavaDoc </span>
+<a name="l00161"></a>00161 <span class="preprocessor"></span><span class="preprocessor"># comments will behave just like regular Qt-style comments </span>
+<a name="l00162"></a>00162 <span class="preprocessor"></span><span class="preprocessor"># (thus requiring an explicit @brief command for a brief description.)</span>
+<a name="l00163"></a>00163 <span class="preprocessor"></span>
+<a name="l00164"></a>00164 JAVADOC_AUTOBRIEF      = YES
+<a name="l00165"></a>00165 
+<a name="l00166"></a>00166 <span class="preprocessor"># If the QT_AUTOBRIEF tag is set to YES then Doxygen will </span>
+<a name="l00167"></a>00167 <span class="preprocessor"></span><span class="preprocessor"># interpret the first line (until the first dot) of a Qt-style </span>
+<a name="l00168"></a>00168 <span class="preprocessor"></span><span class="preprocessor"># comment as the brief description. If set to NO, the comments </span>
+<a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor"># will behave just like regular Qt-style comments (thus requiring </span>
+<a name="l00170"></a>00170 <span class="preprocessor"></span><span class="preprocessor"># an explicit \brief command for a brief description.)</span>
+<a name="l00171"></a>00171 <span class="preprocessor"></span>
+<a name="l00172"></a>00172 QT_AUTOBRIEF           = NO
+<a name="l00173"></a>00173 
+<a name="l00174"></a>00174 <span class="preprocessor"># The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen </span>
+<a name="l00175"></a>00175 <span class="preprocessor"></span><span class="preprocessor"># treat a multi-line C++ special comment block (i.e. a block of //! or /// </span>
+<a name="l00176"></a>00176 <span class="preprocessor"></span><span class="preprocessor"># comments) as a brief description. This used to be the default behaviour. </span>
+<a name="l00177"></a>00177 <span class="preprocessor"></span><span class="preprocessor"># The new default is to treat a multi-line C++ comment block as a detailed </span>
+<a name="l00178"></a>00178 <span class="preprocessor"></span><span class="preprocessor"># description. Set this tag to YES if you prefer the old behaviour instead.</span>
+<a name="l00179"></a>00179 <span class="preprocessor"></span>
+<a name="l00180"></a>00180 MULTILINE_CPP_IS_BRIEF = NO
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182 <span class="preprocessor"># If the INHERIT_DOCS tag is set to YES (the default) then an undocumented </span>
+<a name="l00183"></a>00183 <span class="preprocessor"></span><span class="preprocessor"># member inherits the documentation from any documented member that it </span>
+<a name="l00184"></a>00184 <span class="preprocessor"></span><span class="preprocessor"># re-implements.</span>
+<a name="l00185"></a>00185 <span class="preprocessor"></span>
+<a name="l00186"></a>00186 INHERIT_DOCS           = YES
+<a name="l00187"></a>00187 
+<a name="l00188"></a>00188 <span class="preprocessor"># If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce </span>
+<a name="l00189"></a>00189 <span class="preprocessor"></span><span class="preprocessor"># a new page for each member. If set to NO, the documentation of a member will </span>
+<a name="l00190"></a>00190 <span class="preprocessor"></span><span class="preprocessor"># be part of the file/class/namespace that contains it.</span>
+<a name="l00191"></a>00191 <span class="preprocessor"></span>
+<a name="l00192"></a>00192 SEPARATE_MEMBER_PAGES  = NO
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194 <span class="preprocessor"># The TAB_SIZE tag can be used to set the number of spaces in a tab. </span>
+<a name="l00195"></a>00195 <span class="preprocessor"></span><span class="preprocessor"># Doxygen uses this value to replace tabs by spaces in code fragments.</span>
+<a name="l00196"></a>00196 <span class="preprocessor"></span>
+<a name="l00197"></a>00197 TAB_SIZE               = 8
+<a name="l00198"></a>00198 
+<a name="l00199"></a>00199 <span class="preprocessor"># This tag can be used to specify a number of aliases that acts </span>
+<a name="l00200"></a>00200 <span class="preprocessor"></span><span class="preprocessor"># as commands in the documentation. An alias has the form &quot;name=value&quot;. </span>
+<a name="l00201"></a>00201 <span class="preprocessor"></span><span class="preprocessor"># For example adding &quot;sideeffect=\par Side Effects:\n&quot; will allow you to </span>
+<a name="l00202"></a>00202 <span class="preprocessor"></span><span class="preprocessor"># put the command \sideeffect (or @sideeffect) in the documentation, which </span>
+<a name="l00203"></a>00203 <span class="preprocessor"></span><span class="preprocessor"># will result in a user-defined paragraph with heading &quot;Side Effects:&quot;. </span>
+<a name="l00204"></a>00204 <span class="preprocessor"></span><span class="preprocessor"># You can put \n&#39;s in the value part of an alias to insert newlines.</span>
+<a name="l00205"></a>00205 <span class="preprocessor"></span>
+<a name="l00206"></a>00206 ALIASES                = 
+<a name="l00207"></a>00207 
+<a name="l00208"></a>00208 <span class="preprocessor"># This tag can be used to specify a number of word-keyword mappings (TCL only). </span>
+<a name="l00209"></a>00209 <span class="preprocessor"></span><span class="preprocessor"># A mapping has the form &quot;name=value&quot;. For example adding </span>
+<a name="l00210"></a>00210 <span class="preprocessor"></span><span class="preprocessor"># &quot;class=itcl::class&quot; will allow you to use the command class in the </span>
+<a name="l00211"></a>00211 <span class="preprocessor"></span><span class="preprocessor"># itcl::class meaning.</span>
+<a name="l00212"></a>00212 <span class="preprocessor"></span>
+<a name="l00213"></a>00213 TCL_SUBST              = 
+<a name="l00214"></a>00214 
+<a name="l00215"></a>00215 <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C </span>
+<a name="l00216"></a>00216 <span class="preprocessor"></span><span class="preprocessor"># sources only. Doxygen will then generate output that is more tailored for C. </span>
+<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor"># For instance, some of the names that are used will be different. The list </span>
+<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor"># of all members will be omitted, etc.</span>
+<a name="l00219"></a>00219 <span class="preprocessor"></span>
+<a name="l00220"></a>00220 OPTIMIZE_OUTPUT_FOR_C  = NO
+<a name="l00221"></a>00221 
+<a name="l00222"></a>00222 <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java </span>
+<a name="l00223"></a>00223 <span class="preprocessor"></span><span class="preprocessor"># sources only. Doxygen will then generate output that is more tailored for </span>
+<a name="l00224"></a>00224 <span class="preprocessor"></span><span class="preprocessor"># Java. For instance, namespaces will be presented as packages, qualified </span>
+<a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor"># scopes will look different, etc.</span>
+<a name="l00226"></a>00226 <span class="preprocessor"></span>
+<a name="l00227"></a>00227 OPTIMIZE_OUTPUT_JAVA   = NO
+<a name="l00228"></a>00228 
+<a name="l00229"></a>00229 <span class="preprocessor"># Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran </span>
+<a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor"># sources only. Doxygen will then generate output that is more tailored for </span>
+<a name="l00231"></a>00231 <span class="preprocessor"></span><span class="preprocessor"># Fortran.</span>
+<a name="l00232"></a>00232 <span class="preprocessor"></span>
+<a name="l00233"></a>00233 OPTIMIZE_FOR_FORTRAN   = NO
+<a name="l00234"></a>00234 
+<a name="l00235"></a>00235 <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL </span>
+<a name="l00236"></a>00236 <span class="preprocessor"></span><span class="preprocessor"># sources. Doxygen will then generate output that is tailored for </span>
+<a name="l00237"></a>00237 <span class="preprocessor"></span><span class="preprocessor"># VHDL.</span>
+<a name="l00238"></a>00238 <span class="preprocessor"></span>
+<a name="l00239"></a>00239 OPTIMIZE_OUTPUT_VHDL   = NO
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241 <span class="preprocessor"># Doxygen selects the parser to use depending on the extension of the files it </span>
+<a name="l00242"></a>00242 <span class="preprocessor"></span><span class="preprocessor"># parses. With this tag you can assign which parser to use for a given extension. </span>
+<a name="l00243"></a>00243 <span class="preprocessor"></span><span class="preprocessor"># Doxygen has a built-in mapping, but you can override or extend it using this </span>
+<a name="l00244"></a>00244 <span class="preprocessor"></span><span class="preprocessor"># tag. The format is ext=language, where ext is a file extension, and language </span>
+<a name="l00245"></a>00245 <span class="preprocessor"></span><span class="preprocessor"># is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, </span>
+<a name="l00246"></a>00246 <span class="preprocessor"></span><span class="preprocessor"># C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make </span>
+<a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor"># doxygen treat .inc files as Fortran files (default is PHP), and .f files as C </span>
+<a name="l00248"></a>00248 <span class="preprocessor"></span><span class="preprocessor"># (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions </span>
+<a name="l00249"></a>00249 <span class="preprocessor"></span><span class="preprocessor"># you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.</span>
+<a name="l00250"></a>00250 <span class="preprocessor"></span>
+<a name="l00251"></a>00251 EXTENSION_MAPPING      = 
+<a name="l00252"></a>00252 
+<a name="l00253"></a>00253 <span class="preprocessor"># If you use STL classes (i.e. std::string, std::vector, etc.) but do not want </span>
+<a name="l00254"></a>00254 <span class="preprocessor"></span><span class="preprocessor"># to include (a tag file for) the STL sources as input, then you should </span>
+<a name="l00255"></a>00255 <span class="preprocessor"></span><span class="preprocessor"># set this tag to YES in order to let doxygen match functions declarations and </span>
+<a name="l00256"></a>00256 <span class="preprocessor"></span><span class="preprocessor"># definitions whose arguments contain STL classes (e.g. func(std::string); v.s. </span>
+<a name="l00257"></a>00257 <span class="preprocessor"></span><span class="preprocessor"># func(std::string) {}). This also makes the inheritance and collaboration </span>
+<a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor"># diagrams that involve STL classes more complete and accurate.</span>
+<a name="l00259"></a>00259 <span class="preprocessor"></span>
+<a name="l00260"></a>00260 BUILTIN_STL_SUPPORT    = NO
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262 <span class="preprocessor"># If you use Microsoft&#39;s C++/CLI language, you should set this option to YES to </span>
+<a name="l00263"></a>00263 <span class="preprocessor"></span><span class="preprocessor"># enable parsing support.</span>
+<a name="l00264"></a>00264 <span class="preprocessor"></span>
+<a name="l00265"></a>00265 CPP_CLI_SUPPORT        = NO
+<a name="l00266"></a>00266 
+<a name="l00267"></a>00267 <span class="preprocessor"># Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. </span>
+<a name="l00268"></a>00268 <span class="preprocessor"></span><span class="preprocessor"># Doxygen will parse them like normal C++ but will assume all classes use public </span>
+<a name="l00269"></a>00269 <span class="preprocessor"></span><span class="preprocessor"># instead of private inheritance when no explicit protection keyword is present.</span>
+<a name="l00270"></a>00270 <span class="preprocessor"></span>
+<a name="l00271"></a>00271 SIP_SUPPORT            = NO
+<a name="l00272"></a>00272 
+<a name="l00273"></a>00273 <span class="preprocessor"># For Microsoft&#39;s IDL there are propget and propput attributes to indicate getter </span>
+<a name="l00274"></a>00274 <span class="preprocessor"></span><span class="preprocessor"># and setter methods for a property. Setting this option to YES (the default) </span>
+<a name="l00275"></a>00275 <span class="preprocessor"></span><span class="preprocessor"># will make doxygen replace the get and set methods by a property in the </span>
+<a name="l00276"></a>00276 <span class="preprocessor"></span><span class="preprocessor"># documentation. This will only work if the methods are indeed getting or </span>
+<a name="l00277"></a>00277 <span class="preprocessor"></span><span class="preprocessor"># setting a simple type. If this is not the case, or you want to show the </span>
+<a name="l00278"></a>00278 <span class="preprocessor"></span><span class="preprocessor"># methods anyway, you should set this option to NO.</span>
+<a name="l00279"></a>00279 <span class="preprocessor"></span>
+<a name="l00280"></a>00280 IDL_PROPERTY_SUPPORT   = YES
+<a name="l00281"></a>00281 
+<a name="l00282"></a>00282 <span class="preprocessor"># If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC </span>
+<a name="l00283"></a>00283 <span class="preprocessor"></span><span class="preprocessor"># tag is set to YES, then doxygen will reuse the documentation of the first </span>
+<a name="l00284"></a>00284 <span class="preprocessor"></span><span class="preprocessor"># member in the group (if any) for the other members of the group. By default </span>
+<a name="l00285"></a>00285 <span class="preprocessor"></span><span class="preprocessor"># all members of a group must be documented explicitly.</span>
+<a name="l00286"></a>00286 <span class="preprocessor"></span>
+<a name="l00287"></a>00287 DISTRIBUTE_GROUP_DOC   = NO
+<a name="l00288"></a>00288 
+<a name="l00289"></a>00289 <span class="preprocessor"># Set the SUBGROUPING tag to YES (the default) to allow class member groups of </span>
+<a name="l00290"></a>00290 <span class="preprocessor"></span><span class="preprocessor"># the same type (for instance a group of public functions) to be put as a </span>
+<a name="l00291"></a>00291 <span class="preprocessor"></span><span class="preprocessor"># subgroup of that type (e.g. under the Public Functions section). Set it to </span>
+<a name="l00292"></a>00292 <span class="preprocessor"></span><span class="preprocessor"># NO to prevent subgrouping. Alternatively, this can be done per class using </span>
+<a name="l00293"></a>00293 <span class="preprocessor"></span><span class="preprocessor"># the \nosubgrouping command.</span>
+<a name="l00294"></a>00294 <span class="preprocessor"></span>
+<a name="l00295"></a>00295 SUBGROUPING            = NO
+<a name="l00296"></a>00296 
+<a name="l00297"></a>00297 <span class="preprocessor"># When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and </span>
+<a name="l00298"></a>00298 <span class="preprocessor"></span><span class="preprocessor"># unions are shown inside the group in which they are included (e.g. using </span>
+<a name="l00299"></a>00299 <span class="preprocessor"></span><span class="preprocessor"># @ingroup) instead of on a separate page (for HTML and Man pages) or </span>
+<a name="l00300"></a>00300 <span class="preprocessor"></span><span class="preprocessor"># section (for LaTeX and RTF).</span>
+<a name="l00301"></a>00301 <span class="preprocessor"></span>
+<a name="l00302"></a>00302 INLINE_GROUPED_CLASSES = NO
+<a name="l00303"></a>00303 
+<a name="l00304"></a>00304 <span class="preprocessor"># When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and </span>
+<a name="l00305"></a>00305 <span class="preprocessor"></span><span class="preprocessor"># unions with only public data fields will be shown inline in the documentation </span>
+<a name="l00306"></a>00306 <span class="preprocessor"></span><span class="preprocessor"># of the scope in which they are defined (i.e. file, namespace, or group </span>
+<a name="l00307"></a>00307 <span class="preprocessor"></span><span class="preprocessor"># documentation), provided this scope is documented. If set to NO (the default), </span>
+<a name="l00308"></a>00308 <span class="preprocessor"></span><span class="preprocessor"># structs, classes, and unions are shown on a separate page (for HTML and Man </span>
+<a name="l00309"></a>00309 <span class="preprocessor"></span><span class="preprocessor"># pages) or section (for LaTeX and RTF).</span>
+<a name="l00310"></a>00310 <span class="preprocessor"></span>
+<a name="l00311"></a>00311 INLINE_SIMPLE_STRUCTS  = NO
+<a name="l00312"></a>00312 
+<a name="l00313"></a>00313 <span class="preprocessor"># When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum </span>
+<a name="l00314"></a>00314 <span class="preprocessor"></span><span class="preprocessor"># is documented as struct, union, or enum with the name of the typedef. So </span>
+<a name="l00315"></a>00315 <span class="preprocessor"></span><span class="preprocessor"># typedef struct TypeS {} TypeT, will appear in the documentation as a struct </span>
+<a name="l00316"></a>00316 <span class="preprocessor"></span><span class="preprocessor"># with name TypeT. When disabled the typedef will appear as a member of a file, </span>
+<a name="l00317"></a>00317 <span class="preprocessor"></span><span class="preprocessor"># namespace, or class. And the struct will be named TypeS. This can typically </span>
+<a name="l00318"></a>00318 <span class="preprocessor"></span><span class="preprocessor"># be useful for C code in case the coding convention dictates that all compound </span>
+<a name="l00319"></a>00319 <span class="preprocessor"></span><span class="preprocessor"># types are typedef&#39;ed and only the typedef is referenced, never the tag name.</span>
+<a name="l00320"></a>00320 <span class="preprocessor"></span>
+<a name="l00321"></a>00321 TYPEDEF_HIDES_STRUCT   = NO
+<a name="l00322"></a>00322 
+<a name="l00323"></a>00323 <span class="preprocessor"># The SYMBOL_CACHE_SIZE determines the size of the internal cache use to </span>
+<a name="l00324"></a>00324 <span class="preprocessor"></span><span class="preprocessor"># determine which symbols to keep in memory and which to flush to disk. </span>
+<a name="l00325"></a>00325 <span class="preprocessor"></span><span class="preprocessor"># When the cache is full, less often used symbols will be written to disk. </span>
+<a name="l00326"></a>00326 <span class="preprocessor"></span><span class="preprocessor"># For small to medium size projects (&lt;1000 input files) the default value is </span>
+<a name="l00327"></a>00327 <span class="preprocessor"></span><span class="preprocessor"># probably good enough. For larger projects a too small cache size can cause </span>
+<a name="l00328"></a>00328 <span class="preprocessor"></span><span class="preprocessor"># doxygen to be busy swapping symbols to and from disk most of the time </span>
+<a name="l00329"></a>00329 <span class="preprocessor"></span><span class="preprocessor"># causing a significant performance penalty. </span>
+<a name="l00330"></a>00330 <span class="preprocessor"></span><span class="preprocessor"># If the system has enough physical memory increasing the cache will improve the </span>
+<a name="l00331"></a>00331 <span class="preprocessor"></span><span class="preprocessor"># performance by keeping more symbols in memory. Note that the value works on </span>
+<a name="l00332"></a>00332 <span class="preprocessor"></span><span class="preprocessor"># a logarithmic scale so increasing the size by one will roughly double the </span>
+<a name="l00333"></a>00333 <span class="preprocessor"></span><span class="preprocessor"># memory usage. The cache size is given by this formula: </span>
+<a name="l00334"></a>00334 <span class="preprocessor"></span><span class="preprocessor"># 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, </span>
+<a name="l00335"></a>00335 <span class="preprocessor"></span><span class="preprocessor"># corresponding to a cache size of 2^16 = 65536 symbols</span>
+<a name="l00336"></a>00336 <span class="preprocessor"></span>
+<a name="l00337"></a>00337 SYMBOL_CACHE_SIZE      = 0
+<a name="l00338"></a>00338 
+<a name="l00339"></a>00339 <span class="preprocessor">#---------------------------------------------------------------------------</span>
+<a name="l00340"></a>00340 <span class="preprocessor"></span><span class="preprocessor"># Build related configuration options</span>
+<a name="l00341"></a>00341 <span class="preprocessor"></span><span class="preprocessor">#---------------------------------------------------------------------------</span>
+<a name="l00342"></a>00342 <span class="preprocessor"></span>
+<a name="l00343"></a>00343 <span class="preprocessor"># If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in </span>
+<a name="l00344"></a>00344 <span class="preprocessor"></span><span class="preprocessor"># documentation are documented, even if no documentation was available. </span>
+<a name="l00345"></a>00345 <span class="preprocessor"></span><span class="preprocessor"># Private class members and static file members will be hidden unless </span>
+<a name="l00346"></a>00346 <span class="preprocessor"></span><span class="preprocessor"># the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES</span>
+<a name="l00347"></a>00347 <span class="preprocessor"></span>
+<a name="l00348"></a>00348 EXTRACT_ALL            = NO
+<a name="l00349"></a>00349 
+<a name="l00350"></a>00350 <span class="preprocessor"># If the EXTRACT_PRIVATE tag is set to YES all private members of a class </span>
+<a name="l00351"></a>00351 <span class="preprocessor"></span><span class="preprocessor"># will be included in the documentation.</span>
+<a name="l00352"></a>00352 <span class="preprocessor"></span>
+<a name="l00353"></a>00353 EXTRACT_PRIVATE        = NO
+<a name="l00354"></a>00354 
+<a name="l00355"></a>00355 <span class="preprocessor"># If the EXTRACT_STATIC tag is set to YES all static members of a file </span>
+<a name="l00356"></a>00356 <span class="preprocessor"></span><span class="preprocessor"># will be included in the documentation.</span>
+<a name="l00357"></a>00357 <span class="preprocessor"></span>
+<a name="l00358"></a>00358 EXTRACT_STATIC         = YES
+<a name="l00359"></a>00359 
+<a name="l00360"></a>00360 <span class="preprocessor"># If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) </span>
+<a name="l00361"></a>00361 <span class="preprocessor"></span><span class="preprocessor"># defined locally in source files will be included in the documentation. </span>
+<a name="l00362"></a>00362 <span class="preprocessor"></span><span class="preprocessor"># If set to NO only classes defined in header files are included.</span>
+<a name="l00363"></a>00363 <span class="preprocessor"></span>
+<a name="l00364"></a>00364 EXTRACT_LOCAL_CLASSES  = NO
+<a name="l00365"></a>00365 
+<a name="l00366"></a>00366 <span class="preprocessor"># This flag is only useful for Objective-C code. When set to YES local </span>
+<a name="l00367"></a>00367 <span class="preprocessor"></span><span class="preprocessor"># methods, which are defined in the implementation section but not in </span>
+<a name="l00368"></a>00368 <span class="preprocessor"></span><span class="preprocessor"># the interface are included in the documentation. </span>
+<a name="l00369"></a>00369 <span class="preprocessor"></span><span class="preprocessor"># If set to NO (the default) only methods in the interface are included.</span>
+<a name="l00370"></a>00370 <span class="preprocessor"></span>
+<a name="l00371"></a>00371 EXTRACT_LOCAL_METHODS  = NO
+<a name="l00372"></a>00372 
+<a name="l00373"></a>00373 <span class="preprocessor"># If this flag is set to YES, the members of anonymous namespaces will be </span>
+<a name="l00374"></a>00374 <span class="preprocessor"></span><span class="preprocessor"># extracted and appear in the documentation as a namespace called </span>
+<a name="l00375"></a>00375 <span class="preprocessor"></span><span class="preprocessor"># &#39;anonymous_namespace{file}&#39;, where file will be replaced with the base </span>
+<a name="l00376"></a>00376 <span class="preprocessor"></span><span class="preprocessor"># name of the file that contains the anonymous namespace. By default </span>
+<a name="l00377"></a>00377 <span class="preprocessor"></span><span class="preprocessor"># anonymous namespaces are hidden.</span>
+<a name="l00378"></a>00378 <span class="preprocessor"></span>
+<a name="l00379"></a>00379 EXTRACT_ANON_NSPACES   = NO
+<a name="l00380"></a>00380 
+<a name="l00381"></a>00381 <span class="preprocessor"># If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all </span>
+<a name="l00382"></a>00382 <span class="preprocessor"></span><span class="preprocessor"># undocumented members of documented classes, files or namespaces. </span>
+<a name="l00383"></a>00383 <span class="preprocessor"></span><span class="preprocessor"># If set to NO (the default) these members will be included in the </span>
+<a name="l00384"></a>00384 <span class="preprocessor"></span><span class="preprocessor"># various overviews, but no documentation section is generated. </span>
+<a name="l00385"></a>00385 <span class="preprocessor"></span><span class="preprocessor"># This option has no effect if EXTRACT_ALL is enabled.</span>
+<a name="l00386"></a>00386 <span class="preprocessor"></span>
+<a name="l00387"></a>00387 HIDE_UNDOC_MEMBERS     = YES
+<a name="l00388"></a>00388 
+<a name="l00389"></a>00389 <span class="preprocessor"># If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all </span>
+<a name="l00390"></a>00390 <span class="preprocessor"></span><span class="preprocessor"># undocumented classes that are normally visible in the class hierarchy. </span>
+<a name="l00391"></a>00391 <span class="preprocessor"></span><span class="preprocessor"># If set to NO (the default) these classes will be included in the various </span>
+<a name="l00392"></a>00392 <span class="preprocessor"></span><span class="preprocessor"># overviews. This option has no effect if EXTRACT_ALL is enabled.</span>
+<a name="l00393"></a>00393 <span class="preprocessor"></span>
+<a name="l00394"></a>00394 HIDE_UNDOC_CLASSES     = YES
+<a name="l00395"></a>00395 
+<a name="l00396"></a>00396 <span class="preprocessor"># If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all </span>
+<a name="l00397"></a>00397 <span class="preprocessor"></span><span class="preprocessor"># friend (class|struct|union) declarations. </span>
+<a name="l00398"></a>00398 <span class="preprocessor"></span><span class="preprocessor"># If set to NO (the default) these declarations will be included in the </span>
+<a name="l00399"></a>00399 <span class="preprocessor"></span><span class="preprocessor"># documentation.</span>
+<a name="l00400"></a>00400 <span class="preprocessor"></span>
+<a name="l00401"></a>00401 HIDE_FRIEND_COMPOUNDS  = YES
+<a name="l00402"></a>00402 
+<a name="l00403"></a>00403 <span class="preprocessor"># If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any </span>
+<a name="l00404"></a>00404 <span class="preprocessor"></span><span class="preprocessor"># documentation blocks found inside the body of a function. </span>
+<a name="l00405"></a>00405 <span class="preprocessor"></span><span class="preprocessor"># If set to NO (the default) these blocks will be appended to the </span>
+<a name="l00406"></a>00406 <span class="preprocessor"></span><span class="preprocessor"># function&#39;s detailed documentation block.</span>
+<a name="l00407"></a>00407 <span class="preprocessor"></span>
+<a name="l00408"></a>00408 HIDE_IN_BODY_DOCS      = YES
+<a name="l00409"></a>00409 
+<a name="l00410"></a>00410 <span class="preprocessor"># The INTERNAL_DOCS tag determines if documentation </span>
+<a name="l00411"></a>00411 <span class="preprocessor"></span><span class="preprocessor"># that is typed after a \internal command is included. If the tag is set </span>
+<a name="l00412"></a>00412 <span class="preprocessor"></span><span class="preprocessor"># to NO (the default) then the documentation will be excluded. </span>
+<a name="l00413"></a>00413 <span class="preprocessor"></span><span class="preprocessor"># Set it to YES to include the internal documentation.</span>
+<a name="l00414"></a>00414 <span class="preprocessor"></span>
+<a name="l00415"></a>00415 INTERNAL_DOCS          = NO
+<a name="l00416"></a>00416 
+<a name="l00417"></a>00417 <span class="preprocessor"># If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate </span>
+<a name="l00418"></a>00418 <span class="preprocessor"></span><span class="preprocessor"># file names in lower-case letters. If set to YES upper-case letters are also </span>
+<a name="l00419"></a>00419 <span class="preprocessor"></span><span class="preprocessor"># allowed. This is useful if you have classes or files whose names only differ </span>
+<a name="l00420"></a>00420 <span class="preprocessor"></span><span class="preprocessor"># in case and if your file system supports case sensitive file names. Windows </span>
+<a name="l00421"></a>00421 <span class="preprocessor"></span><span class="preprocessor"># and Mac users are advised to set this option to NO.</span>
+<a name="l00422"></a>00422 <span class="preprocessor"></span>
+<a name="l00423"></a>00423 CASE_SENSE_NAMES       = YES
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425 <span class="preprocessor"># If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen </span>
+<a name="l00426"></a>00426 <span class="preprocessor"></span><span class="preprocessor"># will show members with their full class and namespace scopes in the </span>
+<a name="l00427"></a>00427 <span class="preprocessor"></span><span class="preprocessor"># documentation. If set to YES the scope will be hidden.</span>
+<a name="l00428"></a>00428 <span class="preprocessor"></span>
+<a name="l00429"></a>00429 HIDE_SCOPE_NAMES       = YES
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431 <span class="preprocessor"># If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen </span>
+<a name="l00432"></a>00432 <span class="preprocessor"></span><span class="preprocessor"># will put a list of the files that are included by a file in the documentation </span>
+<a name="l00433"></a>00433 <span class="preprocessor"></span><span class="preprocessor"># of that file.</span>
+<a name="l00434"></a>00434 <span class="preprocessor"></span>
+<a name="l00435"></a>00435 SHOW_INCLUDE_FILES     = NO
+<a name="l00436"></a>00436 
+<a name="l00437"></a>00437 <span class="preprocessor"># If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen </span>
+<a name="l00438"></a>00438 <span class="preprocessor"></span><span class="preprocessor"># will list include files with double quotes in the documentation </span>
+<a name="l00439"></a>00439 <span class="preprocessor"></span><span class="preprocessor"># rather than with sharp brackets.</span>
+<a name="l00440"></a>00440 <span class="preprocessor"></span>
+<a name="l00441"></a>00441 FORCE_LOCAL_INCLUDES   = NO
+<a name="l00442"></a>00442 
+<a name="l00443"></a>00443 <span class="preprocessor"># If the INLINE_INFO tag is set to YES (the default) then a tag [inline] </span>
+<a name="l00444"></a>00444 <span class="preprocessor"></span><span class="preprocessor"># is inserted in the documentation for inline members.</span>
+<a name="l00445"></a>00445 <span class="preprocessor"></span>
+<a name="l00446"></a>00446 INLINE_INFO            = NO
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448 <span class="preprocessor"># If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen </span>
+<a name="l00449"></a>00449 <span class="preprocessor"></span><span class="preprocessor"># will sort the (detailed) documentation of file and class members </span>
+<a name="l00450"></a>00450 <span class="preprocessor"></span><span class="preprocessor"># alphabetically by member name. If set to NO the members will appear in </span>
+<a name="l00451"></a>00451 <span class="preprocessor"></span><span class="preprocessor"># declaration order.</span>
+<a name="l00452"></a>00452 <span class="preprocessor"></span>
+<a name="l00453"></a>00453 SORT_MEMBER_DOCS       = YES
+<a name="l00454"></a>00454 
+<a name="l00455"></a>00455 <span class="preprocessor"># If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the </span>
+<a name="l00456"></a>00456 <span class="preprocessor"></span><span class="preprocessor"># brief documentation of file, namespace and class members alphabetically </span>
+<a name="l00457"></a>00457 <span class="preprocessor"></span><span class="preprocessor"># by member name. If set to NO (the default) the members will appear in </span>
+<a name="l00458"></a>00458 <span class="preprocessor"></span><span class="preprocessor"># declaration order.</span>
+<a name="l00459"></a>00459 <span class="preprocessor"></span>
+<a name="l00460"></a>00460 SORT_BRIEF_DOCS        = YES
+<a name="l00461"></a>00461 
+<a name="l00462"></a>00462 <span class="preprocessor"># If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen </span>
+<a name="l00463"></a>00463 <span class="preprocessor"></span><span class="preprocessor"># will sort the (brief and detailed) documentation of class members so that </span>
+<a name="l00464"></a>00464 <span class="preprocessor"></span><span class="preprocessor"># constructors and destructors are listed first. If set to NO (the default) </span>
+<a name="l00465"></a>00465 <span class="preprocessor"></span><span class="preprocessor"># the constructors will appear in the respective orders defined by </span>
+<a name="l00466"></a>00466 <span class="preprocessor"></span><span class="preprocessor"># SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. </span>
+<a name="l00467"></a>00467 <span class="preprocessor"></span><span class="preprocessor"># This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO </span>
+<a name="l00468"></a>00468 <span class="preprocessor"></span><span class="preprocessor"># and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.</span>
+<a name="l00469"></a>00469 <span class="preprocessor"></span>
+<a name="l00470"></a>00470 SORT_MEMBERS_CTORS_1ST = NO
+<a name="l00471"></a>00471 
+<a name="l00472"></a>00472 <span class="preprocessor"># If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the </span>
+<a name="l00473"></a>00473 <span class="preprocessor"></span><span class="preprocessor"># hierarchy of group names into alphabetical order. If set to NO (the default) </span>
+<a name="l00474"></a>00474 <span class="preprocessor"></span><span class="preprocessor"># the group names will appear in their defined order.</span>
+<a name="l00475"></a>00475 <span class="preprocessor"></span>
+<a name="l00476"></a>00476 SORT_GROUP_NAMES       = NO
+<a name="l00477"></a>00477 
+<a name="l00478"></a>00478 <span class="preprocessor"># If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be </span>
+<a name="l00479"></a>00479 <span class="preprocessor"></span><span class="preprocessor"># sorted by fully-qualified names, including namespaces. If set to </span>
+<a name="l00480"></a>00480 <span class="preprocessor"></span><span class="preprocessor"># NO (the default), the class list will be sorted only by class name, </span>
+<a name="l00481"></a>00481 <span class="preprocessor"></span><span class="preprocessor"># not including the namespace part. </span>
+<a name="l00482"></a>00482 <span class="preprocessor"></span><span class="preprocessor"># Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. </span>
+<a name="l00483"></a>00483 <span class="preprocessor"></span><span class="preprocessor"># Note: This option applies only to the class list, not to the </span>
+<a name="l00484"></a>00484 <span class="preprocessor"></span><span class="preprocessor"># alphabetical list.</span>
+<a name="l00485"></a>00485 <span class="preprocessor"></span>
+<a name="l00486"></a>00486 SORT_BY_SCOPE_NAME     = YES
+<a name="l00487"></a>00487 
+<a name="l00488"></a>00488 <span class="preprocessor"># If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to </span>
+<a name="l00489"></a>00489 <span class="preprocessor"></span><span class="preprocessor"># do proper type resolution of all parameters of a function it will reject a </span>
+<a name="l00490"></a>00490 <span class="preprocessor"></span><span class="preprocessor"># match between the prototype and the implementation of a member function even </span>
+<a name="l00491"></a>00491 <span class="preprocessor"></span><span class="preprocessor"># if there is only one candidate or it is obvious which candidate to choose </span>
+<a name="l00492"></a>00492 <span class="preprocessor"></span><span class="preprocessor"># by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen </span>
+<a name="l00493"></a>00493 <span class="preprocessor"></span><span class="preprocessor"># will still accept a match between prototype and implementation in such cases.</span>
+<a name="l00494"></a>00494 <span class="preprocessor"></span>
+<a name="l00495"></a>00495 STRICT_PROTO_MATCHING  = NO
+<a name="l00496"></a>00496 
+<a name="l00497"></a>00497 <span class="preprocessor"># The GENERATE_TODOLIST tag can be used to enable (YES) or </span>
+<a name="l00498"></a>00498 <span class="preprocessor"></span><span class="preprocessor"># disable (NO) the todo list. This list is created by putting \todo </span>
+<a name="l00499"></a>00499 <span class="preprocessor"></span><span class="preprocessor"># commands in the documentation.</span>
+<a name="l00500"></a>00500 <span class="preprocessor"></span>
+<a name="l00501"></a>00501 GENERATE_TODOLIST      = YES
+<a name="l00502"></a>00502 
+<a name="l00503"></a>00503 <span class="preprocessor"># The GENERATE_TESTLIST tag can be used to enable (YES) or </span>
+<a name="l00504"></a>00504 <span class="preprocessor"></span><span class="preprocessor"># disable (NO) the test list. This list is created by putting \test </span>
+<a name="l00505"></a>00505 <span class="preprocessor"></span><span class="preprocessor"># commands in the documentation.</span>
+<a name="l00506"></a>00506 <span class="preprocessor"></span>
+<a name="l00507"></a>00507 GENERATE_TESTLIST      = YES
+<a name="l00508"></a>00508 
+<a name="l00509"></a>00509 <span class="preprocessor"># The GENERATE_BUGLIST tag can be used to enable (YES) or </span>
+<a name="l00510"></a>00510 <span class="preprocessor"></span><span class="preprocessor"># disable (NO) the bug list. This list is created by putting \bug </span>
+<a name="l00511"></a>00511 <span class="preprocessor"></span><span class="preprocessor"># commands in the documentation.</span>
+<a name="l00512"></a>00512 <span class="preprocessor"></span>
+<a name="l00513"></a>00513 GENERATE_BUGLIST       = YES
+<a name="l00514"></a>00514 
+<a name="l00515"></a>00515 <span class="preprocessor"># The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or </span>
+<a name="l00516"></a>00516 <span class="preprocessor"></span><span class="preprocessor"># disable (NO) the deprecated list. This list is created by putting </span>
+<a name="l00517"></a>00517 <span class="preprocessor"></span><span class="preprocessor"># \deprecated commands in the documentation.</span>
+<a name="l00518"></a>00518 <span class="preprocessor"></span>
+<a name="l00519"></a>00519 GENERATE_DEPRECATEDLIST= YES
+<a name="l00520"></a>00520 
+<a name="l00521"></a>00521 <span class="preprocessor"># The ENABLED_SECTIONS tag can be used to enable conditional </span>
+<a name="l00522"></a>00522 <span class="preprocessor"></span><span class="preprocessor"># documentation sections, marked by \if sectionname ... \endif.</span>
+<a name="l00523"></a>00523 <span class="preprocessor"></span>
+<a name="l00524"></a>00524 ENABLED_SECTIONS       = 
+<a name="l00525"></a>00525 
+<a name="l00526"></a>00526 <span class="preprocessor"># The MAX_INITIALIZER_LINES tag determines the maximum number of lines </span>
+<a name="l00527"></a>00527 <span class="preprocessor"></span><span class="preprocessor"># the initial value of a variable or macro consists of for it to appear in </span>
+<a name="l00528"></a>00528 <span class="preprocessor"></span><span class="preprocessor"># the documentation. If the initializer consists of more lines than specified </span>
+<a name="l00529"></a>00529 <span class="preprocessor"></span><span class="preprocessor"># here it will be hidden. Use a value of 0 to hide initializers completely. </span>
+<a name="l00530"></a>00530 <span class="preprocessor"></span><span class="preprocessor"># The appearance of the initializer of individual variables and macros in the </span>
+<a name="l00531"></a>00531 <span class="preprocessor"></span><span class="preprocessor"># documentation can be controlled using \showinitializer or \hideinitializer </span>
+<a name="l00532"></a>00532 <span class="preprocessor"></span><span class="preprocessor"># command in the documentation regardless of this setting.</span>
+<a name="l00533"></a>00533 <span class="preprocessor"></span>
+<a name="l00534"></a>00534 MAX_INITIALIZER_LINES  = 30
+<a name="l00535"></a>00535 
+<a name="l00536"></a>00536 <span class="preprocessor"># Set the SHOW_USED_FILES tag to NO to disable the list of files generated </span>
+<a name="l00537"></a>00537 <span class="preprocessor"></span><span class="preprocessor"># at the bottom of the documentation of classes and structs. If set to YES the </span>
+<a name="l00538"></a>00538 <span class="preprocessor"></span><span class="preprocessor"># list will mention the files that were used to generate the documentation.</span>
+<a name="l00539"></a>00539 <span class="preprocessor"></span>
+<a name="l00540"></a>00540 SHOW_USED_FILES        = NO
+<a name="l00541"></a>00541 
+<a name="l00542"></a>00542 <span class="preprocessor"># If the sources in your project are distributed over multiple directories </span>
+<a name="l00543"></a>00543 <span class="preprocessor"></span><span class="preprocessor"># then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy </span>
+<a name="l00544"></a>00544 <span class="preprocessor"></span><span class="preprocessor"># in the documentation. The default is NO.</span>
+<a name="l00545"></a>00545 <span class="preprocessor"></span>
+<a name="l00546"></a>00546 SHOW_DIRECTORIES       = NO
+<a name="l00547"></a>00547 
+<a name="l00548"></a>00548 <span class="preprocessor"># Set the SHOW_FILES tag to NO to disable the generation of the Files page. </span>
+<a name="l00549"></a>00549 <span class="preprocessor"></span><span class="preprocessor"># This will remove the Files entry from the Quick Index and from the </span>
+<a name="l00550"></a>00550 <span class="preprocessor"></span><span class="preprocessor"># Folder Tree View (if specified). The default is YES.</span>
+<a name="l00551"></a>00551 <span class="preprocessor"></span>
+<a name="l00552"></a>00552 SHOW_FILES             = YES
+<a name="l00553"></a>00553 
+<a name="l00554"></a>00554 <span class="preprocessor"># Set the SHOW_NAMESPACES tag to NO to disable the generation of the </span>
+<a name="l00555"></a>00555 <span class="preprocessor"></span><span class="preprocessor"># Namespaces page.  This will remove the Namespaces entry from the Quick Index </span>
+<a name="l00556"></a>00556 <span class="preprocessor"></span><span class="preprocessor"># and from the Folder Tree View (if specified). The default is YES.</span>
+<a name="l00557"></a>00557 <span class="preprocessor"></span>
+<a name="l00558"></a>00558 SHOW_NAMESPACES        = YES
+<a name="l00559"></a>00559 
+<a name="l00560"></a>00560 <span class="preprocessor"># The FILE_VERSION_FILTER tag can be used to specify a program or script that </span>
+<a name="l00561"></a>00561 <span class="preprocessor"></span><span class="preprocessor"># doxygen should invoke to get the current version for each file (typically from </span>
+<a name="l00562"></a>00562 <span class="preprocessor"></span><span class="preprocessor"># the version control system). Doxygen will invoke the program by executing (via </span>
+<a name="l00563"></a>00563 <span class="preprocessor"></span><span class="preprocessor"># popen()) the command &lt;command&gt; &lt;input-file&gt;, where &lt;command&gt; is the value of </span>
+<a name="l00564"></a>00564 <span class="preprocessor"></span><span class="preprocessor"># the FILE_VERSION_FILTER tag, and &lt;input-file&gt; is the name of an input file </span>
+<a name="l00565"></a>00565 <span class="preprocessor"></span><span class="preprocessor"># provided by doxygen. Whatever the program writes to standard output </span>
+<a name="l00566"></a>00566 <span class="preprocessor"></span><span class="preprocessor"># is used as the file version. See the manual for examples.</span>
+<a name="l00567"></a>00567 <span class="preprocessor"></span>
+<a name="l00568"></a>00568 FILE_VERSION_FILTER    = 
+<a name="l00569"></a>00569 
+<a name="l00570"></a>00570 <span class="preprocessor"># The LAYOUT_FILE tag can be used to specify a layout file which will be parsed </span>
+<a name="l00571"></a>00571 <span class="preprocessor"></span><span class="preprocessor"># by doxygen. The layout file controls the global structure of the generated </span>
+<a name="l00572"></a>00572 <span class="preprocessor"></span><span class="preprocessor"># output files in an output format independent way. The create the layout file </span>
+<a name="l00573"></a>00573 <span class="preprocessor"></span><span class="preprocessor"># that represents doxygen&#39;s defaults, run doxygen with the -l option. </span>
+<a name="l00574"></a>00574 <span class="preprocessor"></span><span class="preprocessor"># You can optionally specify a file name after the option, if omitted </span>
+<a name="l00575"></a>00575 <span class="preprocessor"></span><span class="preprocessor"># DoxygenLayout.xml will be used as the name of the layout file.</span>
+<a name="l00576"></a>00576 <span class="preprocessor"></span>
+<a name="l00577"></a>00577 LAYOUT_FILE            = 
+<a name="l00578"></a>00578 
+<a name="l00579"></a>00579 <span class="preprocessor"># The CITE_BIB_FILES tag can be used to specify one or more bib files </span>
+<a name="l00580"></a>00580 <span class="preprocessor"></span><span class="preprocessor"># containing the references data. This must be a list of .bib files. The </span>
+<a name="l00581"></a>00581 <span class="preprocessor"></span><span class="preprocessor"># .bib extension is automatically appended if omitted. Using this command </span>
+<a name="l00582"></a>00582 <span class="preprocessor"></span><span class="preprocessor"># requires the bibtex tool to be installed. See also </span>
+<a name="l00583"></a>00583 <span class="preprocessor"></span><span class="preprocessor"># http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style </span>
+<a name="l00584"></a>00584 <span class="preprocessor"></span><span class="preprocessor"># of the bibliography can be controlled using LATEX_BIB_STYLE. To use this</span>
+<a name="l00585"></a>00585 <span class="preprocessor"></span><span class="preprocessor"># feature you need bibtex and perl available in the search path.</span>
+<a name="l00586"></a>00586 <span class="preprocessor"></span>
+<a name="l00587"></a>00587 CITE_BIB_FILES         = 
+<a name="l00588"></a>00588 
+<a name="l00589"></a>00589 <span class="preprocessor">#---------------------------------------------------------------------------</span>
+<a name="l00590"></a>00590 <span class="preprocessor"></span><span class="preprocessor"># configuration options related to warning and progress messages</span>
+<a name="l00591"></a>00591 <span class="preprocessor"></span><span class="preprocessor">#---------------------------------------------------------------------------</span>
+<a name="l00592"></a>00592 <span class="preprocessor"></span>
+<a name="l00593"></a>00593 <span class="preprocessor"># The QUIET tag can be used to turn on/off the messages that are generated </span>
+<a name="l00594"></a>00594 <span class="preprocessor"></span><span class="preprocessor"># by doxygen. Possible values are YES and NO. If left blank NO is used.</span>
+<a name="l00595"></a>00595 <span class="preprocessor"></span>
+<a name="l00596"></a>00596 QUIET                  = NO
+<a name="l00597"></a>00597 
+<a name="l00598"></a>00598 <span class="preprocessor"># The WARNINGS tag can be used to turn on/off the warning messages that are </span>
+<a name="l00599"></a>00599 <span class="preprocessor"></span><span class="preprocessor"># generated by doxygen. Possible values are YES and NO. If left blank </span>
+<a name="l00600"></a>00600 <span class="preprocessor"></span><span class="preprocessor"># NO is used.</span>
+<a name="l00601"></a>00601 <span class="preprocessor"></span>
+<a name="l00602"></a>00602 WARNINGS               = YES
+<a name="l00603"></a>00603 
+<a name="l00604"></a>00604 <span class="preprocessor"># If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings </span>
+<a name="l00605"></a>00605 <span class="preprocessor"></span><span class="preprocessor"># for undocumented members. If EXTRACT_ALL is set to YES then this flag will </span>
+<a name="l00606"></a>00606 <span class="preprocessor"></span><span class="preprocessor"># automatically be disabled.</span>
+<a name="l00607"></a>00607 <span class="preprocessor"></span>
+<a name="l00608"></a>00608 WARN_IF_UNDOCUMENTED   = YES
+<a name="l00609"></a>00609 
+<a name="l00610"></a>00610 <span class="preprocessor"># If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for </span>
+<a name="l00611"></a>00611 <span class="preprocessor"></span><span class="preprocessor"># potential errors in the documentation, such as not documenting some </span>
+<a name="l00612"></a>00612 <span class="preprocessor"></span><span class="preprocessor"># parameters in a documented function, or documenting parameters that </span>
+<a name="l00613"></a>00613 <span class="preprocessor"></span><span class="preprocessor"># don&#39;t exist or using markup commands wrongly.</span>
+<a name="l00614"></a>00614 <span class="preprocessor"></span>
+<a name="l00615"></a>00615 WARN_IF_DOC_ERROR      = YES
+<a name="l00616"></a>00616 
+<a name="l00617"></a>00617 <span class="preprocessor"># The WARN_NO_PARAMDOC option can be enabled to get warnings for </span>
+<a name="l00618"></a>00618 <span class="preprocessor"></span><span class="preprocessor"># functions that are documented, but have no documentation for their parameters </span>
+<a name="l00619"></a>00619 <span class="preprocessor"></span><span class="preprocessor"># or return value. If set to NO (the default) doxygen will only warn about </span>
+<a name="l00620"></a>00620 <span class="preprocessor"></span><span class="preprocessor"># wrong or incomplete parameter documentation, but not about the absence of </span>
+<a name="l00621"></a>00621 <span class="preprocessor"></span><span class="preprocessor"># documentation.</span>
+<a name="l00622"></a>00622 <span class="preprocessor"></span>
+<a name="l00623"></a>00623 WARN_NO_PARAMDOC       = NO
+<a name="l00624"></a>00624 
+<a name="l00625"></a>00625 <span class="preprocessor"># The WARN_FORMAT tag determines the format of the warning messages that </span>
+<a name="l00626"></a>00626 <span class="preprocessor"></span><span class="preprocessor"># doxygen can produce. The string should contain the $file, $line, and $text </span>
+<a name="l00627"></a>00627 <span class="preprocessor"></span><span class="preprocessor"># tags, which will be replaced by the file and line number from which the </span>
+<a name="l00628"></a>00628 <span class="preprocessor"></span><span class="preprocessor"># warning originated and the warning text. Optionally the format may contain </span>
+<a name="l00629"></a>00629 <span class="preprocessor"></span><span class="preprocessor"># $version, which will be replaced by the version of the file (if it could </span>
+<a name="l00630"></a>00630 <span class="preprocessor"></span><span class="preprocessor"># be obtained via FILE_VERSION_FILTER)</span>
+<a name="l00631"></a>00631 <span class="preprocessor"></span>
+<a name="l00632"></a>00632 WARN_FORMAT            = <span class="stringliteral">&quot;$file:$line: $text&quot;</span>
+<a name="l00633"></a>00633 
+<a name="l00634"></a>00634 <span class="preprocessor"># The WARN_LOGFILE tag can be used to specify a file to which warning </span>
+<a name="l00635"></a>00635 <span class="preprocessor"></span><span class="preprocessor"># and error messages should be written. If left blank the output is written </span>
+<a name="l00636"></a>00636 <span class="preprocessor"></span><span class="preprocessor"># to stderr.</span>
+<a name="l00637"></a>00637 <span class="preprocessor"></span>
+<a name="l00638"></a>00638 WARN_LOGFILE           = 
+<a name="l00639"></a>00639 
+<a name="l00640"></a>00640 <span class="preprocessor">#---------------------------------------------------------------------------</span>
+<a name="l00641"></a>00641 <span class="preprocessor"></span><span class="preprocessor"># configuration options related to the input files</span>
+<a name="l00642"></a>00642 <span class="preprocessor"></span><span class="preprocessor">#---------------------------------------------------------------------------</span>
+<a name="l00643"></a>00643 <span class="preprocessor"></span>
+<a name="l00644"></a>00644 <span class="preprocessor"># The INPUT tag can be used to specify the files and/or directories that contain </span>
+<a name="l00645"></a>00645 <span class="preprocessor"></span><span class="preprocessor"># documented source files. You may enter file names like &quot;myfile.cpp&quot; or </span>
+<a name="l00646"></a>00646 <span class="preprocessor"></span><span class="preprocessor"># directories like &quot;/usr/src/myproject&quot;. Separate the files or directories </span>
+<a name="l00647"></a>00647 <span class="preprocessor"></span><span class="preprocessor"># with spaces.</span>
+<a name="l00648"></a>00648 <span class="preprocessor"></span>
+<a name="l00649"></a>00649 INPUT                  = ../glm \
+<a name="l00650"></a>00650                          .
+<a name="l00651"></a>00651 
+<a name="l00652"></a>00652 # This tag can be used to specify the character encoding of the source files 
+<a name="l00653"></a>00653 <span class="preprocessor"># that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is </span>
+<a name="l00654"></a>00654 <span class="preprocessor"></span><span class="preprocessor"># also the default input encoding. Doxygen uses libiconv (or the iconv built </span>
+<a name="l00655"></a>00655 <span class="preprocessor"></span><span class="preprocessor"># into libc) for the transcoding. See http://www.gnu.org/software/libiconv for </span>
+<a name="l00656"></a>00656 <span class="preprocessor"></span><span class="preprocessor"># the list of possible encodings.</span>
+<a name="l00657"></a>00657 <span class="preprocessor"></span>
+<a name="l00658"></a>00658 INPUT_ENCODING         = UTF-8
+<a name="l00659"></a>00659 
+<a name="l00660"></a>00660 <span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the </span>
+<a name="l00661"></a>00661 <span class="preprocessor"></span><span class="preprocessor"># FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp </span>
+<a name="l00662"></a>00662 <span class="preprocessor"></span><span class="preprocessor"># and *.h) to filter out the source-files in the directories. If left </span>
+<a name="l00663"></a>00663 <span class="preprocessor"></span><span class="preprocessor"># blank the following patterns are tested: </span>
+<a name="l00664"></a>00664 <span class="preprocessor"></span><span class="preprocessor"># *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh </span>
+<a name="l00665"></a>00665 <span class="preprocessor"></span><span class="preprocessor"># *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py </span>
+<a name="l00666"></a>00666 <span class="preprocessor"></span><span class="preprocessor"># *.f90 *.f *.for *.vhd *.vhdl</span>
+<a name="l00667"></a>00667 <span class="preprocessor"></span>
+<a name="l00668"></a>00668 FILE_PATTERNS          = *.hpp \
+<a name="l00669"></a>00669                          *.doxy
+<a name="l00670"></a>00670 
+<a name="l00671"></a>00671 <span class="preprocessor"># The RECURSIVE tag can be used to turn specify whether or not subdirectories </span>
+<a name="l00672"></a>00672 <span class="preprocessor"></span><span class="preprocessor"># should be searched for input files as well. Possible values are YES and NO. </span>
+<a name="l00673"></a>00673 <span class="preprocessor"></span><span class="preprocessor"># If left blank NO is used.</span>
+<a name="l00674"></a>00674 <span class="preprocessor"></span>
+<a name="l00675"></a>00675 RECURSIVE              = YES
+<a name="l00676"></a>00676 
+<a name="l00677"></a>00677 <span class="preprocessor"># The EXCLUDE tag can be used to specify files and/or directories that should be </span>
+<a name="l00678"></a>00678 <span class="preprocessor"></span><span class="preprocessor"># excluded from the INPUT source files. This way you can easily exclude a </span>
+<a name="l00679"></a>00679 <span class="preprocessor"></span><span class="preprocessor"># subdirectory from a directory tree whose root is specified with the INPUT tag. </span>
+<a name="l00680"></a>00680 <span class="preprocessor"></span><span class="preprocessor"># Note that relative paths are relative to the directory from which doxygen is </span>
+<a name="l00681"></a>00681 <span class="preprocessor"></span><span class="preprocessor"># run.</span>
+<a name="l00682"></a>00682 <span class="preprocessor"></span>
+<a name="l00683"></a>00683 EXCLUDE                = 
+<a name="l00684"></a>00684 
+<a name="l00685"></a>00685 <span class="preprocessor"># The EXCLUDE_SYMLINKS tag can be used to select whether or not files or </span>
+<a name="l00686"></a>00686 <span class="preprocessor"></span><span class="preprocessor"># directories that are symbolic links (a Unix file system feature) are excluded </span>
+<a name="l00687"></a>00687 <span class="preprocessor"></span><span class="preprocessor"># from the input.</span>
+<a name="l00688"></a>00688 <span class="preprocessor"></span>
+<a name="l00689"></a>00689 EXCLUDE_SYMLINKS       = NO
+<a name="l00690"></a>00690 
+<a name="l00691"></a>00691 <span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the </span>
+<a name="l00692"></a>00692 <span class="preprocessor"></span><span class="preprocessor"># EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude </span>
+<a name="l00693"></a>00693 <span class="preprocessor"></span><span class="preprocessor"># certain files from those directories. Note that the wildcards are matched </span>
+<a name="l00694"></a>00694 <span class="preprocessor"></span><span class="preprocessor"># against the file with absolute path, so to exclude all test directories </span>
+<a name="l00695"></a>00695 <span class="preprocessor"></span><span class="preprocessor"># for example use the pattern */test</span><span class="comment">/*</span>
+<a name="l00696"></a>00696 <span class="comment"></span>
+<a name="l00697"></a>00697 <span class="comment">EXCLUDE_PATTERNS       = </span>
+<a name="l00698"></a>00698 <span class="comment"></span>
+<a name="l00699"></a>00699 <span class="comment"># The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names </span>
+<a name="l00700"></a>00700 <span class="comment"># (namespaces, classes, functions, etc.) that should be excluded from the </span>
+<a name="l00701"></a>00701 <span class="comment"># output. The symbol name can be a fully qualified name, a word, or if the </span>
+<a name="l00702"></a>00702 <span class="comment"># wildcard * is used, a substring. Examples: ANamespace, AClass, </span>
+<a name="l00703"></a>00703 <span class="comment"># AClass::ANamespace, ANamespace::*Test</span>
+<a name="l00704"></a>00704 <span class="comment"></span>
+<a name="l00705"></a>00705 <span class="comment">EXCLUDE_SYMBOLS        = </span>
+<a name="l00706"></a>00706 <span class="comment"></span>
+<a name="l00707"></a>00707 <span class="comment"># The EXAMPLE_PATH tag can be used to specify one or more files or </span>
+<a name="l00708"></a>00708 <span class="comment"># directories that contain example code fragments that are included (see </span>
+<a name="l00709"></a>00709 <span class="comment"># the \include command).</span>
+<a name="l00710"></a>00710 <span class="comment"></span>
+<a name="l00711"></a>00711 <span class="comment">EXAMPLE_PATH           = </span>
+<a name="l00712"></a>00712 <span class="comment"></span>
+<a name="l00713"></a>00713 <span class="comment"># If the value of the EXAMPLE_PATH tag contains directories, you can use the </span>
+<a name="l00714"></a>00714 <span class="comment"># EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp </span>
+<a name="l00715"></a>00715 <span class="comment"># and *.h) to filter out the source-files in the directories. If left </span>
+<a name="l00716"></a>00716 <span class="comment"># blank all files are included.</span>
+<a name="l00717"></a>00717 <span class="comment"></span>
+<a name="l00718"></a>00718 <span class="comment">EXAMPLE_PATTERNS       = *</span>
+<a name="l00719"></a>00719 <span class="comment"></span>
+<a name="l00720"></a>00720 <span class="comment"># If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be </span>
+<a name="l00721"></a>00721 <span class="comment"># searched for input files to be used with the \include or \dontinclude </span>
+<a name="l00722"></a>00722 <span class="comment"># commands irrespective of the value of the RECURSIVE tag. </span>
+<a name="l00723"></a>00723 <span class="comment"># Possible values are YES and NO. If left blank NO is used.</span>
+<a name="l00724"></a>00724 <span class="comment"></span>
+<a name="l00725"></a>00725 <span class="comment">EXAMPLE_RECURSIVE      = NO</span>
+<a name="l00726"></a>00726 <span class="comment"></span>
+<a name="l00727"></a>00727 <span class="comment"># The IMAGE_PATH tag can be used to specify one or more files or </span>
+<a name="l00728"></a>00728 <span class="comment"># directories that contain image that are included in the documentation (see </span>
+<a name="l00729"></a>00729 <span class="comment"># the \image command).</span>
+<a name="l00730"></a>00730 <span class="comment"></span>
+<a name="l00731"></a>00731 <span class="comment">IMAGE_PATH             = </span>
+<a name="l00732"></a>00732 <span class="comment"></span>
+<a name="l00733"></a>00733 <span class="comment"># The INPUT_FILTER tag can be used to specify a program that doxygen should </span>
+<a name="l00734"></a>00734 <span class="comment"># invoke to filter for each input file. Doxygen will invoke the filter program </span>
+<a name="l00735"></a>00735 <span class="comment"># by executing (via popen()) the command &lt;filter&gt; &lt;input-file&gt;, where &lt;filter&gt; </span>
+<a name="l00736"></a>00736 <span class="comment"># is the value of the INPUT_FILTER tag, and &lt;input-file&gt; is the name of an </span>
+<a name="l00737"></a>00737 <span class="comment"># input file. Doxygen will then use the output that the filter program writes </span>
+<a name="l00738"></a>00738 <span class="comment"># to standard output.  If FILTER_PATTERNS is specified, this tag will be </span>
+<a name="l00739"></a>00739 <span class="comment"># ignored.</span>
+<a name="l00740"></a>00740 <span class="comment"></span>
+<a name="l00741"></a>00741 <span class="comment">INPUT_FILTER           = </span>
+<a name="l00742"></a>00742 <span class="comment"></span>
+<a name="l00743"></a>00743 <span class="comment"># The FILTER_PATTERNS tag can be used to specify filters on a per file pattern </span>
+<a name="l00744"></a>00744 <span class="comment"># basis.  Doxygen will compare the file name with each pattern and apply the </span>
+<a name="l00745"></a>00745 <span class="comment"># filter if there is a match.  The filters are a list of the form: </span>
+<a name="l00746"></a>00746 <span class="comment"># pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further </span>
+<a name="l00747"></a>00747 <span class="comment"># info on how filters are used. If FILTER_PATTERNS is empty or if </span>
+<a name="l00748"></a>00748 <span class="comment"># non of the patterns match the file name, INPUT_FILTER is applied.</span>
+<a name="l00749"></a>00749 <span class="comment"></span>
+<a name="l00750"></a>00750 <span class="comment">FILTER_PATTERNS        = </span>
+<a name="l00751"></a>00751 <span class="comment"></span>
+<a name="l00752"></a>00752 <span class="comment"># If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using </span>
+<a name="l00753"></a>00753 <span class="comment"># INPUT_FILTER) will be used to filter the input files when producing source </span>
+<a name="l00754"></a>00754 <span class="comment"># files to browse (i.e. when SOURCE_BROWSER is set to YES).</span>
+<a name="l00755"></a>00755 <span class="comment"></span>
+<a name="l00756"></a>00756 <span class="comment">FILTER_SOURCE_FILES    = NO</span>
+<a name="l00757"></a>00757 <span class="comment"></span>
+<a name="l00758"></a>00758 <span class="comment"># The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file </span>
+<a name="l00759"></a>00759 <span class="comment"># pattern. A pattern will override the setting for FILTER_PATTERN (if any) </span>
+<a name="l00760"></a>00760 <span class="comment"># and it is also possible to disable source filtering for a specific pattern </span>
+<a name="l00761"></a>00761 <span class="comment"># using *.ext= (so without naming a filter). This option only has effect when </span>
+<a name="l00762"></a>00762 <span class="comment"># FILTER_SOURCE_FILES is enabled.</span>
+<a name="l00763"></a>00763 <span class="comment"></span>
+<a name="l00764"></a>00764 <span class="comment">FILTER_SOURCE_PATTERNS = </span>
+<a name="l00765"></a>00765 <span class="comment"></span>
+<a name="l00766"></a>00766 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l00767"></a>00767 <span class="comment"># configuration options related to source browsing</span>
+<a name="l00768"></a>00768 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l00769"></a>00769 <span class="comment"></span>
+<a name="l00770"></a>00770 <span class="comment"># If the SOURCE_BROWSER tag is set to YES then a list of source files will </span>
+<a name="l00771"></a>00771 <span class="comment"># be generated. Documented entities will be cross-referenced with these sources. </span>
+<a name="l00772"></a>00772 <span class="comment"># Note: To get rid of all source code in the generated output, make sure also </span>
+<a name="l00773"></a>00773 <span class="comment"># VERBATIM_HEADERS is set to NO.</span>
+<a name="l00774"></a>00774 <span class="comment"></span>
+<a name="l00775"></a>00775 <span class="comment">SOURCE_BROWSER         = YES</span>
+<a name="l00776"></a>00776 <span class="comment"></span>
+<a name="l00777"></a>00777 <span class="comment"># Setting the INLINE_SOURCES tag to YES will include the body </span>
+<a name="l00778"></a>00778 <span class="comment"># of functions and classes directly in the documentation.</span>
+<a name="l00779"></a>00779 <span class="comment"></span>
+<a name="l00780"></a>00780 <span class="comment">INLINE_SOURCES         = NO</span>
+<a name="l00781"></a>00781 <span class="comment"></span>
+<a name="l00782"></a>00782 <span class="comment"># Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct </span>
+<a name="l00783"></a>00783 <span class="comment"># doxygen to hide any special comment blocks from generated source code </span>
+<a name="l00784"></a>00784 <span class="comment"># fragments. Normal C and C++ comments will always remain visible.</span>
+<a name="l00785"></a>00785 <span class="comment"></span>
+<a name="l00786"></a>00786 <span class="comment">STRIP_CODE_COMMENTS    = YES</span>
+<a name="l00787"></a>00787 <span class="comment"></span>
+<a name="l00788"></a>00788 <span class="comment"># If the REFERENCED_BY_RELATION tag is set to YES </span>
+<a name="l00789"></a>00789 <span class="comment"># then for each documented function all documented </span>
+<a name="l00790"></a>00790 <span class="comment"># functions referencing it will be listed.</span>
+<a name="l00791"></a>00791 <span class="comment"></span>
+<a name="l00792"></a>00792 <span class="comment">REFERENCED_BY_RELATION = YES</span>
+<a name="l00793"></a>00793 <span class="comment"></span>
+<a name="l00794"></a>00794 <span class="comment"># If the REFERENCES_RELATION tag is set to YES </span>
+<a name="l00795"></a>00795 <span class="comment"># then for each documented function all documented entities </span>
+<a name="l00796"></a>00796 <span class="comment"># called/used by that function will be listed.</span>
+<a name="l00797"></a>00797 <span class="comment"></span>
+<a name="l00798"></a>00798 <span class="comment">REFERENCES_RELATION    = YES</span>
+<a name="l00799"></a>00799 <span class="comment"></span>
+<a name="l00800"></a>00800 <span class="comment"># If the REFERENCES_LINK_SOURCE tag is set to YES (the default) </span>
+<a name="l00801"></a>00801 <span class="comment"># and SOURCE_BROWSER tag is set to YES, then the hyperlinks from </span>
+<a name="l00802"></a>00802 <span class="comment"># functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will </span>
+<a name="l00803"></a>00803 <span class="comment"># link to the source code.  Otherwise they will link to the documentation.</span>
+<a name="l00804"></a>00804 <span class="comment"></span>
+<a name="l00805"></a>00805 <span class="comment">REFERENCES_LINK_SOURCE = YES</span>
+<a name="l00806"></a>00806 <span class="comment"></span>
+<a name="l00807"></a>00807 <span class="comment"># If the USE_HTAGS tag is set to YES then the references to source code </span>
+<a name="l00808"></a>00808 <span class="comment"># will point to the HTML generated by the htags(1) tool instead of doxygen </span>
+<a name="l00809"></a>00809 <span class="comment"># built-in source browser. The htags tool is part of GNU&#39;s global source </span>
+<a name="l00810"></a>00810 <span class="comment"># tagging system (see http://www.gnu.org/software/global/global.html). You </span>
+<a name="l00811"></a>00811 <span class="comment"># will need version 4.8.6 or higher.</span>
+<a name="l00812"></a>00812 <span class="comment"></span>
+<a name="l00813"></a>00813 <span class="comment">USE_HTAGS              = NO</span>
+<a name="l00814"></a>00814 <span class="comment"></span>
+<a name="l00815"></a>00815 <span class="comment"># If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen </span>
+<a name="l00816"></a>00816 <span class="comment"># will generate a verbatim copy of the header file for each class for </span>
+<a name="l00817"></a>00817 <span class="comment"># which an include is specified. Set to NO to disable this.</span>
+<a name="l00818"></a>00818 <span class="comment"></span>
+<a name="l00819"></a>00819 <span class="comment">VERBATIM_HEADERS       = YES</span>
+<a name="l00820"></a>00820 <span class="comment"></span>
+<a name="l00821"></a>00821 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l00822"></a>00822 <span class="comment"># configuration options related to the alphabetical class index</span>
+<a name="l00823"></a>00823 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l00824"></a>00824 <span class="comment"></span>
+<a name="l00825"></a>00825 <span class="comment"># If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index </span>
+<a name="l00826"></a>00826 <span class="comment"># of all compounds will be generated. Enable this if the project </span>
+<a name="l00827"></a>00827 <span class="comment"># contains a lot of classes, structs, unions or interfaces.</span>
+<a name="l00828"></a>00828 <span class="comment"></span>
+<a name="l00829"></a>00829 <span class="comment">ALPHABETICAL_INDEX     = NO</span>
+<a name="l00830"></a>00830 <span class="comment"></span>
+<a name="l00831"></a>00831 <span class="comment"># If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then </span>
+<a name="l00832"></a>00832 <span class="comment"># the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns </span>
+<a name="l00833"></a>00833 <span class="comment"># in which this list will be split (can be a number in the range [1..20])</span>
+<a name="l00834"></a>00834 <span class="comment"></span>
+<a name="l00835"></a>00835 <span class="comment">COLS_IN_ALPHA_INDEX    = 5</span>
+<a name="l00836"></a>00836 <span class="comment"></span>
+<a name="l00837"></a>00837 <span class="comment"># In case all classes in a project start with a common prefix, all </span>
+<a name="l00838"></a>00838 <span class="comment"># classes will be put under the same header in the alphabetical index. </span>
+<a name="l00839"></a>00839 <span class="comment"># The IGNORE_PREFIX tag can be used to specify one or more prefixes that </span>
+<a name="l00840"></a>00840 <span class="comment"># should be ignored while generating the index headers.</span>
+<a name="l00841"></a>00841 <span class="comment"></span>
+<a name="l00842"></a>00842 <span class="comment">IGNORE_PREFIX          = </span>
+<a name="l00843"></a>00843 <span class="comment"></span>
+<a name="l00844"></a>00844 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l00845"></a>00845 <span class="comment"># configuration options related to the HTML output</span>
+<a name="l00846"></a>00846 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l00847"></a>00847 <span class="comment"></span>
+<a name="l00848"></a>00848 <span class="comment"># If the GENERATE_HTML tag is set to YES (the default) Doxygen will </span>
+<a name="l00849"></a>00849 <span class="comment"># generate HTML output.</span>
+<a name="l00850"></a>00850 <span class="comment"></span>
+<a name="l00851"></a>00851 <span class="comment">GENERATE_HTML          = YES</span>
+<a name="l00852"></a>00852 <span class="comment"></span>
+<a name="l00853"></a>00853 <span class="comment"># The HTML_OUTPUT tag is used to specify where the HTML docs will be put. </span>
+<a name="l00854"></a>00854 <span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be </span>
+<a name="l00855"></a>00855 <span class="comment"># put in front of it. If left blank `html&#39; will be used as the default path.</span>
+<a name="l00856"></a>00856 <span class="comment"></span>
+<a name="l00857"></a>00857 <span class="comment">HTML_OUTPUT            = html</span>
+<a name="l00858"></a>00858 <span class="comment"></span>
+<a name="l00859"></a>00859 <span class="comment"># The HTML_FILE_EXTENSION tag can be used to specify the file extension for </span>
+<a name="l00860"></a>00860 <span class="comment"># each generated HTML page (for example: .htm,.php,.asp). If it is left blank </span>
+<a name="l00861"></a>00861 <span class="comment"># doxygen will generate files with .html extension.</span>
+<a name="l00862"></a>00862 <span class="comment"></span>
+<a name="l00863"></a>00863 <span class="comment">HTML_FILE_EXTENSION    = .html</span>
+<a name="l00864"></a>00864 <span class="comment"></span>
+<a name="l00865"></a>00865 <span class="comment"># The HTML_HEADER tag can be used to specify a personal HTML header for </span>
+<a name="l00866"></a>00866 <span class="comment"># each generated HTML page. If it is left blank doxygen will generate a </span>
+<a name="l00867"></a>00867 <span class="comment"># standard header. Note that when using a custom header you are responsible  </span>
+<a name="l00868"></a>00868 <span class="comment"># for the proper inclusion of any scripts and style sheets that doxygen </span>
+<a name="l00869"></a>00869 <span class="comment"># needs, which is dependent on the configuration options used. </span>
+<a name="l00870"></a>00870 <span class="comment"># It is advised to generate a default header using &quot;doxygen -w html </span>
+<a name="l00871"></a>00871 <span class="comment"># header.html footer.html stylesheet.css YourConfigFile&quot; and then modify </span>
+<a name="l00872"></a>00872 <span class="comment"># that header. Note that the header is subject to change so you typically </span>
+<a name="l00873"></a>00873 <span class="comment"># have to redo this when upgrading to a newer version of doxygen or when </span>
+<a name="l00874"></a>00874 <span class="comment"># changing the value of configuration settings such as GENERATE_TREEVIEW!</span>
+<a name="l00875"></a>00875 <span class="comment"></span>
+<a name="l00876"></a>00876 <span class="comment">HTML_HEADER            = </span>
+<a name="l00877"></a>00877 <span class="comment"></span>
+<a name="l00878"></a>00878 <span class="comment"># The HTML_FOOTER tag can be used to specify a personal HTML footer for </span>
+<a name="l00879"></a>00879 <span class="comment"># each generated HTML page. If it is left blank doxygen will generate a </span>
+<a name="l00880"></a>00880 <span class="comment"># standard footer.</span>
+<a name="l00881"></a>00881 <span class="comment"></span>
+<a name="l00882"></a>00882 <span class="comment">HTML_FOOTER            = </span>
+<a name="l00883"></a>00883 <span class="comment"></span>
+<a name="l00884"></a>00884 <span class="comment"># The HTML_STYLESHEET tag can be used to specify a user-defined cascading </span>
+<a name="l00885"></a>00885 <span class="comment"># style sheet that is used by each HTML page. It can be used to </span>
+<a name="l00886"></a>00886 <span class="comment"># fine-tune the look of the HTML output. If the tag is left blank doxygen </span>
+<a name="l00887"></a>00887 <span class="comment"># will generate a default style sheet. Note that doxygen will try to copy </span>
+<a name="l00888"></a>00888 <span class="comment"># the style sheet file to the HTML output directory, so don&#39;t put your own </span>
+<a name="l00889"></a>00889 <span class="comment"># style sheet in the HTML output directory as well, or it will be erased!</span>
+<a name="l00890"></a>00890 <span class="comment"></span>
+<a name="l00891"></a>00891 <span class="comment">HTML_STYLESHEET        = </span>
+<a name="l00892"></a>00892 <span class="comment"></span>
+<a name="l00893"></a>00893 <span class="comment"># The HTML_EXTRA_FILES tag can be used to specify one or more extra images or </span>
+<a name="l00894"></a>00894 <span class="comment"># other source files which should be copied to the HTML output directory. Note </span>
+<a name="l00895"></a>00895 <span class="comment"># that these files will be copied to the base HTML output directory. Use the </span>
+<a name="l00896"></a>00896 <span class="comment"># $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these </span>
+<a name="l00897"></a>00897 <span class="comment"># files. In the HTML_STYLESHEET file, use the file name only. Also note that </span>
+<a name="l00898"></a>00898 <span class="comment"># the files will be copied as-is; there are no commands or markers available.</span>
+<a name="l00899"></a>00899 <span class="comment"></span>
+<a name="l00900"></a>00900 <span class="comment">HTML_EXTRA_FILES       = </span>
+<a name="l00901"></a>00901 <span class="comment"></span>
+<a name="l00902"></a>00902 <span class="comment"># The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. </span>
+<a name="l00903"></a>00903 <span class="comment"># Doxygen will adjust the colors in the style sheet and background images </span>
+<a name="l00904"></a>00904 <span class="comment"># according to this color. Hue is specified as an angle on a colorwheel, </span>
+<a name="l00905"></a>00905 <span class="comment"># see http://en.wikipedia.org/wiki/Hue for more information. </span>
+<a name="l00906"></a>00906 <span class="comment"># For instance the value 0 represents red, 60 is yellow, 120 is green, </span>
+<a name="l00907"></a>00907 <span class="comment"># 180 is cyan, 240 is blue, 300 purple, and 360 is red again. </span>
+<a name="l00908"></a>00908 <span class="comment"># The allowed range is 0 to 359.</span>
+<a name="l00909"></a>00909 <span class="comment"></span>
+<a name="l00910"></a>00910 <span class="comment">HTML_COLORSTYLE_HUE    = 220</span>
+<a name="l00911"></a>00911 <span class="comment"></span>
+<a name="l00912"></a>00912 <span class="comment"># The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of </span>
+<a name="l00913"></a>00913 <span class="comment"># the colors in the HTML output. For a value of 0 the output will use </span>
+<a name="l00914"></a>00914 <span class="comment"># grayscales only. A value of 255 will produce the most vivid colors.</span>
+<a name="l00915"></a>00915 <span class="comment"></span>
+<a name="l00916"></a>00916 <span class="comment">HTML_COLORSTYLE_SAT    = 100</span>
+<a name="l00917"></a>00917 <span class="comment"></span>
+<a name="l00918"></a>00918 <span class="comment"># The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to </span>
+<a name="l00919"></a>00919 <span class="comment"># the luminance component of the colors in the HTML output. Values below </span>
+<a name="l00920"></a>00920 <span class="comment"># 100 gradually make the output lighter, whereas values above 100 make </span>
+<a name="l00921"></a>00921 <span class="comment"># the output darker. The value divided by 100 is the actual gamma applied, </span>
+<a name="l00922"></a>00922 <span class="comment"># so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, </span>
+<a name="l00923"></a>00923 <span class="comment"># and 100 does not change the gamma.</span>
+<a name="l00924"></a>00924 <span class="comment"></span>
+<a name="l00925"></a>00925 <span class="comment">HTML_COLORSTYLE_GAMMA  = 80</span>
+<a name="l00926"></a>00926 <span class="comment"></span>
+<a name="l00927"></a>00927 <span class="comment"># If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML </span>
+<a name="l00928"></a>00928 <span class="comment"># page will contain the date and time when the page was generated. Setting </span>
+<a name="l00929"></a>00929 <span class="comment"># this to NO can help when comparing the output of multiple runs.</span>
+<a name="l00930"></a>00930 <span class="comment"></span>
+<a name="l00931"></a>00931 <span class="comment">HTML_TIMESTAMP         = NO</span>
+<a name="l00932"></a>00932 <span class="comment"></span>
+<a name="l00933"></a>00933 <span class="comment"># If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, </span>
+<a name="l00934"></a>00934 <span class="comment"># files or namespaces will be aligned in HTML using tables. If set to </span>
+<a name="l00935"></a>00935 <span class="comment"># NO a bullet list will be used.</span>
+<a name="l00936"></a>00936 <span class="comment"></span>
+<a name="l00937"></a>00937 <span class="comment">HTML_ALIGN_MEMBERS     = YES</span>
+<a name="l00938"></a>00938 <span class="comment"></span>
+<a name="l00939"></a>00939 <span class="comment"># If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML </span>
+<a name="l00940"></a>00940 <span class="comment"># documentation will contain sections that can be hidden and shown after the </span>
+<a name="l00941"></a>00941 <span class="comment"># page has loaded. For this to work a browser that supports </span>
+<a name="l00942"></a>00942 <span class="comment"># JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox </span>
+<a name="l00943"></a>00943 <span class="comment"># Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).</span>
+<a name="l00944"></a>00944 <span class="comment"></span>
+<a name="l00945"></a>00945 <span class="comment">HTML_DYNAMIC_SECTIONS  = NO</span>
+<a name="l00946"></a>00946 <span class="comment"></span>
+<a name="l00947"></a>00947 <span class="comment"># If the GENERATE_DOCSET tag is set to YES, additional index files </span>
+<a name="l00948"></a>00948 <span class="comment"># will be generated that can be used as input for Apple&#39;s Xcode 3 </span>
+<a name="l00949"></a>00949 <span class="comment"># integrated development environment, introduced with OSX 10.5 (Leopard). </span>
+<a name="l00950"></a>00950 <span class="comment"># To create a documentation set, doxygen will generate a Makefile in the </span>
+<a name="l00951"></a>00951 <span class="comment"># HTML output directory. Running make will produce the docset in that </span>
+<a name="l00952"></a>00952 <span class="comment"># directory and running &quot;make install&quot; will install the docset in </span>
+<a name="l00953"></a>00953 <span class="comment"># ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find </span>
+<a name="l00954"></a>00954 <span class="comment"># it at startup. </span>
+<a name="l00955"></a>00955 <span class="comment"># See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html </span>
+<a name="l00956"></a>00956 <span class="comment"># for more information.</span>
+<a name="l00957"></a>00957 <span class="comment"></span>
+<a name="l00958"></a>00958 <span class="comment">GENERATE_DOCSET        = NO</span>
+<a name="l00959"></a>00959 <span class="comment"></span>
+<a name="l00960"></a>00960 <span class="comment"># When GENERATE_DOCSET tag is set to YES, this tag determines the name of the </span>
+<a name="l00961"></a>00961 <span class="comment"># feed. A documentation feed provides an umbrella under which multiple </span>
+<a name="l00962"></a>00962 <span class="comment"># documentation sets from a single provider (such as a company or product suite) </span>
+<a name="l00963"></a>00963 <span class="comment"># can be grouped.</span>
+<a name="l00964"></a>00964 <span class="comment"></span>
+<a name="l00965"></a>00965 <span class="comment">DOCSET_FEEDNAME        = &quot;Doxygen generated docs&quot;</span>
+<a name="l00966"></a>00966 <span class="comment"></span>
+<a name="l00967"></a>00967 <span class="comment"># When GENERATE_DOCSET tag is set to YES, this tag specifies a string that </span>
+<a name="l00968"></a>00968 <span class="comment"># should uniquely identify the documentation set bundle. This should be a </span>
+<a name="l00969"></a>00969 <span class="comment"># reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen </span>
+<a name="l00970"></a>00970 <span class="comment"># will append .docset to the name.</span>
+<a name="l00971"></a>00971 <span class="comment"></span>
+<a name="l00972"></a>00972 <span class="comment">DOCSET_BUNDLE_ID       = org.doxygen.Project</span>
+<a name="l00973"></a>00973 <span class="comment"></span>
+<a name="l00974"></a>00974 <span class="comment"># When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify </span>
+<a name="l00975"></a>00975 <span class="comment"># the documentation publisher. This should be a reverse domain-name style </span>
+<a name="l00976"></a>00976 <span class="comment"># string, e.g. com.mycompany.MyDocSet.documentation.</span>
+<a name="l00977"></a>00977 <span class="comment"></span>
+<a name="l00978"></a>00978 <span class="comment">DOCSET_PUBLISHER_ID    = org.doxygen.Publisher</span>
+<a name="l00979"></a>00979 <span class="comment"></span>
+<a name="l00980"></a>00980 <span class="comment"># The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.</span>
+<a name="l00981"></a>00981 <span class="comment"></span>
+<a name="l00982"></a>00982 <span class="comment">DOCSET_PUBLISHER_NAME  = Publisher</span>
+<a name="l00983"></a>00983 <span class="comment"></span>
+<a name="l00984"></a>00984 <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES, additional index files </span>
+<a name="l00985"></a>00985 <span class="comment"># will be generated that can be used as input for tools like the </span>
+<a name="l00986"></a>00986 <span class="comment"># Microsoft HTML help workshop to generate a compiled HTML help file (.chm) </span>
+<a name="l00987"></a>00987 <span class="comment"># of the generated HTML documentation.</span>
+<a name="l00988"></a>00988 <span class="comment"></span>
+<a name="l00989"></a>00989 <span class="comment">GENERATE_HTMLHELP      = NO</span>
+<a name="l00990"></a>00990 <span class="comment"></span>
+<a name="l00991"></a>00991 <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can </span>
+<a name="l00992"></a>00992 <span class="comment"># be used to specify the file name of the resulting .chm file. You </span>
+<a name="l00993"></a>00993 <span class="comment"># can add a path in front of the file if the result should not be </span>
+<a name="l00994"></a>00994 <span class="comment"># written to the html output directory.</span>
+<a name="l00995"></a>00995 <span class="comment"></span>
+<a name="l00996"></a>00996 <span class="comment">CHM_FILE               = </span>
+<a name="l00997"></a>00997 <span class="comment"></span>
+<a name="l00998"></a>00998 <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can </span>
+<a name="l00999"></a>00999 <span class="comment"># be used to specify the location (absolute path including file name) of </span>
+<a name="l01000"></a>01000 <span class="comment"># the HTML help compiler (hhc.exe). If non-empty doxygen will try to run </span>
+<a name="l01001"></a>01001 <span class="comment"># the HTML help compiler on the generated index.hhp.</span>
+<a name="l01002"></a>01002 <span class="comment"></span>
+<a name="l01003"></a>01003 <span class="comment">HHC_LOCATION           = </span>
+<a name="l01004"></a>01004 <span class="comment"></span>
+<a name="l01005"></a>01005 <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag </span>
+<a name="l01006"></a>01006 <span class="comment"># controls if a separate .chi index file is generated (YES) or that </span>
+<a name="l01007"></a>01007 <span class="comment"># it should be included in the master .chm file (NO).</span>
+<a name="l01008"></a>01008 <span class="comment"></span>
+<a name="l01009"></a>01009 <span class="comment">GENERATE_CHI           = NO</span>
+<a name="l01010"></a>01010 <span class="comment"></span>
+<a name="l01011"></a>01011 <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING </span>
+<a name="l01012"></a>01012 <span class="comment"># is used to encode HtmlHelp index (hhk), content (hhc) and project file </span>
+<a name="l01013"></a>01013 <span class="comment"># content.</span>
+<a name="l01014"></a>01014 <span class="comment"></span>
+<a name="l01015"></a>01015 <span class="comment">CHM_INDEX_ENCODING     = </span>
+<a name="l01016"></a>01016 <span class="comment"></span>
+<a name="l01017"></a>01017 <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag </span>
+<a name="l01018"></a>01018 <span class="comment"># controls whether a binary table of contents is generated (YES) or a </span>
+<a name="l01019"></a>01019 <span class="comment"># normal table of contents (NO) in the .chm file.</span>
+<a name="l01020"></a>01020 <span class="comment"></span>
+<a name="l01021"></a>01021 <span class="comment">BINARY_TOC             = NO</span>
+<a name="l01022"></a>01022 <span class="comment"></span>
+<a name="l01023"></a>01023 <span class="comment"># The TOC_EXPAND flag can be set to YES to add extra items for group members </span>
+<a name="l01024"></a>01024 <span class="comment"># to the contents of the HTML help documentation and to the tree view.</span>
+<a name="l01025"></a>01025 <span class="comment"></span>
+<a name="l01026"></a>01026 <span class="comment">TOC_EXPAND             = NO</span>
+<a name="l01027"></a>01027 <span class="comment"></span>
+<a name="l01028"></a>01028 <span class="comment"># If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and </span>
+<a name="l01029"></a>01029 <span class="comment"># QHP_VIRTUAL_FOLDER are set, an additional index file will be generated </span>
+<a name="l01030"></a>01030 <span class="comment"># that can be used as input for Qt&#39;s qhelpgenerator to generate a </span>
+<a name="l01031"></a>01031 <span class="comment"># Qt Compressed Help (.qch) of the generated HTML documentation.</span>
+<a name="l01032"></a>01032 <span class="comment"></span>
+<a name="l01033"></a>01033 <span class="comment">GENERATE_QHP           = NO</span>
+<a name="l01034"></a>01034 <span class="comment"></span>
+<a name="l01035"></a>01035 <span class="comment"># If the QHG_LOCATION tag is specified, the QCH_FILE tag can </span>
+<a name="l01036"></a>01036 <span class="comment"># be used to specify the file name of the resulting .qch file. </span>
+<a name="l01037"></a>01037 <span class="comment"># The path specified is relative to the HTML output folder.</span>
+<a name="l01038"></a>01038 <span class="comment"></span>
+<a name="l01039"></a>01039 <span class="comment">QCH_FILE               = </span>
+<a name="l01040"></a>01040 <span class="comment"></span>
+<a name="l01041"></a>01041 <span class="comment"># The QHP_NAMESPACE tag specifies the namespace to use when generating </span>
+<a name="l01042"></a>01042 <span class="comment"># Qt Help Project output. For more information please see </span>
+<a name="l01043"></a>01043 <span class="comment"># http://doc.trolltech.com/qthelpproject.html#namespace</span>
+<a name="l01044"></a>01044 <span class="comment"></span>
+<a name="l01045"></a>01045 <span class="comment">QHP_NAMESPACE          = org.doxygen.Project</span>
+<a name="l01046"></a>01046 <span class="comment"></span>
+<a name="l01047"></a>01047 <span class="comment"># The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating </span>
+<a name="l01048"></a>01048 <span class="comment"># Qt Help Project output. For more information please see </span>
+<a name="l01049"></a>01049 <span class="comment"># http://doc.trolltech.com/qthelpproject.html#virtual-folders</span>
+<a name="l01050"></a>01050 <span class="comment"></span>
+<a name="l01051"></a>01051 <span class="comment">QHP_VIRTUAL_FOLDER     = doc</span>
+<a name="l01052"></a>01052 <span class="comment"></span>
+<a name="l01053"></a>01053 <span class="comment"># If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to </span>
+<a name="l01054"></a>01054 <span class="comment"># add. For more information please see </span>
+<a name="l01055"></a>01055 <span class="comment"># http://doc.trolltech.com/qthelpproject.html#custom-filters</span>
+<a name="l01056"></a>01056 <span class="comment"></span>
+<a name="l01057"></a>01057 <span class="comment">QHP_CUST_FILTER_NAME   = </span>
+<a name="l01058"></a>01058 <span class="comment"></span>
+<a name="l01059"></a>01059 <span class="comment"># The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the </span>
+<a name="l01060"></a>01060 <span class="comment"># custom filter to add. For more information please see </span>
+<a name="l01061"></a>01061 <span class="comment"># &lt;a href=&quot;http://doc.trolltech.com/qthelpproject.html#custom-filters&quot;&gt; </span>
+<a name="l01062"></a>01062 <span class="comment"># Qt Help Project / Custom Filters&lt;/a&gt;.</span>
+<a name="l01063"></a>01063 <span class="comment"></span>
+<a name="l01064"></a>01064 <span class="comment">QHP_CUST_FILTER_ATTRS  = </span>
+<a name="l01065"></a>01065 <span class="comment"></span>
+<a name="l01066"></a>01066 <span class="comment"># The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this </span>
+<a name="l01067"></a>01067 <span class="comment"># project&#39;s </span>
+<a name="l01068"></a>01068 <span class="comment"># filter section matches. </span>
+<a name="l01069"></a>01069 <span class="comment"># &lt;a href=&quot;http://doc.trolltech.com/qthelpproject.html#filter-attributes&quot;&gt; </span>
+<a name="l01070"></a>01070 <span class="comment"># Qt Help Project / Filter Attributes&lt;/a&gt;.</span>
+<a name="l01071"></a>01071 <span class="comment"></span>
+<a name="l01072"></a>01072 <span class="comment">QHP_SECT_FILTER_ATTRS  = </span>
+<a name="l01073"></a>01073 <span class="comment"></span>
+<a name="l01074"></a>01074 <span class="comment"># If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can </span>
+<a name="l01075"></a>01075 <span class="comment"># be used to specify the location of Qt&#39;s qhelpgenerator. </span>
+<a name="l01076"></a>01076 <span class="comment"># If non-empty doxygen will try to run qhelpgenerator on the generated </span>
+<a name="l01077"></a>01077 <span class="comment"># .qhp file.</span>
+<a name="l01078"></a>01078 <span class="comment"></span>
+<a name="l01079"></a>01079 <span class="comment">QHG_LOCATION           = </span>
+<a name="l01080"></a>01080 <span class="comment"></span>
+<a name="l01081"></a>01081 <span class="comment"># If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files  </span>
+<a name="l01082"></a>01082 <span class="comment"># will be generated, which together with the HTML files, form an Eclipse help </span>
+<a name="l01083"></a>01083 <span class="comment"># plugin. To install this plugin and make it available under the help contents </span>
+<a name="l01084"></a>01084 <span class="comment"># menu in Eclipse, the contents of the directory containing the HTML and XML </span>
+<a name="l01085"></a>01085 <span class="comment"># files needs to be copied into the plugins directory of eclipse. The name of </span>
+<a name="l01086"></a>01086 <span class="comment"># the directory within the plugins directory should be the same as </span>
+<a name="l01087"></a>01087 <span class="comment"># the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before </span>
+<a name="l01088"></a>01088 <span class="comment"># the help appears.</span>
+<a name="l01089"></a>01089 <span class="comment"></span>
+<a name="l01090"></a>01090 <span class="comment">GENERATE_ECLIPSEHELP   = NO</span>
+<a name="l01091"></a>01091 <span class="comment"></span>
+<a name="l01092"></a>01092 <span class="comment"># A unique identifier for the eclipse help plugin. When installing the plugin </span>
+<a name="l01093"></a>01093 <span class="comment"># the directory name containing the HTML and XML files should also have </span>
+<a name="l01094"></a>01094 <span class="comment"># this name.</span>
+<a name="l01095"></a>01095 <span class="comment"></span>
+<a name="l01096"></a>01096 <span class="comment">ECLIPSE_DOC_ID         = org.doxygen.Project</span>
+<a name="l01097"></a>01097 <span class="comment"></span>
+<a name="l01098"></a>01098 <span class="comment"># The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) </span>
+<a name="l01099"></a>01099 <span class="comment"># at top of each HTML page. The value NO (the default) enables the index and </span>
+<a name="l01100"></a>01100 <span class="comment"># the value YES disables it. Since the tabs have the same information as the </span>
+<a name="l01101"></a>01101 <span class="comment"># navigation tree you can set this option to NO if you already set </span>
+<a name="l01102"></a>01102 <span class="comment"># GENERATE_TREEVIEW to YES.</span>
+<a name="l01103"></a>01103 <span class="comment"></span>
+<a name="l01104"></a>01104 <span class="comment">DISABLE_INDEX          = NO</span>
+<a name="l01105"></a>01105 <span class="comment"></span>
+<a name="l01106"></a>01106 <span class="comment"># The GENERATE_TREEVIEW tag is used to specify whether a tree-like index </span>
+<a name="l01107"></a>01107 <span class="comment"># structure should be generated to display hierarchical information. </span>
+<a name="l01108"></a>01108 <span class="comment"># If the tag value is set to YES, a side panel will be generated </span>
+<a name="l01109"></a>01109 <span class="comment"># containing a tree-like index structure (just like the one that </span>
+<a name="l01110"></a>01110 <span class="comment"># is generated for HTML Help). For this to work a browser that supports </span>
+<a name="l01111"></a>01111 <span class="comment"># JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). </span>
+<a name="l01112"></a>01112 <span class="comment"># Windows users are probably better off using the HTML help feature. </span>
+<a name="l01113"></a>01113 <span class="comment"># Since the tree basically has the same information as the tab index you </span>
+<a name="l01114"></a>01114 <span class="comment"># could consider to set DISABLE_INDEX to NO when enabling this option.</span>
+<a name="l01115"></a>01115 <span class="comment"></span>
+<a name="l01116"></a>01116 <span class="comment">GENERATE_TREEVIEW      = NO</span>
+<a name="l01117"></a>01117 <span class="comment"></span>
+<a name="l01118"></a>01118 <span class="comment"># The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values </span>
+<a name="l01119"></a>01119 <span class="comment"># (range [0,1..20]) that doxygen will group on one line in the generated HTML </span>
+<a name="l01120"></a>01120 <span class="comment"># documentation. Note that a value of 0 will completely suppress the enum </span>
+<a name="l01121"></a>01121 <span class="comment"># values from appearing in the overview section.</span>
+<a name="l01122"></a>01122 <span class="comment"></span>
+<a name="l01123"></a>01123 <span class="comment">ENUM_VALUES_PER_LINE   = 4</span>
+<a name="l01124"></a>01124 <span class="comment"></span>
+<a name="l01125"></a>01125 <span class="comment"># By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, </span>
+<a name="l01126"></a>01126 <span class="comment"># and Class Hierarchy pages using a tree view instead of an ordered list.</span>
+<a name="l01127"></a>01127 <span class="comment"></span>
+<a name="l01128"></a>01128 <span class="comment">USE_INLINE_TREES       = NO</span>
+<a name="l01129"></a>01129 <span class="comment"></span>
+<a name="l01130"></a>01130 <span class="comment"># If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be </span>
+<a name="l01131"></a>01131 <span class="comment"># used to set the initial width (in pixels) of the frame in which the tree </span>
+<a name="l01132"></a>01132 <span class="comment"># is shown.</span>
+<a name="l01133"></a>01133 <span class="comment"></span>
+<a name="l01134"></a>01134 <span class="comment">TREEVIEW_WIDTH         = 250</span>
+<a name="l01135"></a>01135 <span class="comment"></span>
+<a name="l01136"></a>01136 <span class="comment"># When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open </span>
+<a name="l01137"></a>01137 <span class="comment"># links to external symbols imported via tag files in a separate window.</span>
+<a name="l01138"></a>01138 <span class="comment"></span>
+<a name="l01139"></a>01139 <span class="comment">EXT_LINKS_IN_WINDOW    = NO</span>
+<a name="l01140"></a>01140 <span class="comment"></span>
+<a name="l01141"></a>01141 <span class="comment"># Use this tag to change the font size of Latex formulas included </span>
+<a name="l01142"></a>01142 <span class="comment"># as images in the HTML documentation. The default is 10. Note that </span>
+<a name="l01143"></a>01143 <span class="comment"># when you change the font size after a successful doxygen run you need </span>
+<a name="l01144"></a>01144 <span class="comment"># to manually remove any form_*.png images from the HTML output directory </span>
+<a name="l01145"></a>01145 <span class="comment"># to force them to be regenerated.</span>
+<a name="l01146"></a>01146 <span class="comment"></span>
+<a name="l01147"></a>01147 <span class="comment">FORMULA_FONTSIZE       = 10</span>
+<a name="l01148"></a>01148 <span class="comment"></span>
+<a name="l01149"></a>01149 <span class="comment"># Use the FORMULA_TRANPARENT tag to determine whether or not the images </span>
+<a name="l01150"></a>01150 <span class="comment"># generated for formulas are transparent PNGs. Transparent PNGs are </span>
+<a name="l01151"></a>01151 <span class="comment"># not supported properly for IE 6.0, but are supported on all modern browsers. </span>
+<a name="l01152"></a>01152 <span class="comment"># Note that when changing this option you need to delete any form_*.png files </span>
+<a name="l01153"></a>01153 <span class="comment"># in the HTML output before the changes have effect.</span>
+<a name="l01154"></a>01154 <span class="comment"></span>
+<a name="l01155"></a>01155 <span class="comment">FORMULA_TRANSPARENT    = YES</span>
+<a name="l01156"></a>01156 <span class="comment"></span>
+<a name="l01157"></a>01157 <span class="comment"># Enable the USE_MATHJAX option to render LaTeX formulas using MathJax </span>
+<a name="l01158"></a>01158 <span class="comment"># (see http://www.mathjax.org) which uses client side Javascript for the </span>
+<a name="l01159"></a>01159 <span class="comment"># rendering instead of using prerendered bitmaps. Use this if you do not </span>
+<a name="l01160"></a>01160 <span class="comment"># have LaTeX installed or if you want to formulas look prettier in the HTML </span>
+<a name="l01161"></a>01161 <span class="comment"># output. When enabled you also need to install MathJax separately and </span>
+<a name="l01162"></a>01162 <span class="comment"># configure the path to it using the MATHJAX_RELPATH option.</span>
+<a name="l01163"></a>01163 <span class="comment"></span>
+<a name="l01164"></a>01164 <span class="comment">USE_MATHJAX            = NO</span>
+<a name="l01165"></a>01165 <span class="comment"></span>
+<a name="l01166"></a>01166 <span class="comment"># When MathJax is enabled you need to specify the location relative to the </span>
+<a name="l01167"></a>01167 <span class="comment"># HTML output directory using the MATHJAX_RELPATH option. The destination </span>
+<a name="l01168"></a>01168 <span class="comment"># directory should contain the MathJax.js script. For instance, if the mathjax </span>
+<a name="l01169"></a>01169 <span class="comment"># directory is located at the same level as the HTML output directory, then </span>
+<a name="l01170"></a>01170 <span class="comment"># MATHJAX_RELPATH should be ../mathjax. The default value points to the </span>
+<a name="l01171"></a>01171 <span class="comment"># mathjax.org site, so you can quickly see the result without installing </span>
+<a name="l01172"></a>01172 <span class="comment"># MathJax, but it is strongly recommended to install a local copy of MathJax </span>
+<a name="l01173"></a>01173 <span class="comment"># before deployment.</span>
+<a name="l01174"></a>01174 <span class="comment"></span>
+<a name="l01175"></a>01175 <span class="comment">MATHJAX_RELPATH        = http://www.mathjax.org/mathjax</span>
+<a name="l01176"></a>01176 <span class="comment"></span>
+<a name="l01177"></a>01177 <span class="comment"># The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension </span>
+<a name="l01178"></a>01178 <span class="comment"># names that should be enabled during MathJax rendering.</span>
+<a name="l01179"></a>01179 <span class="comment"></span>
+<a name="l01180"></a>01180 <span class="comment">MATHJAX_EXTENSIONS     = </span>
+<a name="l01181"></a>01181 <span class="comment"></span>
+<a name="l01182"></a>01182 <span class="comment"># When the SEARCHENGINE tag is enabled doxygen will generate a search box </span>
+<a name="l01183"></a>01183 <span class="comment"># for the HTML output. The underlying search engine uses javascript </span>
+<a name="l01184"></a>01184 <span class="comment"># and DHTML and should work on any modern browser. Note that when using </span>
+<a name="l01185"></a>01185 <span class="comment"># HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets </span>
+<a name="l01186"></a>01186 <span class="comment"># (GENERATE_DOCSET) there is already a search function so this one should </span>
+<a name="l01187"></a>01187 <span class="comment"># typically be disabled. For large projects the javascript based search engine </span>
+<a name="l01188"></a>01188 <span class="comment"># can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.</span>
+<a name="l01189"></a>01189 <span class="comment"></span>
+<a name="l01190"></a>01190 <span class="comment">SEARCHENGINE           = NO</span>
+<a name="l01191"></a>01191 <span class="comment"></span>
+<a name="l01192"></a>01192 <span class="comment"># When the SERVER_BASED_SEARCH tag is enabled the search engine will be </span>
+<a name="l01193"></a>01193 <span class="comment"># implemented using a PHP enabled web server instead of at the web client </span>
+<a name="l01194"></a>01194 <span class="comment"># using Javascript. Doxygen will generate the search PHP script and index </span>
+<a name="l01195"></a>01195 <span class="comment"># file to put on the web server. The advantage of the server </span>
+<a name="l01196"></a>01196 <span class="comment"># based approach is that it scales better to large projects and allows </span>
+<a name="l01197"></a>01197 <span class="comment"># full text search. The disadvantages are that it is more difficult to setup </span>
+<a name="l01198"></a>01198 <span class="comment"># and does not have live searching capabilities.</span>
+<a name="l01199"></a>01199 <span class="comment"></span>
+<a name="l01200"></a>01200 <span class="comment">SERVER_BASED_SEARCH    = NO</span>
+<a name="l01201"></a>01201 <span class="comment"></span>
+<a name="l01202"></a>01202 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01203"></a>01203 <span class="comment"># configuration options related to the LaTeX output</span>
+<a name="l01204"></a>01204 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01205"></a>01205 <span class="comment"></span>
+<a name="l01206"></a>01206 <span class="comment"># If the GENERATE_LATEX tag is set to YES (the default) Doxygen will </span>
+<a name="l01207"></a>01207 <span class="comment"># generate Latex output.</span>
+<a name="l01208"></a>01208 <span class="comment"></span>
+<a name="l01209"></a>01209 <span class="comment">GENERATE_LATEX         = NO</span>
+<a name="l01210"></a>01210 <span class="comment"></span>
+<a name="l01211"></a>01211 <span class="comment"># The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. </span>
+<a name="l01212"></a>01212 <span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be </span>
+<a name="l01213"></a>01213 <span class="comment"># put in front of it. If left blank `latex&#39; will be used as the default path.</span>
+<a name="l01214"></a>01214 <span class="comment"></span>
+<a name="l01215"></a>01215 <span class="comment">LATEX_OUTPUT           = latex</span>
+<a name="l01216"></a>01216 <span class="comment"></span>
+<a name="l01217"></a>01217 <span class="comment"># The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be </span>
+<a name="l01218"></a>01218 <span class="comment"># invoked. If left blank `latex&#39; will be used as the default command name. </span>
+<a name="l01219"></a>01219 <span class="comment"># Note that when enabling USE_PDFLATEX this option is only used for </span>
+<a name="l01220"></a>01220 <span class="comment"># generating bitmaps for formulas in the HTML output, but not in the </span>
+<a name="l01221"></a>01221 <span class="comment"># Makefile that is written to the output directory.</span>
+<a name="l01222"></a>01222 <span class="comment"></span>
+<a name="l01223"></a>01223 <span class="comment">LATEX_CMD_NAME         = latex</span>
+<a name="l01224"></a>01224 <span class="comment"></span>
+<a name="l01225"></a>01225 <span class="comment"># The MAKEINDEX_CMD_NAME tag can be used to specify the command name to </span>
+<a name="l01226"></a>01226 <span class="comment"># generate index for LaTeX. If left blank `makeindex&#39; will be used as the </span>
+<a name="l01227"></a>01227 <span class="comment"># default command name.</span>
+<a name="l01228"></a>01228 <span class="comment"></span>
+<a name="l01229"></a>01229 <span class="comment">MAKEINDEX_CMD_NAME     = makeindex</span>
+<a name="l01230"></a>01230 <span class="comment"></span>
+<a name="l01231"></a>01231 <span class="comment"># If the COMPACT_LATEX tag is set to YES Doxygen generates more compact </span>
+<a name="l01232"></a>01232 <span class="comment"># LaTeX documents. This may be useful for small projects and may help to </span>
+<a name="l01233"></a>01233 <span class="comment"># save some trees in general.</span>
+<a name="l01234"></a>01234 <span class="comment"></span>
+<a name="l01235"></a>01235 <span class="comment">COMPACT_LATEX          = NO</span>
+<a name="l01236"></a>01236 <span class="comment"></span>
+<a name="l01237"></a>01237 <span class="comment"># The PAPER_TYPE tag can be used to set the paper type that is used </span>
+<a name="l01238"></a>01238 <span class="comment"># by the printer. Possible values are: a4, letter, legal and </span>
+<a name="l01239"></a>01239 <span class="comment"># executive. If left blank a4wide will be used.</span>
+<a name="l01240"></a>01240 <span class="comment"></span>
+<a name="l01241"></a>01241 <span class="comment">PAPER_TYPE             = a4wide</span>
+<a name="l01242"></a>01242 <span class="comment"></span>
+<a name="l01243"></a>01243 <span class="comment"># The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX </span>
+<a name="l01244"></a>01244 <span class="comment"># packages that should be included in the LaTeX output.</span>
+<a name="l01245"></a>01245 <span class="comment"></span>
+<a name="l01246"></a>01246 <span class="comment">EXTRA_PACKAGES         = </span>
+<a name="l01247"></a>01247 <span class="comment"></span>
+<a name="l01248"></a>01248 <span class="comment"># The LATEX_HEADER tag can be used to specify a personal LaTeX header for </span>
+<a name="l01249"></a>01249 <span class="comment"># the generated latex document. The header should contain everything until </span>
+<a name="l01250"></a>01250 <span class="comment"># the first chapter. If it is left blank doxygen will generate a </span>
+<a name="l01251"></a>01251 <span class="comment"># standard header. Notice: only use this tag if you know what you are doing!</span>
+<a name="l01252"></a>01252 <span class="comment"></span>
+<a name="l01253"></a>01253 <span class="comment">LATEX_HEADER           = </span>
+<a name="l01254"></a>01254 <span class="comment"></span>
+<a name="l01255"></a>01255 <span class="comment"># The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for </span>
+<a name="l01256"></a>01256 <span class="comment"># the generated latex document. The footer should contain everything after </span>
+<a name="l01257"></a>01257 <span class="comment"># the last chapter. If it is left blank doxygen will generate a </span>
+<a name="l01258"></a>01258 <span class="comment"># standard footer. Notice: only use this tag if you know what you are doing!</span>
+<a name="l01259"></a>01259 <span class="comment"></span>
+<a name="l01260"></a>01260 <span class="comment">LATEX_FOOTER           = </span>
+<a name="l01261"></a>01261 <span class="comment"></span>
+<a name="l01262"></a>01262 <span class="comment"># If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated </span>
+<a name="l01263"></a>01263 <span class="comment"># is prepared for conversion to pdf (using ps2pdf). The pdf file will </span>
+<a name="l01264"></a>01264 <span class="comment"># contain links (just like the HTML output) instead of page references </span>
+<a name="l01265"></a>01265 <span class="comment"># This makes the output suitable for online browsing using a pdf viewer.</span>
+<a name="l01266"></a>01266 <span class="comment"></span>
+<a name="l01267"></a>01267 <span class="comment">PDF_HYPERLINKS         = NO</span>
+<a name="l01268"></a>01268 <span class="comment"></span>
+<a name="l01269"></a>01269 <span class="comment"># If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of </span>
+<a name="l01270"></a>01270 <span class="comment"># plain latex in the generated Makefile. Set this option to YES to get a </span>
+<a name="l01271"></a>01271 <span class="comment"># higher quality PDF documentation.</span>
+<a name="l01272"></a>01272 <span class="comment"></span>
+<a name="l01273"></a>01273 <span class="comment">USE_PDFLATEX           = YES</span>
+<a name="l01274"></a>01274 <span class="comment"></span>
+<a name="l01275"></a>01275 <span class="comment"># If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. </span>
+<a name="l01276"></a>01276 <span class="comment"># command to the generated LaTeX files. This will instruct LaTeX to keep </span>
+<a name="l01277"></a>01277 <span class="comment"># running if errors occur, instead of asking the user for help. </span>
+<a name="l01278"></a>01278 <span class="comment"># This option is also used when generating formulas in HTML.</span>
+<a name="l01279"></a>01279 <span class="comment"></span>
+<a name="l01280"></a>01280 <span class="comment">LATEX_BATCHMODE        = NO</span>
+<a name="l01281"></a>01281 <span class="comment"></span>
+<a name="l01282"></a>01282 <span class="comment"># If LATEX_HIDE_INDICES is set to YES then doxygen will not </span>
+<a name="l01283"></a>01283 <span class="comment"># include the index chapters (such as File Index, Compound Index, etc.) </span>
+<a name="l01284"></a>01284 <span class="comment"># in the output.</span>
+<a name="l01285"></a>01285 <span class="comment"></span>
+<a name="l01286"></a>01286 <span class="comment">LATEX_HIDE_INDICES     = NO</span>
+<a name="l01287"></a>01287 <span class="comment"></span>
+<a name="l01288"></a>01288 <span class="comment"># If LATEX_SOURCE_CODE is set to YES then doxygen will include </span>
+<a name="l01289"></a>01289 <span class="comment"># source code with syntax highlighting in the LaTeX output. </span>
+<a name="l01290"></a>01290 <span class="comment"># Note that which sources are shown also depends on other settings </span>
+<a name="l01291"></a>01291 <span class="comment"># such as SOURCE_BROWSER.</span>
+<a name="l01292"></a>01292 <span class="comment"></span>
+<a name="l01293"></a>01293 <span class="comment">LATEX_SOURCE_CODE      = NO</span>
+<a name="l01294"></a>01294 <span class="comment"></span>
+<a name="l01295"></a>01295 <span class="comment"># The LATEX_BIB_STYLE tag can be used to specify the style to use for the </span>
+<a name="l01296"></a>01296 <span class="comment"># bibliography, e.g. plainnat, or ieeetr. The default style is &quot;plain&quot;. See </span>
+<a name="l01297"></a>01297 <span class="comment"># http://en.wikipedia.org/wiki/BibTeX for more info.</span>
+<a name="l01298"></a>01298 <span class="comment"></span>
+<a name="l01299"></a>01299 <span class="comment">LATEX_BIB_STYLE        = plain</span>
+<a name="l01300"></a>01300 <span class="comment"></span>
+<a name="l01301"></a>01301 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01302"></a>01302 <span class="comment"># configuration options related to the RTF output</span>
+<a name="l01303"></a>01303 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01304"></a>01304 <span class="comment"></span>
+<a name="l01305"></a>01305 <span class="comment"># If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output </span>
+<a name="l01306"></a>01306 <span class="comment"># The RTF output is optimized for Word 97 and may not look very pretty with </span>
+<a name="l01307"></a>01307 <span class="comment"># other RTF readers or editors.</span>
+<a name="l01308"></a>01308 <span class="comment"></span>
+<a name="l01309"></a>01309 <span class="comment">GENERATE_RTF           = NO</span>
+<a name="l01310"></a>01310 <span class="comment"></span>
+<a name="l01311"></a>01311 <span class="comment"># The RTF_OUTPUT tag is used to specify where the RTF docs will be put. </span>
+<a name="l01312"></a>01312 <span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be </span>
+<a name="l01313"></a>01313 <span class="comment"># put in front of it. If left blank `rtf&#39; will be used as the default path.</span>
+<a name="l01314"></a>01314 <span class="comment"></span>
+<a name="l01315"></a>01315 <span class="comment">RTF_OUTPUT             = glm.rtf</span>
+<a name="l01316"></a>01316 <span class="comment"></span>
+<a name="l01317"></a>01317 <span class="comment"># If the COMPACT_RTF tag is set to YES Doxygen generates more compact </span>
+<a name="l01318"></a>01318 <span class="comment"># RTF documents. This may be useful for small projects and may help to </span>
+<a name="l01319"></a>01319 <span class="comment"># save some trees in general.</span>
+<a name="l01320"></a>01320 <span class="comment"></span>
+<a name="l01321"></a>01321 <span class="comment">COMPACT_RTF            = NO</span>
+<a name="l01322"></a>01322 <span class="comment"></span>
+<a name="l01323"></a>01323 <span class="comment"># If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated </span>
+<a name="l01324"></a>01324 <span class="comment"># will contain hyperlink fields. The RTF file will </span>
+<a name="l01325"></a>01325 <span class="comment"># contain links (just like the HTML output) instead of page references. </span>
+<a name="l01326"></a>01326 <span class="comment"># This makes the output suitable for online browsing using WORD or other </span>
+<a name="l01327"></a>01327 <span class="comment"># programs which support those fields. </span>
+<a name="l01328"></a>01328 <span class="comment"># Note: wordpad (write) and others do not support links.</span>
+<a name="l01329"></a>01329 <span class="comment"></span>
+<a name="l01330"></a>01330 <span class="comment">RTF_HYPERLINKS         = YES</span>
+<a name="l01331"></a>01331 <span class="comment"></span>
+<a name="l01332"></a>01332 <span class="comment"># Load style sheet definitions from file. Syntax is similar to doxygen&#39;s </span>
+<a name="l01333"></a>01333 <span class="comment"># config file, i.e. a series of assignments. You only have to provide </span>
+<a name="l01334"></a>01334 <span class="comment"># replacements, missing definitions are set to their default value.</span>
+<a name="l01335"></a>01335 <span class="comment"></span>
+<a name="l01336"></a>01336 <span class="comment">RTF_STYLESHEET_FILE    = </span>
+<a name="l01337"></a>01337 <span class="comment"></span>
+<a name="l01338"></a>01338 <span class="comment"># Set optional variables used in the generation of an rtf document. </span>
+<a name="l01339"></a>01339 <span class="comment"># Syntax is similar to doxygen&#39;s config file.</span>
+<a name="l01340"></a>01340 <span class="comment"></span>
+<a name="l01341"></a>01341 <span class="comment">RTF_EXTENSIONS_FILE    = </span>
+<a name="l01342"></a>01342 <span class="comment"></span>
+<a name="l01343"></a>01343 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01344"></a>01344 <span class="comment"># configuration options related to the man page output</span>
+<a name="l01345"></a>01345 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01346"></a>01346 <span class="comment"></span>
+<a name="l01347"></a>01347 <span class="comment"># If the GENERATE_MAN tag is set to YES (the default) Doxygen will </span>
+<a name="l01348"></a>01348 <span class="comment"># generate man pages</span>
+<a name="l01349"></a>01349 <span class="comment"></span>
+<a name="l01350"></a>01350 <span class="comment">GENERATE_MAN           = NO</span>
+<a name="l01351"></a>01351 <span class="comment"></span>
+<a name="l01352"></a>01352 <span class="comment"># The MAN_OUTPUT tag is used to specify where the man pages will be put. </span>
+<a name="l01353"></a>01353 <span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be </span>
+<a name="l01354"></a>01354 <span class="comment"># put in front of it. If left blank `man&#39; will be used as the default path.</span>
+<a name="l01355"></a>01355 <span class="comment"></span>
+<a name="l01356"></a>01356 <span class="comment">MAN_OUTPUT             = man</span>
+<a name="l01357"></a>01357 <span class="comment"></span>
+<a name="l01358"></a>01358 <span class="comment"># The MAN_EXTENSION tag determines the extension that is added to </span>
+<a name="l01359"></a>01359 <span class="comment"># the generated man pages (default is the subroutine&#39;s section .3)</span>
+<a name="l01360"></a>01360 <span class="comment"></span>
+<a name="l01361"></a>01361 <span class="comment">MAN_EXTENSION          = .3</span>
+<a name="l01362"></a>01362 <span class="comment"></span>
+<a name="l01363"></a>01363 <span class="comment"># If the MAN_LINKS tag is set to YES and Doxygen generates man output, </span>
+<a name="l01364"></a>01364 <span class="comment"># then it will generate one additional man file for each entity </span>
+<a name="l01365"></a>01365 <span class="comment"># documented in the real man page(s). These additional files </span>
+<a name="l01366"></a>01366 <span class="comment"># only source the real man page, but without them the man command </span>
+<a name="l01367"></a>01367 <span class="comment"># would be unable to find the correct page. The default is NO.</span>
+<a name="l01368"></a>01368 <span class="comment"></span>
+<a name="l01369"></a>01369 <span class="comment">MAN_LINKS              = NO</span>
+<a name="l01370"></a>01370 <span class="comment"></span>
+<a name="l01371"></a>01371 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01372"></a>01372 <span class="comment"># configuration options related to the XML output</span>
+<a name="l01373"></a>01373 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01374"></a>01374 <span class="comment"></span>
+<a name="l01375"></a>01375 <span class="comment"># If the GENERATE_XML tag is set to YES Doxygen will </span>
+<a name="l01376"></a>01376 <span class="comment"># generate an XML file that captures the structure of </span>
+<a name="l01377"></a>01377 <span class="comment"># the code including all documentation.</span>
+<a name="l01378"></a>01378 <span class="comment"></span>
+<a name="l01379"></a>01379 <span class="comment">GENERATE_XML           = NO</span>
+<a name="l01380"></a>01380 <span class="comment"></span>
+<a name="l01381"></a>01381 <span class="comment"># The XML_OUTPUT tag is used to specify where the XML pages will be put. </span>
+<a name="l01382"></a>01382 <span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be </span>
+<a name="l01383"></a>01383 <span class="comment"># put in front of it. If left blank `xml&#39; will be used as the default path.</span>
+<a name="l01384"></a>01384 <span class="comment"></span>
+<a name="l01385"></a>01385 <span class="comment">XML_OUTPUT             = xml</span>
+<a name="l01386"></a>01386 <span class="comment"></span>
+<a name="l01387"></a>01387 <span class="comment"># The XML_SCHEMA tag can be used to specify an XML schema, </span>
+<a name="l01388"></a>01388 <span class="comment"># which can be used by a validating XML parser to check the </span>
+<a name="l01389"></a>01389 <span class="comment"># syntax of the XML files.</span>
+<a name="l01390"></a>01390 <span class="comment"></span>
+<a name="l01391"></a>01391 <span class="comment">XML_SCHEMA             = </span>
+<a name="l01392"></a>01392 <span class="comment"></span>
+<a name="l01393"></a>01393 <span class="comment"># The XML_DTD tag can be used to specify an XML DTD, </span>
+<a name="l01394"></a>01394 <span class="comment"># which can be used by a validating XML parser to check the </span>
+<a name="l01395"></a>01395 <span class="comment"># syntax of the XML files.</span>
+<a name="l01396"></a>01396 <span class="comment"></span>
+<a name="l01397"></a>01397 <span class="comment">XML_DTD                = </span>
+<a name="l01398"></a>01398 <span class="comment"></span>
+<a name="l01399"></a>01399 <span class="comment"># If the XML_PROGRAMLISTING tag is set to YES Doxygen will </span>
+<a name="l01400"></a>01400 <span class="comment"># dump the program listings (including syntax highlighting </span>
+<a name="l01401"></a>01401 <span class="comment"># and cross-referencing information) to the XML output. Note that </span>
+<a name="l01402"></a>01402 <span class="comment"># enabling this will significantly increase the size of the XML output.</span>
+<a name="l01403"></a>01403 <span class="comment"></span>
+<a name="l01404"></a>01404 <span class="comment">XML_PROGRAMLISTING     = YES</span>
+<a name="l01405"></a>01405 <span class="comment"></span>
+<a name="l01406"></a>01406 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01407"></a>01407 <span class="comment"># configuration options for the AutoGen Definitions output</span>
+<a name="l01408"></a>01408 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01409"></a>01409 <span class="comment"></span>
+<a name="l01410"></a>01410 <span class="comment"># If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will </span>
+<a name="l01411"></a>01411 <span class="comment"># generate an AutoGen Definitions (see autogen.sf.net) file </span>
+<a name="l01412"></a>01412 <span class="comment"># that captures the structure of the code including all </span>
+<a name="l01413"></a>01413 <span class="comment"># documentation. Note that this feature is still experimental </span>
+<a name="l01414"></a>01414 <span class="comment"># and incomplete at the moment.</span>
+<a name="l01415"></a>01415 <span class="comment"></span>
+<a name="l01416"></a>01416 <span class="comment">GENERATE_AUTOGEN_DEF   = NO</span>
+<a name="l01417"></a>01417 <span class="comment"></span>
+<a name="l01418"></a>01418 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01419"></a>01419 <span class="comment"># configuration options related to the Perl module output</span>
+<a name="l01420"></a>01420 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01421"></a>01421 <span class="comment"></span>
+<a name="l01422"></a>01422 <span class="comment"># If the GENERATE_PERLMOD tag is set to YES Doxygen will </span>
+<a name="l01423"></a>01423 <span class="comment"># generate a Perl module file that captures the structure of </span>
+<a name="l01424"></a>01424 <span class="comment"># the code including all documentation. Note that this </span>
+<a name="l01425"></a>01425 <span class="comment"># feature is still experimental and incomplete at the </span>
+<a name="l01426"></a>01426 <span class="comment"># moment.</span>
+<a name="l01427"></a>01427 <span class="comment"></span>
+<a name="l01428"></a>01428 <span class="comment">GENERATE_PERLMOD       = NO</span>
+<a name="l01429"></a>01429 <span class="comment"></span>
+<a name="l01430"></a>01430 <span class="comment"># If the PERLMOD_LATEX tag is set to YES Doxygen will generate </span>
+<a name="l01431"></a>01431 <span class="comment"># the necessary Makefile rules, Perl scripts and LaTeX code to be able </span>
+<a name="l01432"></a>01432 <span class="comment"># to generate PDF and DVI output from the Perl module output.</span>
+<a name="l01433"></a>01433 <span class="comment"></span>
+<a name="l01434"></a>01434 <span class="comment">PERLMOD_LATEX          = NO</span>
+<a name="l01435"></a>01435 <span class="comment"></span>
+<a name="l01436"></a>01436 <span class="comment"># If the PERLMOD_PRETTY tag is set to YES the Perl module output will be </span>
+<a name="l01437"></a>01437 <span class="comment"># nicely formatted so it can be parsed by a human reader.  This is useful </span>
+<a name="l01438"></a>01438 <span class="comment"># if you want to understand what is going on.  On the other hand, if this </span>
+<a name="l01439"></a>01439 <span class="comment"># tag is set to NO the size of the Perl module output will be much smaller </span>
+<a name="l01440"></a>01440 <span class="comment"># and Perl will parse it just the same.</span>
+<a name="l01441"></a>01441 <span class="comment"></span>
+<a name="l01442"></a>01442 <span class="comment">PERLMOD_PRETTY         = YES</span>
+<a name="l01443"></a>01443 <span class="comment"></span>
+<a name="l01444"></a>01444 <span class="comment"># The names of the make variables in the generated doxyrules.make file </span>
+<a name="l01445"></a>01445 <span class="comment"># are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. </span>
+<a name="l01446"></a>01446 <span class="comment"># This is useful so different doxyrules.make files included by the same </span>
+<a name="l01447"></a>01447 <span class="comment"># Makefile don&#39;t overwrite each other&#39;s variables.</span>
+<a name="l01448"></a>01448 <span class="comment"></span>
+<a name="l01449"></a>01449 <span class="comment">PERLMOD_MAKEVAR_PREFIX = </span>
+<a name="l01450"></a>01450 <span class="comment"></span>
+<a name="l01451"></a>01451 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01452"></a>01452 <span class="comment"># Configuration options related to the preprocessor</span>
+<a name="l01453"></a>01453 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01454"></a>01454 <span class="comment"></span>
+<a name="l01455"></a>01455 <span class="comment"># If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will </span>
+<a name="l01456"></a>01456 <span class="comment"># evaluate all C-preprocessor directives found in the sources and include </span>
+<a name="l01457"></a>01457 <span class="comment"># files.</span>
+<a name="l01458"></a>01458 <span class="comment"></span>
+<a name="l01459"></a>01459 <span class="comment">ENABLE_PREPROCESSING   = YES</span>
+<a name="l01460"></a>01460 <span class="comment"></span>
+<a name="l01461"></a>01461 <span class="comment"># If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro </span>
+<a name="l01462"></a>01462 <span class="comment"># names in the source code. If set to NO (the default) only conditional </span>
+<a name="l01463"></a>01463 <span class="comment"># compilation will be performed. Macro expansion can be done in a controlled </span>
+<a name="l01464"></a>01464 <span class="comment"># way by setting EXPAND_ONLY_PREDEF to YES.</span>
+<a name="l01465"></a>01465 <span class="comment"></span>
+<a name="l01466"></a>01466 <span class="comment">MACRO_EXPANSION        = NO</span>
+<a name="l01467"></a>01467 <span class="comment"></span>
+<a name="l01468"></a>01468 <span class="comment"># If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES </span>
+<a name="l01469"></a>01469 <span class="comment"># then the macro expansion is limited to the macros specified with the </span>
+<a name="l01470"></a>01470 <span class="comment"># PREDEFINED and EXPAND_AS_DEFINED tags.</span>
+<a name="l01471"></a>01471 <span class="comment"></span>
+<a name="l01472"></a>01472 <span class="comment">EXPAND_ONLY_PREDEF     = NO</span>
+<a name="l01473"></a>01473 <span class="comment"></span>
+<a name="l01474"></a>01474 <span class="comment"># If the SEARCH_INCLUDES tag is set to YES (the default) the includes files </span>
+<a name="l01475"></a>01475 <span class="comment"># pointed to by INCLUDE_PATH will be searched when a #include is found.</span>
+<a name="l01476"></a>01476 <span class="comment"></span>
+<a name="l01477"></a>01477 <span class="comment">SEARCH_INCLUDES        = YES</span>
+<a name="l01478"></a>01478 <span class="comment"></span>
+<a name="l01479"></a>01479 <span class="comment"># The INCLUDE_PATH tag can be used to specify one or more directories that </span>
+<a name="l01480"></a>01480 <span class="comment"># contain include files that are not input files but should be processed by </span>
+<a name="l01481"></a>01481 <span class="comment"># the preprocessor.</span>
+<a name="l01482"></a>01482 <span class="comment"></span>
+<a name="l01483"></a>01483 <span class="comment">INCLUDE_PATH           = </span>
+<a name="l01484"></a>01484 <span class="comment"></span>
+<a name="l01485"></a>01485 <span class="comment"># You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard </span>
+<a name="l01486"></a>01486 <span class="comment"># patterns (like *.h and *.hpp) to filter out the header-files in the </span>
+<a name="l01487"></a>01487 <span class="comment"># directories. If left blank, the patterns specified with FILE_PATTERNS will </span>
+<a name="l01488"></a>01488 <span class="comment"># be used.</span>
+<a name="l01489"></a>01489 <span class="comment"></span>
+<a name="l01490"></a>01490 <span class="comment">INCLUDE_FILE_PATTERNS  = </span>
+<a name="l01491"></a>01491 <span class="comment"></span>
+<a name="l01492"></a>01492 <span class="comment"># The PREDEFINED tag can be used to specify one or more macro names that </span>
+<a name="l01493"></a>01493 <span class="comment"># are defined before the preprocessor is started (similar to the -D option of </span>
+<a name="l01494"></a>01494 <span class="comment"># gcc). The argument of the tag is a list of macros of the form: name </span>
+<a name="l01495"></a>01495 <span class="comment"># or name=definition (no spaces). If the definition and the = are </span>
+<a name="l01496"></a>01496 <span class="comment"># omitted =1 is assumed. To prevent a macro definition from being </span>
+<a name="l01497"></a>01497 <span class="comment"># undefined via #undef or recursively expanded use the := operator </span>
+<a name="l01498"></a>01498 <span class="comment"># instead of the = operator.</span>
+<a name="l01499"></a>01499 <span class="comment"></span>
+<a name="l01500"></a>01500 <span class="comment">PREDEFINED             = </span>
+<a name="l01501"></a>01501 <span class="comment"></span>
+<a name="l01502"></a>01502 <span class="comment"># If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then </span>
+<a name="l01503"></a>01503 <span class="comment"># this tag can be used to specify a list of macro names that should be expanded. </span>
+<a name="l01504"></a>01504 <span class="comment"># The macro definition that is found in the sources will be used. </span>
+<a name="l01505"></a>01505 <span class="comment"># Use the PREDEFINED tag if you want to use a different macro definition that </span>
+<a name="l01506"></a>01506 <span class="comment"># overrules the definition found in the source code.</span>
+<a name="l01507"></a>01507 <span class="comment"></span>
+<a name="l01508"></a>01508 <span class="comment">EXPAND_AS_DEFINED      = </span>
+<a name="l01509"></a>01509 <span class="comment"></span>
+<a name="l01510"></a>01510 <span class="comment"># If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then </span>
+<a name="l01511"></a>01511 <span class="comment"># doxygen&#39;s preprocessor will remove all references to function-like macros </span>
+<a name="l01512"></a>01512 <span class="comment"># that are alone on a line, have an all uppercase name, and do not end with a </span>
+<a name="l01513"></a>01513 <span class="comment"># semicolon, because these will confuse the parser if not removed.</span>
+<a name="l01514"></a>01514 <span class="comment"></span>
+<a name="l01515"></a>01515 <span class="comment">SKIP_FUNCTION_MACROS   = YES</span>
+<a name="l01516"></a>01516 <span class="comment"></span>
+<a name="l01517"></a>01517 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01518"></a>01518 <span class="comment"># Configuration::additions related to external references</span>
+<a name="l01519"></a>01519 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01520"></a>01520 <span class="comment"></span>
+<a name="l01521"></a>01521 <span class="comment"># The TAGFILES option can be used to specify one or more tagfiles. </span>
+<a name="l01522"></a>01522 <span class="comment"># Optionally an initial location of the external documentation </span>
+<a name="l01523"></a>01523 <span class="comment"># can be added for each tagfile. The format of a tag file without </span>
+<a name="l01524"></a>01524 <span class="comment"># this location is as follows: </span>
+<a name="l01525"></a>01525 <span class="comment">#   TAGFILES = file1 file2 ... </span>
+<a name="l01526"></a>01526 <span class="comment"># Adding location for the tag files is done as follows: </span>
+<a name="l01527"></a>01527 <span class="comment">#   TAGFILES = file1=loc1 &quot;file2 = loc2&quot; ... </span>
+<a name="l01528"></a>01528 <span class="comment"># where &quot;loc1&quot; and &quot;loc2&quot; can be relative or absolute paths or </span>
+<a name="l01529"></a>01529 <span class="comment"># URLs. If a location is present for each tag, the installdox tool </span>
+<a name="l01530"></a>01530 <span class="comment"># does not have to be run to correct the links. </span>
+<a name="l01531"></a>01531 <span class="comment"># Note that each tag file must have a unique name </span>
+<a name="l01532"></a>01532 <span class="comment"># (where the name does NOT include the path) </span>
+<a name="l01533"></a>01533 <span class="comment"># If a tag file is not located in the directory in which doxygen </span>
+<a name="l01534"></a>01534 <span class="comment"># is run, you must also specify the path to the tagfile here.</span>
+<a name="l01535"></a>01535 <span class="comment"></span>
+<a name="l01536"></a>01536 <span class="comment">TAGFILES               = </span>
+<a name="l01537"></a>01537 <span class="comment"></span>
+<a name="l01538"></a>01538 <span class="comment"># When a file name is specified after GENERATE_TAGFILE, doxygen will create </span>
+<a name="l01539"></a>01539 <span class="comment"># a tag file that is based on the input files it reads.</span>
+<a name="l01540"></a>01540 <span class="comment"></span>
+<a name="l01541"></a>01541 <span class="comment">GENERATE_TAGFILE       = </span>
+<a name="l01542"></a>01542 <span class="comment"></span>
+<a name="l01543"></a>01543 <span class="comment"># If the ALLEXTERNALS tag is set to YES all external classes will be listed </span>
+<a name="l01544"></a>01544 <span class="comment"># in the class index. If set to NO only the inherited external classes </span>
+<a name="l01545"></a>01545 <span class="comment"># will be listed.</span>
+<a name="l01546"></a>01546 <span class="comment"></span>
+<a name="l01547"></a>01547 <span class="comment">ALLEXTERNALS           = NO</span>
+<a name="l01548"></a>01548 <span class="comment"></span>
+<a name="l01549"></a>01549 <span class="comment"># If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed </span>
+<a name="l01550"></a>01550 <span class="comment"># in the modules index. If set to NO, only the current project&#39;s groups will </span>
+<a name="l01551"></a>01551 <span class="comment"># be listed.</span>
+<a name="l01552"></a>01552 <span class="comment"></span>
+<a name="l01553"></a>01553 <span class="comment">EXTERNAL_GROUPS        = YES</span>
+<a name="l01554"></a>01554 <span class="comment"></span>
+<a name="l01555"></a>01555 <span class="comment"># The PERL_PATH should be the absolute path and name of the perl script </span>
+<a name="l01556"></a>01556 <span class="comment"># interpreter (i.e. the result of `which perl&#39;).</span>
+<a name="l01557"></a>01557 <span class="comment"></span>
+<a name="l01558"></a>01558 <span class="comment">PERL_PATH              = /usr/bin/perl</span>
+<a name="l01559"></a>01559 <span class="comment"></span>
+<a name="l01560"></a>01560 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01561"></a>01561 <span class="comment"># Configuration options related to the dot tool</span>
+<a name="l01562"></a>01562 <span class="comment">#---------------------------------------------------------------------------</span>
+<a name="l01563"></a>01563 <span class="comment"></span>
+<a name="l01564"></a>01564 <span class="comment"># If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will </span>
+<a name="l01565"></a>01565 <span class="comment"># generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base </span>
+<a name="l01566"></a>01566 <span class="comment"># or super classes. Setting the tag to NO turns the diagrams off. Note that </span>
+<a name="l01567"></a>01567 <span class="comment"># this option also works with HAVE_DOT disabled, but it is recommended to </span>
+<a name="l01568"></a>01568 <span class="comment"># install and use dot, since it yields more powerful graphs.</span>
+<a name="l01569"></a>01569 <span class="comment"></span>
+<a name="l01570"></a>01570 <span class="comment">CLASS_DIAGRAMS         = YES</span>
+<a name="l01571"></a>01571 <span class="comment"></span>
+<a name="l01572"></a>01572 <span class="comment"># You can define message sequence charts within doxygen comments using the \msc </span>
+<a name="l01573"></a>01573 <span class="comment"># command. Doxygen will then run the mscgen tool (see </span>
+<a name="l01574"></a>01574 <span class="comment"># http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the </span>
+<a name="l01575"></a>01575 <span class="comment"># documentation. The MSCGEN_PATH tag allows you to specify the directory where </span>
+<a name="l01576"></a>01576 <span class="comment"># the mscgen tool resides. If left empty the tool is assumed to be found in the </span>
+<a name="l01577"></a>01577 <span class="comment"># default search path.</span>
+<a name="l01578"></a>01578 <span class="comment"></span>
+<a name="l01579"></a>01579 <span class="comment">MSCGEN_PATH            = </span>
+<a name="l01580"></a>01580 <span class="comment"></span>
+<a name="l01581"></a>01581 <span class="comment"># If set to YES, the inheritance and collaboration graphs will hide </span>
+<a name="l01582"></a>01582 <span class="comment"># inheritance and usage relations if the target is undocumented </span>
+<a name="l01583"></a>01583 <span class="comment"># or is not a class.</span>
+<a name="l01584"></a>01584 <span class="comment"></span>
+<a name="l01585"></a>01585 <span class="comment">HIDE_UNDOC_RELATIONS   = YES</span>
+<a name="l01586"></a>01586 <span class="comment"></span>
+<a name="l01587"></a>01587 <span class="comment"># If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is </span>
+<a name="l01588"></a>01588 <span class="comment"># available from the path. This tool is part of Graphviz, a graph visualization </span>
+<a name="l01589"></a>01589 <span class="comment"># toolkit from AT&amp;T and Lucent Bell Labs. The other options in this section </span>
+<a name="l01590"></a>01590 <span class="comment"># have no effect if this option is set to NO (the default)</span>
+<a name="l01591"></a>01591 <span class="comment"></span>
+<a name="l01592"></a>01592 <span class="comment">HAVE_DOT               = NO</span>
+<a name="l01593"></a>01593 <span class="comment"></span>
+<a name="l01594"></a>01594 <span class="comment"># The DOT_NUM_THREADS specifies the number of dot invocations doxygen is </span>
+<a name="l01595"></a>01595 <span class="comment"># allowed to run in parallel. When set to 0 (the default) doxygen will </span>
+<a name="l01596"></a>01596 <span class="comment"># base this on the number of processors available in the system. You can set it </span>
+<a name="l01597"></a>01597 <span class="comment"># explicitly to a value larger than 0 to get control over the balance </span>
+<a name="l01598"></a>01598 <span class="comment"># between CPU load and processing speed.</span>
+<a name="l01599"></a>01599 <span class="comment"></span>
+<a name="l01600"></a>01600 <span class="comment">DOT_NUM_THREADS        = 0</span>
+<a name="l01601"></a>01601 <span class="comment"></span>
+<a name="l01602"></a>01602 <span class="comment"># By default doxygen will use the Helvetica font for all dot files that </span>
+<a name="l01603"></a>01603 <span class="comment"># doxygen generates. When you want a differently looking font you can specify </span>
+<a name="l01604"></a>01604 <span class="comment"># the font name using DOT_FONTNAME. You need to make sure dot is able to find </span>
+<a name="l01605"></a>01605 <span class="comment"># the font, which can be done by putting it in a standard location or by setting </span>
+<a name="l01606"></a>01606 <span class="comment"># the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the </span>
+<a name="l01607"></a>01607 <span class="comment"># directory containing the font.</span>
+<a name="l01608"></a>01608 <span class="comment"></span>
+<a name="l01609"></a>01609 <span class="comment">DOT_FONTNAME           = FreeSans</span>
+<a name="l01610"></a>01610 <span class="comment"></span>
+<a name="l01611"></a>01611 <span class="comment"># The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. </span>
+<a name="l01612"></a>01612 <span class="comment"># The default size is 10pt.</span>
+<a name="l01613"></a>01613 <span class="comment"></span>
+<a name="l01614"></a>01614 <span class="comment">DOT_FONTSIZE           = 10</span>
+<a name="l01615"></a>01615 <span class="comment"></span>
+<a name="l01616"></a>01616 <span class="comment"># By default doxygen will tell dot to use the Helvetica font. </span>
+<a name="l01617"></a>01617 <span class="comment"># If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to </span>
+<a name="l01618"></a>01618 <span class="comment"># set the path where dot can find it.</span>
+<a name="l01619"></a>01619 <span class="comment"></span>
+<a name="l01620"></a>01620 <span class="comment">DOT_FONTPATH           = </span>
+<a name="l01621"></a>01621 <span class="comment"></span>
+<a name="l01622"></a>01622 <span class="comment"># If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen </span>
+<a name="l01623"></a>01623 <span class="comment"># will generate a graph for each documented class showing the direct and </span>
+<a name="l01624"></a>01624 <span class="comment"># indirect inheritance relations. Setting this tag to YES will force the </span>
+<a name="l01625"></a>01625 <span class="comment"># CLASS_DIAGRAMS tag to NO.</span>
+<a name="l01626"></a>01626 <span class="comment"></span>
+<a name="l01627"></a>01627 <span class="comment">CLASS_GRAPH            = YES</span>
+<a name="l01628"></a>01628 <span class="comment"></span>
+<a name="l01629"></a>01629 <span class="comment"># If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen </span>
+<a name="l01630"></a>01630 <span class="comment"># will generate a graph for each documented class showing the direct and </span>
+<a name="l01631"></a>01631 <span class="comment"># indirect implementation dependencies (inheritance, containment, and </span>
+<a name="l01632"></a>01632 <span class="comment"># class references variables) of the class with other documented classes.</span>
+<a name="l01633"></a>01633 <span class="comment"></span>
+<a name="l01634"></a>01634 <span class="comment">COLLABORATION_GRAPH    = YES</span>
+<a name="l01635"></a>01635 <span class="comment"></span>
+<a name="l01636"></a>01636 <span class="comment"># If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen </span>
+<a name="l01637"></a>01637 <span class="comment"># will generate a graph for groups, showing the direct groups dependencies</span>
+<a name="l01638"></a>01638 <span class="comment"></span>
+<a name="l01639"></a>01639 <span class="comment">GROUP_GRAPHS           = YES</span>
+<a name="l01640"></a>01640 <span class="comment"></span>
+<a name="l01641"></a>01641 <span class="comment"># If the UML_LOOK tag is set to YES doxygen will generate inheritance and </span>
+<a name="l01642"></a>01642 <span class="comment"># collaboration diagrams in a style similar to the OMG&#39;s Unified Modeling </span>
+<a name="l01643"></a>01643 <span class="comment"># Language.</span>
+<a name="l01644"></a>01644 <span class="comment"></span>
+<a name="l01645"></a>01645 <span class="comment">UML_LOOK               = NO</span>
+<a name="l01646"></a>01646 <span class="comment"></span>
+<a name="l01647"></a>01647 <span class="comment"># If set to YES, the inheritance and collaboration graphs will show the </span>
+<a name="l01648"></a>01648 <span class="comment"># relations between templates and their instances.</span>
+<a name="l01649"></a>01649 <span class="comment"></span>
+<a name="l01650"></a>01650 <span class="comment">TEMPLATE_RELATIONS     = NO</span>
+<a name="l01651"></a>01651 <span class="comment"></span>
+<a name="l01652"></a>01652 <span class="comment"># If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT </span>
+<a name="l01653"></a>01653 <span class="comment"># tags are set to YES then doxygen will generate a graph for each documented </span>
+<a name="l01654"></a>01654 <span class="comment"># file showing the direct and indirect include dependencies of the file with </span>
+<a name="l01655"></a>01655 <span class="comment"># other documented files.</span>
+<a name="l01656"></a>01656 <span class="comment"></span>
+<a name="l01657"></a>01657 <span class="comment">INCLUDE_GRAPH          = YES</span>
+<a name="l01658"></a>01658 <span class="comment"></span>
+<a name="l01659"></a>01659 <span class="comment"># If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and </span>
+<a name="l01660"></a>01660 <span class="comment"># HAVE_DOT tags are set to YES then doxygen will generate a graph for each </span>
+<a name="l01661"></a>01661 <span class="comment"># documented header file showing the documented files that directly or </span>
+<a name="l01662"></a>01662 <span class="comment"># indirectly include this file.</span>
+<a name="l01663"></a>01663 <span class="comment"></span>
+<a name="l01664"></a>01664 <span class="comment">INCLUDED_BY_GRAPH      = YES</span>
+<a name="l01665"></a>01665 <span class="comment"></span>
+<a name="l01666"></a>01666 <span class="comment"># If the CALL_GRAPH and HAVE_DOT options are set to YES then </span>
+<a name="l01667"></a>01667 <span class="comment"># doxygen will generate a call dependency graph for every global function </span>
+<a name="l01668"></a>01668 <span class="comment"># or class method. Note that enabling this option will significantly increase </span>
+<a name="l01669"></a>01669 <span class="comment"># the time of a run. So in most cases it will be better to enable call graphs </span>
+<a name="l01670"></a>01670 <span class="comment"># for selected functions only using the \callgraph command.</span>
+<a name="l01671"></a>01671 <span class="comment"></span>
+<a name="l01672"></a>01672 <span class="comment">CALL_GRAPH             = YES</span>
+<a name="l01673"></a>01673 <span class="comment"></span>
+<a name="l01674"></a>01674 <span class="comment"># If the CALLER_GRAPH and HAVE_DOT tags are set to YES then </span>
+<a name="l01675"></a>01675 <span class="comment"># doxygen will generate a caller dependency graph for every global function </span>
+<a name="l01676"></a>01676 <span class="comment"># or class method. Note that enabling this option will significantly increase </span>
+<a name="l01677"></a>01677 <span class="comment"># the time of a run. So in most cases it will be better to enable caller </span>
+<a name="l01678"></a>01678 <span class="comment"># graphs for selected functions only using the \callergraph command.</span>
+<a name="l01679"></a>01679 <span class="comment"></span>
+<a name="l01680"></a>01680 <span class="comment">CALLER_GRAPH           = YES</span>
+<a name="l01681"></a>01681 <span class="comment"></span>
+<a name="l01682"></a>01682 <span class="comment"># If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen </span>
+<a name="l01683"></a>01683 <span class="comment"># will generate a graphical hierarchy of all classes instead of a textual one.</span>
+<a name="l01684"></a>01684 <span class="comment"></span>
+<a name="l01685"></a>01685 <span class="comment">GRAPHICAL_HIERARCHY    = YES</span>
+<a name="l01686"></a>01686 <span class="comment"></span>
+<a name="l01687"></a>01687 <span class="comment"># If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES </span>
+<a name="l01688"></a>01688 <span class="comment"># then doxygen will show the dependencies a directory has on other directories </span>
+<a name="l01689"></a>01689 <span class="comment"># in a graphical way. The dependency relations are determined by the #include </span>
+<a name="l01690"></a>01690 <span class="comment"># relations between the files in the directories.</span>
+<a name="l01691"></a>01691 <span class="comment"></span>
+<a name="l01692"></a>01692 <span class="comment">DIRECTORY_GRAPH        = YES</span>
+<a name="l01693"></a>01693 <span class="comment"></span>
+<a name="l01694"></a>01694 <span class="comment"># The DOT_IMAGE_FORMAT tag can be used to set the image format of the images </span>
+<a name="l01695"></a>01695 <span class="comment"># generated by dot. Possible values are svg, png, jpg, or gif. </span>
+<a name="l01696"></a>01696 <span class="comment"># If left blank png will be used. If you choose svg you need to set </span>
+<a name="l01697"></a>01697 <span class="comment"># HTML_FILE_EXTENSION to xhtml in order to make the SVG files </span>
+<a name="l01698"></a>01698 <span class="comment"># visible in IE 9+ (other browsers do not have this requirement).</span>
+<a name="l01699"></a>01699 <span class="comment"></span>
+<a name="l01700"></a>01700 <span class="comment">DOT_IMAGE_FORMAT       = png</span>
+<a name="l01701"></a>01701 <span class="comment"></span>
+<a name="l01702"></a>01702 <span class="comment"># If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to </span>
+<a name="l01703"></a>01703 <span class="comment"># enable generation of interactive SVG images that allow zooming and panning. </span>
+<a name="l01704"></a>01704 <span class="comment"># Note that this requires a modern browser other than Internet Explorer. </span>
+<a name="l01705"></a>01705 <span class="comment"># Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you </span>
+<a name="l01706"></a>01706 <span class="comment"># need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files </span>
+<a name="l01707"></a>01707 <span class="comment"># visible. Older versions of IE do not have SVG support.</span>
+<a name="l01708"></a>01708 <span class="comment"></span>
+<a name="l01709"></a>01709 <span class="comment">INTERACTIVE_SVG        = NO</span>
+<a name="l01710"></a>01710 <span class="comment"></span>
+<a name="l01711"></a>01711 <span class="comment"># The tag DOT_PATH can be used to specify the path where the dot tool can be </span>
+<a name="l01712"></a>01712 <span class="comment"># found. If left blank, it is assumed the dot tool can be found in the path.</span>
+<a name="l01713"></a>01713 <span class="comment"></span>
+<a name="l01714"></a>01714 <span class="comment">DOT_PATH               = </span>
+<a name="l01715"></a>01715 <span class="comment"></span>
+<a name="l01716"></a>01716 <span class="comment"># The DOTFILE_DIRS tag can be used to specify one or more directories that </span>
+<a name="l01717"></a>01717 <span class="comment"># contain dot files that are included in the documentation (see the </span>
+<a name="l01718"></a>01718 <span class="comment"># \dotfile command).</span>
+<a name="l01719"></a>01719 <span class="comment"></span>
+<a name="l01720"></a>01720 <span class="comment">DOTFILE_DIRS           = </span>
+<a name="l01721"></a>01721 <span class="comment"></span>
+<a name="l01722"></a>01722 <span class="comment"># The MSCFILE_DIRS tag can be used to specify one or more directories that </span>
+<a name="l01723"></a>01723 <span class="comment"># contain msc files that are included in the documentation (see the </span>
+<a name="l01724"></a>01724 <span class="comment"># \mscfile command).</span>
+<a name="l01725"></a>01725 <span class="comment"></span>
+<a name="l01726"></a>01726 <span class="comment">MSCFILE_DIRS           = </span>
+<a name="l01727"></a>01727 <span class="comment"></span>
+<a name="l01728"></a>01728 <span class="comment"># The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of </span>
+<a name="l01729"></a>01729 <span class="comment"># nodes that will be shown in the graph. If the number of nodes in a graph </span>
+<a name="l01730"></a>01730 <span class="comment"># becomes larger than this value, doxygen will truncate the graph, which is </span>
+<a name="l01731"></a>01731 <span class="comment"># visualized by representing a node as a red box. Note that doxygen if the </span>
+<a name="l01732"></a>01732 <span class="comment"># number of direct children of the root node in a graph is already larger than </span>
+<a name="l01733"></a>01733 <span class="comment"># DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note </span>
+<a name="l01734"></a>01734 <span class="comment"># that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.</span>
+<a name="l01735"></a>01735 <span class="comment"></span>
+<a name="l01736"></a>01736 <span class="comment">DOT_GRAPH_MAX_NODES    = 50</span>
+<a name="l01737"></a>01737 <span class="comment"></span>
+<a name="l01738"></a>01738 <span class="comment"># The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the </span>
+<a name="l01739"></a>01739 <span class="comment"># graphs generated by dot. A depth value of 3 means that only nodes reachable </span>
+<a name="l01740"></a>01740 <span class="comment"># from the root by following a path via at most 3 edges will be shown. Nodes </span>
+<a name="l01741"></a>01741 <span class="comment"># that lay further from the root node will be omitted. Note that setting this </span>
+<a name="l01742"></a>01742 <span class="comment"># option to 1 or 2 may greatly reduce the computation time needed for large </span>
+<a name="l01743"></a>01743 <span class="comment"># code bases. Also note that the size of a graph can be further restricted by </span>
+<a name="l01744"></a>01744 <span class="comment"># DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.</span>
+<a name="l01745"></a>01745 <span class="comment"></span>
+<a name="l01746"></a>01746 <span class="comment">MAX_DOT_GRAPH_DEPTH    = 1000</span>
+<a name="l01747"></a>01747 <span class="comment"></span>
+<a name="l01748"></a>01748 <span class="comment"># Set the DOT_TRANSPARENT tag to YES to generate images with a transparent </span>
+<a name="l01749"></a>01749 <span class="comment"># background. This is disabled by default, because dot on Windows does not </span>
+<a name="l01750"></a>01750 <span class="comment"># seem to support this out of the box. Warning: Depending on the platform used, </span>
+<a name="l01751"></a>01751 <span class="comment"># enabling this option may lead to badly anti-aliased labels on the edges of </span>
+<a name="l01752"></a>01752 <span class="comment"># a graph (i.e. they become hard to read).</span>
+<a name="l01753"></a>01753 <span class="comment"></span>
+<a name="l01754"></a>01754 <span class="comment">DOT_TRANSPARENT        = NO</span>
+<a name="l01755"></a>01755 <span class="comment"></span>
+<a name="l01756"></a>01756 <span class="comment"># Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output </span>
+<a name="l01757"></a>01757 <span class="comment"># files in one run (i.e. multiple -o and -T options on the command line). This </span>
+<a name="l01758"></a>01758 <span class="comment"># makes dot run faster, but since only newer versions of dot (&gt;1.8.10) </span>
+<a name="l01759"></a>01759 <span class="comment"># support this, this feature is disabled by default.</span>
+<a name="l01760"></a>01760 <span class="comment"></span>
+<a name="l01761"></a>01761 <span class="comment">DOT_MULTI_TARGETS      = NO</span>
+<a name="l01762"></a>01762 <span class="comment"></span>
+<a name="l01763"></a>01763 <span class="comment"># If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will </span>
+<a name="l01764"></a>01764 <span class="comment"># generate a legend page explaining the meaning of the various boxes and </span>
+<a name="l01765"></a>01765 <span class="comment"># arrows in the dot generated graphs.</span>
+<a name="l01766"></a>01766 <span class="comment"></span>
+<a name="l01767"></a>01767 <span class="comment">GENERATE_LEGEND        = YES</span>
+<a name="l01768"></a>01768 <span class="comment"></span>
+<a name="l01769"></a>01769 <span class="comment"># If the DOT_CLEANUP tag is set to YES (the default) Doxygen will </span>
+<a name="l01770"></a>01770 <span class="comment"># remove the intermediate dot files that are used to generate </span>
+<a name="l01771"></a>01771 <span class="comment"># the various graphs.</span>
+<a name="l01772"></a>01772 <span class="comment"></span>
+<a name="l01773"></a>01773 <span class="comment">DOT_CLEANUP            = YES</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 23
doc/api-0.9.3/a00051.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>gradient_paint.hpp File Reference</title>
+<title>matrix_access.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,42 +49,30 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">gradient_paint.hpp File Reference</div>  </div>
-</div>
+<div class="title">matrix_access.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00051_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gac1242f716beadc6ee8404ddfea0b6674">linearGradient</a> (detail::tvec2&lt; valType &gt; const &amp;Point0, detail::tvec2&lt; valType &gt; const &amp;Point1, detail::tvec2&lt; valType &gt; const &amp;Position)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga0b76f577ea60dbefd769356b77c8192b">radialGradient</a> (detail::tvec2&lt; valType &gt; const &amp;Center, valType const &amp;Radius, detail::tvec2&lt; valType &gt; const &amp;Focal, detail::tvec2&lt; valType &gt; const &amp;Position)</td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00185.html">GLM_GTX_gradient_paint: Procedural gradient color</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2009-03-06 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00142.html">GLM_GTC_matrix_access: Access matrix rows and columns</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-27 / 2011-05-16 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00205.html" title="Integer exponentiation of power functions.">GLM_GTX_optimum_pow: Optimum pow</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00051_source.html">gradient_paint.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00051_source.html">matrix_access.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 47 - 39
doc/api-0.9.3/a00051_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>gradient_paint.hpp Source File</title>
+<title>matrix_access.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">gradient_paint.hpp</div>  </div>
-</div>
+<div class="title">matrix_access.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00051.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -87,47 +89,53 @@
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#ifndef GLM_GTX_gradient_paint</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_gradient_paint GLM_VERSION</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="comment">// Dependency:</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../gtx/optimum_pow.hpp&quot;</span>
-<a name="l00044"></a>00044 
-<a name="l00045"></a>00045 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_gradient_paint extension included&quot;)</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span>
-<a name="l00049"></a>00049 <span class="keyword">namespace </span>glm
-<a name="l00050"></a>00050 {
-<a name="l00053"></a>00053 
-<a name="l00056"></a>00056         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
-<a name="l00057"></a>00057         valType <a class="code" href="a00185.html#ga0b76f577ea60dbefd769356b77c8192b" title="Return a color from a radial gradient.">radialGradient</a>(
-<a name="l00058"></a>00058                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Center,
-<a name="l00059"></a>00059                 valType <span class="keyword">const</span> &amp; Radius,
-<a name="l00060"></a>00060                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Focal,
-<a name="l00061"></a>00061                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Position);
-<a name="l00062"></a>00062 
-<a name="l00065"></a>00065         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt;
-<a name="l00066"></a>00066         valType <a class="code" href="a00185.html#gac1242f716beadc6ee8404ddfea0b6674" title="Return a color from a linear gradient.">linearGradient</a>(
-<a name="l00067"></a>00067                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Point0,
-<a name="l00068"></a>00068                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Point1,
-<a name="l00069"></a>00069                 detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; Position);
-<a name="l00070"></a>00070 
-<a name="l00072"></a>00072 }<span class="comment">// namespace glm</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef GLM_GTC_matrix_access</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTC_matrix_access GLM_VERSION</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="comment">// Dependency:</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTC_matrix_access extension included&quot;)</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00047"></a>00047 <span class="keyword">namespace </span>glm
+<a name="l00048"></a>00048 {
+<a name="l00051"></a>00051 
+<a name="l00054"></a>00054         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00055"></a>00055         <span class="keyword">typename</span> genType::row_type row(
+<a name="l00056"></a>00056                 genType <span class="keyword">const</span> &amp; m, 
+<a name="l00057"></a>00057                 <span class="keywordtype">int</span> index);
+<a name="l00058"></a>00058 
+<a name="l00061"></a>00061     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00062"></a>00062         genType row(
+<a name="l00063"></a>00063                 genType <span class="keyword">const</span> &amp; m, 
+<a name="l00064"></a>00064                 <span class="keywordtype">int</span> index, 
+<a name="l00065"></a>00065                 <span class="keyword">typename</span> genType::row_type <span class="keyword">const</span> &amp; x);
+<a name="l00066"></a>00066 
+<a name="l00069"></a>00069         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00070"></a>00070         <span class="keyword">typename</span> genType::col_type column(
+<a name="l00071"></a>00071                 genType <span class="keyword">const</span> &amp; m, 
+<a name="l00072"></a>00072                 <span class="keywordtype">int</span> index);
 <a name="l00073"></a>00073 
-<a name="l00074"></a>00074 <span class="preprocessor">#include &quot;gradient_paint.inl&quot;</span>
-<a name="l00075"></a>00075 
-<a name="l00076"></a>00076 <span class="preprocessor">#endif//GLM_GTX_gradient_paint</span>
-</pre></div></div>
-</div>
+<a name="l00076"></a>00076         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; 
+<a name="l00077"></a>00077         genType column(
+<a name="l00078"></a>00078                 genType <span class="keyword">const</span> &amp; m, 
+<a name="l00079"></a>00079                 <span class="keywordtype">int</span> index, 
+<a name="l00080"></a>00080                 <span class="keyword">typename</span> genType::col_type <span class="keyword">const</span> &amp; x);
+<a name="l00081"></a>00081 
+<a name="l00083"></a>00083 }<span class="comment">//namespace glm</span>
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="preprocessor">#include &quot;matrix_access.inl&quot;</span>
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087 <span class="preprocessor">#endif//GLM_GTC_matrix_access</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 14 - 48
doc/api-0.9.3/a00052.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>half_float.hpp File Reference</title>
+<title>matrix_cross_product.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,67 +49,32 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">half_float.hpp File Reference</div>  </div>
-</div>
+<div class="title">matrix_cross_product.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00052_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::half&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44">half</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga29e773c706b5ed4fe26a2eab463bf543">hmat2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaeacc16788630c41a0cd09fc79fe43cb0">hmat2x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga1c21b4ffdd968e61f34e2962891d85b9">hmat2x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat2x4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga18a990fcefe59876ea3c0be6a8168813">hmat2x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga59ac31b422e73b91b84188b7c0325d27">hmat3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac16db0280b518494ba5691ac3b46a80f">hmat3x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga35461f7dd784869e1587a392980c9aca">hmat3x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat3x4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa117c85a19ea7baab63ce75df570ec55">hmat3x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa94bbab74fe8731bc7b351e1ef2a5f66">hmat4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga359b163fb5fb002b25859118653b6d15">hmat4x2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga943097fe2f807d83ae3eb485d17d12fc">hmat4x3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tmat4x4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8fafa0b3a6f1d44fac1c0f9249ad33c0">hmat4x4</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec2<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2d92613b2e5748f404b9cc32b17c3fff">hvec2</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec3<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga660bb2c68503c52d5d5260f24bbbfbc2">hvec3</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef detail::tvec4<br class="typebreak"/>
-&lt; detail::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga1da646375e1e0d84a9389244247db351">hvec4</a></td></tr>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00158.html">GLM_GTC_half_float: Half-precision floating-point based types and functions</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2009-04-29 / 2011-06-05 </dd></dl>
+<p><a class="el" href="a00175.html">GLM_GTX_matrix_cross_product: Cross product matrix form</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00164.html" title="Min and max functions for 3 to 4 parameters.">GLM_GTX_extented_min_max: Extended min max</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00052_source.html">half_float.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00052_source.html">matrix_cross_product.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 35 - 312
doc/api-0.9.3/a00052_source.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>half_float.hpp Source File</title>
+<title>matrix_cross_product.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -46,10 +47,11 @@
       <li><a href="files.html"><span>File&#160;List</span></a></li>
     </ul>
   </div>
+</div>
 <div class="header">
   <div class="headertitle">
-<div class="title">half_float.hpp</div>  </div>
-</div>
+<div class="title">matrix_cross_product.hpp</div>  </div>
+</div><!--header-->
 <div class="contents">
 <a href="a00052.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00002"></a>00002 
@@ -87,320 +89,41 @@
 <a name="l00034"></a>00034 
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="preprocessor">#ifndef GLM_GTC_half_float</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTC_half_float GLM_VERSION</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="comment">// Dependency:</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
-<a name="l00042"></a>00042 
-<a name="l00043"></a>00043 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTC_half_float extension included&quot;)</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span>
-<a name="l00047"></a>00047 <span class="keyword">namespace </span>glm{
-<a name="l00048"></a>00048 <span class="keyword">namespace </span>detail
-<a name="l00049"></a>00049 {
-<a name="l00050"></a>00050 <span class="preprocessor">#if(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span>        <span class="keyword">template</span> &lt;&gt;
-<a name="l00052"></a>00052         <span class="keyword">struct </span>tvec2&lt;<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&gt;
-<a name="l00053"></a>00053         {
-<a name="l00054"></a>00054                 <span class="keyword">enum</span> ctor{null};
-<a name="l00055"></a>00055                 <span class="keyword">typedef</span> <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> value_type;
-<a name="l00056"></a>00056                 <span class="keyword">typedef</span> std::size_t size_type;
-<a name="l00057"></a>00057 
-<a name="l00058"></a>00058         GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
-<a name="l00059"></a>00059                 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061                 <span class="keyword">typedef</span> tvec2&lt;half&gt; type;
-<a name="l00062"></a>00062                 <span class="keyword">typedef</span> tvec2&lt;bool&gt; bool_type;
-<a name="l00063"></a>00063 
-<a name="l00065"></a>00065                 <span class="comment">// Data</span>
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> x, y;
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#ifndef GLM_GTX_matrix_cross_product</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define GLM_GTX_matrix_cross_product GLM_VERSION</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="comment">// Dependency:</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;../glm.hpp&quot;</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#       pragma message(&quot;GLM: GLM_GTX_matrix_cross_product extension included&quot;)</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span>
+<a name="l00049"></a>00049 <span class="keyword">namespace </span>glm
+<a name="l00050"></a>00050 {
+<a name="l00053"></a>00053 
+<a name="l00056"></a>00056         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00057"></a>00057         detail::tmat3x3&lt;T&gt; matrixCross3(
+<a name="l00058"></a>00058                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; x);
+<a name="l00059"></a>00059                 
+<a name="l00062"></a>00062         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; 
+<a name="l00063"></a>00063         detail::tmat4x4&lt;T&gt; matrixCross4(
+<a name="l00064"></a>00064                 detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; x);
+<a name="l00065"></a>00065 
+<a name="l00067"></a>00067 }<span class="comment">//namespace glm</span>
 <a name="l00068"></a>00068 
-<a name="l00070"></a>00070                 <span class="comment">// Accesses</span>
-<a name="l00071"></a>00071 
-<a name="l00072"></a>00072                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> &amp; operator[](size_type i);
-<a name="l00073"></a>00073                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
-<a name="l00074"></a>00074 
-<a name="l00076"></a>00076                 <span class="comment">// Implicit basic constructors</span>
-<a name="l00077"></a>00077 
-<a name="l00078"></a>00078                 tvec2();
-<a name="l00079"></a>00079                 tvec2(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00080"></a>00080 
-<a name="l00082"></a>00082                 <span class="comment">// Explicit basic constructors</span>
-<a name="l00083"></a>00083 
-<a name="l00084"></a>00084                 <span class="keyword">explicit</span> tvec2(ctor);
-<a name="l00085"></a>00085                 <span class="keyword">explicit</span> tvec2(
-<a name="l00086"></a>00086                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00087"></a>00087                 <span class="keyword">explicit</span> tvec2(
-<a name="l00088"></a>00088                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, 
-<a name="l00089"></a>00089                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);
-<a name="l00090"></a>00090 
-<a name="l00092"></a>00092                 <span class="comment">// Swizzle constructors</span>
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094                 tvec2(tref2&lt;half&gt; <span class="keyword">const</span> &amp; r);
-<a name="l00095"></a>00095 
-<a name="l00097"></a>00097                 <span class="comment">// Convertion scalar constructors</span>
-<a name="l00098"></a>00098 
-<a name="l00100"></a>00100                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00101"></a>00101                 <span class="keyword">explicit</span> tvec2(U <span class="keyword">const</span> &amp; x);
-<a name="l00103"></a>00103                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, <span class="keyword">typename</span> V&gt; 
-<a name="l00104"></a>00104                 <span class="keyword">explicit</span> tvec2(U <span class="keyword">const</span> &amp; x, V <span class="keyword">const</span> &amp; y);                       
-<a name="l00105"></a>00105 
-<a name="l00107"></a>00107                 <span class="comment">// Convertion vector constructors</span>
-<a name="l00108"></a>00108 
-<a name="l00110"></a>00110                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00111"></a>00111                 <span class="keyword">explicit</span> tvec2(tvec2&lt;U&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00113"></a>00113                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00114"></a>00114                 <span class="keyword">explicit</span> tvec2(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00116"></a>00116                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00117"></a>00117                 <span class="keyword">explicit</span> tvec2(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00118"></a>00118 
-<a name="l00120"></a>00120                 <span class="comment">// Unary arithmetic operators</span>
-<a name="l00121"></a>00121 
-<a name="l00122"></a>00122                 tvec2&lt;half&gt;&amp; operator= (tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124                 tvec2&lt;half&gt;&amp; operator+=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00125"></a>00125                 tvec2&lt;half&gt;&amp; operator+=(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00126"></a>00126                 tvec2&lt;half&gt;&amp; operator-=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00127"></a>00127                 tvec2&lt;half&gt;&amp; operator-=(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00128"></a>00128                 tvec2&lt;half&gt;&amp; operator*=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00129"></a>00129                 tvec2&lt;half&gt;&amp; operator*=(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00130"></a>00130                 tvec2&lt;half&gt;&amp; operator/=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00131"></a>00131                 tvec2&lt;half&gt;&amp; operator/=(tvec2&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00132"></a>00132                 tvec2&lt;half&gt;&amp; operator++();
-<a name="l00133"></a>00133                 tvec2&lt;half&gt;&amp; operator--();
-<a name="l00134"></a>00134 
-<a name="l00136"></a>00136                 <span class="comment">// Swizzle operators</span>
-<a name="l00137"></a>00137 
-<a name="l00138"></a>00138                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> swizzle(comp X) <span class="keyword">const</span>;
-<a name="l00139"></a>00139                 tvec2&lt;half&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
-<a name="l00140"></a>00140                 tvec3&lt;half&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
-<a name="l00141"></a>00141                 tvec4&lt;half&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
-<a name="l00142"></a>00142                 tref2&lt;half&gt; swizzle(comp X, comp Y);
-<a name="l00143"></a>00143         };
-<a name="l00144"></a>00144 
-<a name="l00145"></a>00145         <span class="keyword">template</span> &lt;&gt;
-<a name="l00146"></a>00146         <span class="keyword">struct </span>tvec3&lt;<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&gt;
-<a name="l00147"></a>00147         {
-<a name="l00148"></a>00148                 <span class="keyword">enum</span> ctor{null};
-<a name="l00149"></a>00149                 <span class="keyword">typedef</span> <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> value_type;
-<a name="l00150"></a>00150                 <span class="keyword">typedef</span> std::size_t size_type;
-<a name="l00151"></a>00151         GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
-<a name="l00152"></a>00152                 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
-<a name="l00153"></a>00153 
-<a name="l00154"></a>00154                 <span class="keyword">typedef</span> tvec3&lt;half&gt; type;
-<a name="l00155"></a>00155                 <span class="keyword">typedef</span> tvec3&lt;bool&gt; bool_type;
-<a name="l00156"></a>00156 
-<a name="l00158"></a>00158                 <span class="comment">// Data</span>
-<a name="l00159"></a>00159 
-<a name="l00160"></a>00160                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> x, y, z;
-<a name="l00161"></a>00161 
-<a name="l00163"></a>00163                 <span class="comment">// Accesses</span>
-<a name="l00164"></a>00164 
-<a name="l00165"></a>00165                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> &amp; operator[](size_type i);
-<a name="l00166"></a>00166                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
-<a name="l00167"></a>00167 
-<a name="l00169"></a>00169                 <span class="comment">// Implicit basic constructors</span>
-<a name="l00170"></a>00170 
-<a name="l00171"></a>00171                 tvec3();
-<a name="l00172"></a>00172                 tvec3(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00173"></a>00173 
-<a name="l00175"></a>00175                 <span class="comment">// Explicit basic constructors</span>
-<a name="l00176"></a>00176 
-<a name="l00177"></a>00177                 <span class="keyword">explicit</span> tvec3(ctor);
-<a name="l00178"></a>00178                 <span class="keyword">explicit</span> tvec3(
-<a name="l00179"></a>00179                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00180"></a>00180                 <span class="keyword">explicit</span> tvec3(
-<a name="l00181"></a>00181                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, 
-<a name="l00182"></a>00182                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2, 
-<a name="l00183"></a>00183                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s3);
-<a name="l00184"></a>00184 
-<a name="l00186"></a>00186                 <span class="comment">// Swizzle constructors</span>
-<a name="l00187"></a>00187 
-<a name="l00188"></a>00188                 tvec3(tref3&lt;half&gt; <span class="keyword">const</span> &amp; r);
-<a name="l00189"></a>00189 
-<a name="l00191"></a>00191                 <span class="comment">// Convertion scalar constructors</span>
-<a name="l00192"></a>00192 
-<a name="l00194"></a>00194                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00195"></a>00195                 <span class="keyword">explicit</span> tvec3(U <span class="keyword">const</span> &amp; x);
-<a name="l00197"></a>00197                 <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; 
-<a name="l00198"></a>00198                 <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);                  
-<a name="l00199"></a>00199 
-<a name="l00201"></a>00201                 <span class="comment">// Convertion vector constructors</span>
-<a name="l00202"></a>00202 
-<a name="l00204"></a>00204                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
-<a name="l00205"></a>00205                 <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);
-<a name="l00207"></a>00207                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
-<a name="l00208"></a>00208                 <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);
-<a name="l00210"></a>00210                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00211"></a>00211                 <span class="keyword">explicit</span> tvec3(tvec3&lt;U&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00213"></a>00213                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00214"></a>00214                 <span class="keyword">explicit</span> tvec3(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00215"></a>00215 
-<a name="l00217"></a>00217                 <span class="comment">// Unary arithmetic operators</span>
-<a name="l00218"></a>00218 
-<a name="l00219"></a>00219                 tvec3&lt;half&gt;&amp; operator= (tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00220"></a>00220 
-<a name="l00221"></a>00221                 tvec3&lt;half&gt;&amp; operator+=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00222"></a>00222                 tvec3&lt;half&gt;&amp; operator+=(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00223"></a>00223                 tvec3&lt;half&gt;&amp; operator-=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00224"></a>00224                 tvec3&lt;half&gt;&amp; operator-=(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00225"></a>00225                 tvec3&lt;half&gt;&amp; operator*=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00226"></a>00226                 tvec3&lt;half&gt;&amp; operator*=(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00227"></a>00227                 tvec3&lt;half&gt;&amp; operator/=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00228"></a>00228                 tvec3&lt;half&gt;&amp; operator/=(tvec3&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00229"></a>00229                 tvec3&lt;half&gt;&amp; operator++();
-<a name="l00230"></a>00230                 tvec3&lt;half&gt;&amp; operator--();
-<a name="l00231"></a>00231 
-<a name="l00233"></a>00233                 <span class="comment">// Swizzle operators</span>
-<a name="l00234"></a>00234 
-<a name="l00235"></a>00235                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> swizzle(comp X) <span class="keyword">const</span>;
-<a name="l00236"></a>00236                 tvec2&lt;half&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
-<a name="l00237"></a>00237                 tvec3&lt;half&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
-<a name="l00238"></a>00238                 tvec4&lt;half&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
-<a name="l00239"></a>00239                 tref3&lt;half&gt; swizzle(comp X, comp Y, comp Z);
-<a name="l00240"></a>00240         };
-<a name="l00241"></a>00241 
-<a name="l00242"></a>00242         <span class="keyword">template</span> &lt;&gt;
-<a name="l00243"></a>00243         <span class="keyword">struct </span>tvec4&lt;<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&gt;
-<a name="l00244"></a>00244         {
-<a name="l00245"></a>00245                 <span class="keyword">enum</span> ctor{null};
-<a name="l00246"></a>00246                 <span class="keyword">typedef</span> <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> value_type;
-<a name="l00247"></a>00247                 <span class="keyword">typedef</span> std::size_t size_type;
-<a name="l00248"></a>00248         GLM_FUNC_DECL size_type length() <span class="keyword">const</span>;
-<a name="l00249"></a>00249                 <span class="keyword">static</span> GLM_FUNC_DECL size_type value_size();
-<a name="l00250"></a>00250 
-<a name="l00251"></a>00251                 <span class="keyword">typedef</span> tvec4&lt;half&gt; type;
-<a name="l00252"></a>00252                 <span class="keyword">typedef</span> tvec4&lt;bool&gt; bool_type;
-<a name="l00253"></a>00253 
-<a name="l00255"></a>00255                 <span class="comment">// Data</span>
-<a name="l00256"></a>00256 
-<a name="l00257"></a>00257                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> x, y, z, w;
-<a name="l00258"></a>00258 
-<a name="l00260"></a>00260                 <span class="comment">// Accesses</span>
-<a name="l00261"></a>00261 
-<a name="l00262"></a>00262                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> &amp; operator[](size_type i);
-<a name="l00263"></a>00263                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;
-<a name="l00264"></a>00264 
-<a name="l00266"></a>00266                 <span class="comment">// Implicit basic constructors</span>
-<a name="l00267"></a>00267 
-<a name="l00268"></a>00268                 tvec4();
-<a name="l00269"></a>00269                 tvec4(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00270"></a>00270 
-<a name="l00272"></a>00272                 <span class="comment">// Explicit basic constructors</span>
-<a name="l00273"></a>00273 
-<a name="l00274"></a>00274                 <span class="keyword">explicit</span> tvec4(ctor);
-<a name="l00275"></a>00275                 <span class="keyword">explicit</span> tvec4(
-<a name="l00276"></a>00276                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00277"></a>00277                 <span class="keyword">explicit</span> tvec4(
-<a name="l00278"></a>00278                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s0, 
-<a name="l00279"></a>00279                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, 
-<a name="l00280"></a>00280                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2, 
-<a name="l00281"></a>00281                         <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s3);
-<a name="l00282"></a>00282 
-<a name="l00284"></a>00284                 <span class="comment">// Swizzle constructors</span>
-<a name="l00285"></a>00285 
-<a name="l00286"></a>00286                 tvec4(tref4&lt;half&gt; <span class="keyword">const</span> &amp; r);
-<a name="l00287"></a>00287 
-<a name="l00289"></a>00289                 <span class="comment">// Convertion scalar constructors</span>
-<a name="l00290"></a>00290 
-<a name="l00292"></a>00292                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00293"></a>00293                 <span class="keyword">explicit</span> tvec4(U <span class="keyword">const</span> &amp; x);
-<a name="l00295"></a>00295                 <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; 
-<a name="l00296"></a>00296                 <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);                     
-<a name="l00297"></a>00297 
-<a name="l00299"></a>00299                 <span class="comment">// Convertion vector constructors</span>
-<a name="l00300"></a>00300 
-<a name="l00302"></a>00302                 <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; 
-<a name="l00303"></a>00303                 <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);
-<a name="l00305"></a>00305                 <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; 
-<a name="l00306"></a>00306                 <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);
-<a name="l00308"></a>00308                 <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; 
-<a name="l00309"></a>00309                 <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);
-<a name="l00311"></a>00311                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
-<a name="l00312"></a>00312                 <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);
-<a name="l00314"></a>00314                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
-<a name="l00315"></a>00315                 <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);
-<a name="l00317"></a>00317                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> A, <span class="keyword">typename</span> B&gt; 
-<a name="l00318"></a>00318                 <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);
-<a name="l00320"></a>00320                 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; 
-<a name="l00321"></a>00321                 <span class="keyword">explicit</span> tvec4(tvec4&lt;U&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00322"></a>00322 
-<a name="l00324"></a>00324                 <span class="comment">// Unary arithmetic operators</span>
-<a name="l00325"></a>00325 
-<a name="l00326"></a>00326                 tvec4&lt;half&gt;&amp; operator= (tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00327"></a>00327 
-<a name="l00328"></a>00328                 tvec4&lt;half&gt;&amp; operator+=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00329"></a>00329                 tvec4&lt;half&gt;&amp; operator+=(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00330"></a>00330                 tvec4&lt;half&gt;&amp; operator-=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00331"></a>00331                 tvec4&lt;half&gt;&amp; operator-=(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00332"></a>00332                 tvec4&lt;half&gt;&amp; operator*=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00333"></a>00333                 tvec4&lt;half&gt;&amp; operator*=(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00334"></a>00334                 tvec4&lt;half&gt;&amp; operator/=(<a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);
-<a name="l00335"></a>00335                 tvec4&lt;half&gt;&amp; operator/=(tvec4&lt;half&gt; <span class="keyword">const</span> &amp; v);
-<a name="l00336"></a>00336                 tvec4&lt;half&gt;&amp; operator++();
-<a name="l00337"></a>00337                 tvec4&lt;half&gt;&amp; operator--();
-<a name="l00338"></a>00338 
-<a name="l00340"></a>00340                 <span class="comment">// Swizzle operators</span>
-<a name="l00341"></a>00341 
-<a name="l00342"></a>00342                 <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> swizzle(comp X) <span class="keyword">const</span>;
-<a name="l00343"></a>00343                 tvec2&lt;half&gt; swizzle(comp X, comp Y) <span class="keyword">const</span>;
-<a name="l00344"></a>00344                 tvec3&lt;half&gt; swizzle(comp X, comp Y, comp Z) <span class="keyword">const</span>;
-<a name="l00345"></a>00345                 tvec4&lt;half&gt; swizzle(comp X, comp Y, comp Z, comp W) <span class="keyword">const</span>;
-<a name="l00346"></a>00346                 tref4&lt;half&gt; swizzle(comp X, comp Y, comp Z, comp W);
-<a name="l00347"></a>00347         };
-<a name="l00348"></a>00348 <span class="preprocessor">#endif//(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())</span>
-<a name="l00349"></a>00349 <span class="preprocessor"></span>}
-<a name="l00350"></a>00350 <span class="comment">//namespace detail</span>
-<a name="l00351"></a>00351 
-<a name="l00354"></a>00354 
-<a name="l00357"></a><a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44">00357</a>         <span class="keyword">typedef</span> detail<a class="code" href="a00005.html" title="16-bit floating point type.">::half</a>                                    <a class="code" href="a00158.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>;
-<a name="l00358"></a>00358 
-<a name="l00361"></a><a class="code" href="a00158.html#ga2d92613b2e5748f404b9cc32b17c3fff">00361</a>         <span class="keyword">typedef</span> detail::tvec2&lt;detail::half&gt;     <a class="code" href="a00158.html#ga2d92613b2e5748f404b9cc32b17c3fff" title="Vector of 2 half-precision floating-point numbers.">hvec2</a>;
-<a name="l00362"></a>00362 
-<a name="l00365"></a><a class="code" href="a00158.html#ga660bb2c68503c52d5d5260f24bbbfbc2">00365</a>         <span class="keyword">typedef</span> detail::tvec3&lt;detail::half&gt;     <a class="code" href="a00158.html#ga660bb2c68503c52d5d5260f24bbbfbc2" title="Vector of 3 half-precision floating-point numbers.">hvec3</a>;
-<a name="l00366"></a>00366 
-<a name="l00369"></a><a class="code" href="a00158.html#ga1da646375e1e0d84a9389244247db351">00369</a>         <span class="keyword">typedef</span> detail::tvec4&lt;detail::half&gt;     <a class="code" href="a00158.html#ga1da646375e1e0d84a9389244247db351" title="Vector of 4 half-precision floating-point numbers.">hvec4</a>;
-<a name="l00370"></a>00370 
-<a name="l00373"></a><a class="code" href="a00158.html#ga29e773c706b5ed4fe26a2eab463bf543">00373</a>         <span class="keyword">typedef</span> detail::tmat2x2&lt;detail::half&gt;   <a class="code" href="a00158.html#ga29e773c706b5ed4fe26a2eab463bf543" title="2 * 2 matrix of half-precision floating-point numbers.">hmat2</a>;
-<a name="l00374"></a>00374     
-<a name="l00377"></a><a class="code" href="a00158.html#ga59ac31b422e73b91b84188b7c0325d27">00377</a>         <span class="keyword">typedef</span> detail::tmat3x3&lt;detail::half&gt;   <a class="code" href="a00158.html#ga59ac31b422e73b91b84188b7c0325d27" title="3 * 3 matrix of half-precision floating-point numbers.">hmat3</a>;
-<a name="l00378"></a>00378 
-<a name="l00381"></a><a class="code" href="a00158.html#gaa94bbab74fe8731bc7b351e1ef2a5f66">00381</a>         <span class="keyword">typedef</span> detail::tmat4x4&lt;detail::half&gt;   <a class="code" href="a00158.html#gaa94bbab74fe8731bc7b351e1ef2a5f66" title="4 * 4 matrix of half-precision floating-point numbers.">hmat4</a>;
-<a name="l00382"></a>00382 
-<a name="l00385"></a><a class="code" href="a00158.html#gaeacc16788630c41a0cd09fc79fe43cb0">00385</a>         <span class="keyword">typedef</span> detail::tmat2x2&lt;detail::half&gt;   <a class="code" href="a00158.html#gaeacc16788630c41a0cd09fc79fe43cb0" title="2 * 2 matrix of half-precision floating-point numbers.">hmat2x2</a>;
-<a name="l00386"></a>00386     
-<a name="l00389"></a><a class="code" href="a00158.html#ga1c21b4ffdd968e61f34e2962891d85b9">00389</a>         <span class="keyword">typedef</span> detail::tmat2x3&lt;detail::half&gt;   <a class="code" href="a00158.html#ga1c21b4ffdd968e61f34e2962891d85b9" title="2 * 3 matrix of half-precision floating-point numbers.">hmat2x3</a>;
-<a name="l00390"></a>00390     
-<a name="l00393"></a><a class="code" href="a00158.html#ga18a990fcefe59876ea3c0be6a8168813">00393</a>         <span class="keyword">typedef</span> detail::tmat2x4&lt;detail::half&gt;   <a class="code" href="a00158.html#ga18a990fcefe59876ea3c0be6a8168813" title="2 * 4 matrix of half-precision floating-point numbers.">hmat2x4</a>;
-<a name="l00394"></a>00394 
-<a name="l00397"></a><a class="code" href="a00158.html#gac16db0280b518494ba5691ac3b46a80f">00397</a>         <span class="keyword">typedef</span> detail::tmat3x2&lt;detail::half&gt;   <a class="code" href="a00158.html#gac16db0280b518494ba5691ac3b46a80f" title="3 * 2 matrix of half-precision floating-point numbers.">hmat3x2</a>;
-<a name="l00398"></a>00398     
-<a name="l00401"></a><a class="code" href="a00158.html#ga35461f7dd784869e1587a392980c9aca">00401</a>         <span class="keyword">typedef</span> detail::tmat3x3&lt;detail::half&gt;   <a class="code" href="a00158.html#ga35461f7dd784869e1587a392980c9aca" title="3 * 3 matrix of half-precision floating-point numbers.">hmat3x3</a>;
-<a name="l00402"></a>00402     
-<a name="l00405"></a><a class="code" href="a00158.html#gaa117c85a19ea7baab63ce75df570ec55">00405</a>         <span class="keyword">typedef</span> detail::tmat3x4&lt;detail::half&gt;   <a class="code" href="a00158.html#gaa117c85a19ea7baab63ce75df570ec55" title="3 * 4 matrix of half-precision floating-point numbers.">hmat3x4</a>;
-<a name="l00406"></a>00406 
-<a name="l00409"></a><a class="code" href="a00158.html#ga359b163fb5fb002b25859118653b6d15">00409</a>         <span class="keyword">typedef</span> detail::tmat4x2&lt;detail::half&gt;   <a class="code" href="a00158.html#ga359b163fb5fb002b25859118653b6d15" title="4 * 2 matrix of half-precision floating-point numbers.">hmat4x2</a>;    
-<a name="l00410"></a>00410 
-<a name="l00413"></a><a class="code" href="a00158.html#ga943097fe2f807d83ae3eb485d17d12fc">00413</a>         <span class="keyword">typedef</span> detail::tmat4x3&lt;detail::half&gt;   <a class="code" href="a00158.html#ga943097fe2f807d83ae3eb485d17d12fc" title="4 * 3 matrix of half-precision floating-point numbers.">hmat4x3</a>;
-<a name="l00414"></a>00414     
-<a name="l00417"></a><a class="code" href="a00158.html#ga8fafa0b3a6f1d44fac1c0f9249ad33c0">00417</a>         <span class="keyword">typedef</span> detail::tmat4x4&lt;detail::half&gt;   <a class="code" href="a00158.html#ga8fafa0b3a6f1d44fac1c0f9249ad33c0" title="4 * 4 matrix of half-precision floating-point numbers.">hmat4x4</a>;
-<a name="l00418"></a>00418     
-<a name="l00420"></a>00420 }<span class="comment">// namespace glm</span>
-<a name="l00421"></a>00421 
-<a name="l00422"></a>00422 <span class="preprocessor">#include &quot;half_float.inl&quot;</span>
-<a name="l00423"></a>00423 
-<a name="l00424"></a>00424 <span class="preprocessor">#endif//GLM_GTC_half_float</span>
-</pre></div></div>
-</div>
+<a name="l00069"></a>00069 <span class="preprocessor">#include &quot;matrix_cross_product.inl&quot;</span>
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071 <span class="preprocessor">#endif//GLM_GTX_matrix_cross_product</span>
+</pre></div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

+ 12 - 21
doc/api-0.9.3/a00053.html

@@ -2,8 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
-<title>handed_coordinate_space.hpp File Reference</title>
+<title>matrix_integer.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -31,7 +32,7 @@
 </table>
 </div>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.6.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
@@ -48,40 +49,30 @@
   </div>
 </div>
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">handed_coordinate_space.hpp File Reference</div>  </div>
-</div>
+<div class="title">matrix_integer.hpp File Reference</div>  </div>
+</div><!--header-->
 <div class="contents">
 
 <p><a href="a00053_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr><td colspan="2"><h2><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga574a69fa0e592151454d3d2dd03275d9">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>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gabf06566f29bba31600e114ecbeef379a">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>
-</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
 <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
 <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00186.html">GLM_GTX_handed_coordinate_space: Space Handedness</a></p>
-<dl class="date"><dt><b>Date:</b></dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
+<p><a class="el" href="a00143.html">GLM_GTC_matrix_integer: Integer matrix types</a></p>
+<dl class="date"><dt><b>Date:</b></dt><dd>2011-01-20 / 2011-06-05 </dd></dl>
 <dl class="author"><dt><b>Author:</b></dt><dd>Christophe Riccio</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00154.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00137.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
 
-<p>Definition in file <a class="el" href="a00053_source.html">handed_coordinate_space.hpp</a>.</p>
-</div></div>
+<p>Definition in file <a class="el" href="a00053_source.html">matrix_integer.hpp</a>.</p>
+</div></div><!-- contents -->
 
 
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.7.5
+</a> 1.7.6.1
 </small></address>
 
 </body>

部分文件因为文件数量过多而无法显示