Getting GLM 0.9.3.1 release ready

This commit is contained in:
Christophe Riccio 2012-01-25 12:56:50 +00:00
parent 359312f503
commit 18a500a0f5
340 changed files with 26944 additions and 39419 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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="a00170.html#gad9bc7e42a75381c3f6b68b8ba20863d3">bitRotateLeft</a> (genType const &amp;In, std::size_t Shift)</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="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#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">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#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="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#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">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#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">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::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#ga335322b4fcb2e5444ec467a1e7a40301">powerOfTwoAbove</a> (genType const &amp;value)</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#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#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="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#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="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">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">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="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="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="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>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>2007-03-14 / 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>
<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>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>
<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>

View File

@ -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
doc/api-0.9.3/a00026.html Normal file
View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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::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::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::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::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#ga732af29818632e3d280ee865439ec9f7">YCoCgR2rgb</a> (detail::tvec3&lt; valType &gt; const &amp;YCoCgColor)</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::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::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>

View File

@ -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>

View File

@ -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">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::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">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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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
doc/api-0.9.3/a00035.html Normal file
View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

File diff suppressed because it is too large Load Diff

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

Some files were not shown because too many files have changed in this diff Show More