Fixed merge

This commit is contained in:
Christophe Riccio 2013-01-31 15:01:48 +01:00
commit b5607d0018
54 changed files with 1999 additions and 1313 deletions

View File

@ -167,7 +167,7 @@
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; _swizzle_base2&amp; operator= (<span class="keyword">const</span> VecType&amp; that)</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">struct </span>op { </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5" title="Return e constant.">e</a>, value_type&amp; t) { e = t; } </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423" title="Return e constant.">e</a>, value_type&amp; t) { e = t; } </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; _apply_op(that, op());</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
@ -176,7 +176,7 @@
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> operator -= (<span class="keyword">const</span> VecType&amp; that)</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">struct </span>op { </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5" title="Return e constant.">e</a>, value_type&amp; t) { e -= t; } </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423" title="Return e constant.">e</a>, value_type&amp; t) { e -= t; } </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; };</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; _apply_op(that, op());</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
@ -184,7 +184,7 @@
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">void</span> operator += (<span class="keyword">const</span> VecType&amp; that)</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">struct </span>op { </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5" title="Return e constant.">e</a>, value_type&amp; t) { e += t; } </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423" title="Return e constant.">e</a>, value_type&amp; t) { e += t; } </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; };</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; _apply_op(that, op());</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
@ -192,7 +192,7 @@
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> operator *= (<span class="keyword">const</span> VecType&amp; that)</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">struct </span>op { </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5" title="Return e constant.">e</a>, value_type&amp; t) { e *= t; } </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423" title="Return e constant.">e</a>, value_type&amp; t) { e *= t; } </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; };</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; _apply_op(that, op());</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
@ -200,7 +200,7 @@
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">void</span> operator /= (<span class="keyword">const</span> VecType&amp; that)</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">struct </span>op { </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5" title="Return e constant.">e</a>, value_type&amp; t) { e /= t; } </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423" title="Return e constant.">e</a>, value_type&amp; t) { e /= t; } </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; _apply_op(that, op());</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>

View File

@ -366,10 +366,9 @@ template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga71c18fe8bc1e69c2b3c11feb13cf6695"><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="a00166.html#ga71c18fe8bc1e69c2b3c11feb13cf6695">saturate</a> (const detail::tvec4&lt; T &gt; &amp;x)</td></tr>
<tr class="separator:ga71c18fe8bc1e69c2b3c11feb13cf6695"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa299989529dc364bf823ed340f92d1d0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa299989529dc364bf823ed340f92d1d0"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:gaa299989529dc364bf823ed340f92d1d0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaa299989529dc364bf823ed340f92d1d0">slerp</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
<tr class="separator:gaa299989529dc364bf823ed340f92d1d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga4acb60c1b472fc6cb5322a63ca1cf9a4">slerp</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
<tr class="separator:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>

View File

@ -107,15 +107,15 @@
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"> 65</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00166.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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="a00166.html#ga27390ee6e4797335f0a751e021038a41"> 66</a></span>&#160; <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="a00166.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> 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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="a00166.html#gaf2ca5584fe9c3a2e5e5b12bbfcecfe38"> 67</a></span>&#160; <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="a00166.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> 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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="a00166.html#gae3cac5586d127568383d7df9d258a443"> 68</a></span>&#160; <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="a00166.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> 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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="a00166.html#ga535230f9887c77a056e535c3c7cf741c"> 69</a></span>&#160; <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="a00166.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> 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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="a00166.html#ga9e840980e570e588d18793ecfe152bc4"> 70</a></span>&#160; <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="a00166.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> 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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="a00166.html#ga4f8591445ad6b900b0456dc2d01f8ee4"> 71</a></span>&#160; <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="a00166.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> 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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="a00166.html#ga5494ba3a95ea6594c86fc75236886864"> 65</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181" title="Linear interpolation of two quaternions.">lerp</a>(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="a00166.html#ga27390ee6e4797335f0a751e021038a41"> 66</a></span>&#160; <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="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181" title="Linear interpolation of two quaternions.">lerp</a>(<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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="a00166.html#gaf2ca5584fe9c3a2e5e5b12bbfcecfe38"> 67</a></span>&#160; <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="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181" title="Linear interpolation of two quaternions.">lerp</a>(<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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="a00166.html#gae3cac5586d127568383d7df9d258a443"> 68</a></span>&#160; <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="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181" title="Linear interpolation of two quaternions.">lerp</a>(<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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="a00166.html#ga535230f9887c77a056e535c3c7cf741c"> 69</a></span>&#160; <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="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181" title="Linear interpolation of two quaternions.">lerp</a>(<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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="a00166.html#ga9e840980e570e588d18793ecfe152bc4"> 70</a></span>&#160; <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="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181" title="Linear interpolation of two quaternions.">lerp</a>(<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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="a00166.html#ga4f8591445ad6b900b0456dc2d01f8ee4"> 71</a></span>&#160; <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="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181" title="Linear interpolation of two quaternions.">lerp</a>(<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="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="a00166.html#gaa299989529dc364bf823ed340f92d1d0"> 73</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00166.html#gaa299989529dc364bf823ed340f92d1d0" title="Returns the slurp interpolation between two quaternions.">slerp</a>(detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, T <span class="keyword">const</span> &amp; a){<span class="keywordflow">return</span> <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="a00153.html#ga4acb60c1b472fc6cb5322a63ca1cf9a4"> 73</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00153.html#ga4acb60c1b472fc6cb5322a63ca1cf9a4" title="Spherical linear interpolation of two quaternions.">slerp</a>(detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, T <span class="keyword">const</span> &amp; a){<span class="keywordflow">return</span> <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="a00166.html#ga744b98814a35336e25cc0d1ba30f63f7"> 75</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00166.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="a00129.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(x, T(0), T(1));} </div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="a00166.html#ga79ae98d7b28ae3095a653258b5aa2d9d"> 76</a></span>&#160; <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="a00166.html#ga744b98814a35336e25cc0d1ba30f63f7" title="Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)">saturate</a>(<span class="keyword">const</span> detail::tvec2&lt;T&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00129.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(x, T(0), T(1));} </div>

View File

@ -52,81 +52,81 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga1cebaa574cc7c9018ccefbde3f174db5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga1cebaa574cc7c9018ccefbde3f174db5"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5">e</a> ()</td></tr>
<tr class="separator:ga1cebaa574cc7c9018ccefbde3f174db5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b53267cfa3c8aa96c02cdba04c53ef5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga2b53267cfa3c8aa96c02cdba04c53ef5"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5">epsilon</a> ()</td></tr>
<tr class="separator:ga2b53267cfa3c8aa96c02cdba04c53ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed1d93869801afa40958ffa062dde245"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gaed1d93869801afa40958ffa062dde245"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaed1d93869801afa40958ffa062dde245">euler</a> ()</td></tr>
<tr class="separator:gaed1d93869801afa40958ffa062dde245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14e6ecb0a19dbbfcf6cd48cb536cbd61"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga14e6ecb0a19dbbfcf6cd48cb536cbd61"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga14e6ecb0a19dbbfcf6cd48cb536cbd61">golden_ratio</a> ()</td></tr>
<tr class="separator:ga14e6ecb0a19dbbfcf6cd48cb536cbd61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a72b0fbaa530016ccdfd28529cda87d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga8a72b0fbaa530016ccdfd28529cda87d"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga8a72b0fbaa530016ccdfd28529cda87d">half_pi</a> ()</td></tr>
<tr class="separator:ga8a72b0fbaa530016ccdfd28529cda87d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga554ba051aa168c8e19072f2b1ebf1ef8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga554ba051aa168c8e19072f2b1ebf1ef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga554ba051aa168c8e19072f2b1ebf1ef8">ln_ln_two</a> ()</td></tr>
<tr class="separator:ga554ba051aa168c8e19072f2b1ebf1ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga43d82c8d42443486d20ccc17ec797770"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga43d82c8d42443486d20ccc17ec797770"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga43d82c8d42443486d20ccc17ec797770">ln_ten</a> ()</td></tr>
<tr class="separator:ga43d82c8d42443486d20ccc17ec797770"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2f30635c140a0e753d3eb26f63446dd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gac2f30635c140a0e753d3eb26f63446dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac2f30635c140a0e753d3eb26f63446dd">ln_two</a> ()</td></tr>
<tr class="separator:gac2f30635c140a0e753d3eb26f63446dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b7505757b062b9f689d618e5790ce0a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4b7505757b062b9f689d618e5790ce0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga4b7505757b062b9f689d618e5790ce0a">one</a> ()</td></tr>
<tr class="separator:ga4b7505757b062b9f689d618e5790ce0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d476bfe1e72071895ece4c4b9e78a47"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga0d476bfe1e72071895ece4c4b9e78a47"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga0d476bfe1e72071895ece4c4b9e78a47">one_over_pi</a> ()</td></tr>
<tr class="separator:ga0d476bfe1e72071895ece4c4b9e78a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga109c0c04ce9f7912254bb52800d22344"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga109c0c04ce9f7912254bb52800d22344"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga109c0c04ce9f7912254bb52800d22344">one_over_root_two</a> ()</td></tr>
<tr class="separator:ga109c0c04ce9f7912254bb52800d22344"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga12be4efe2470ebe86e7163aefe4a545e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga12be4efe2470ebe86e7163aefe4a545e"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga12be4efe2470ebe86e7163aefe4a545e">pi</a> ()</td></tr>
<tr class="separator:ga12be4efe2470ebe86e7163aefe4a545e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf1caeb147205714372a562a15b140f8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gacf1caeb147205714372a562a15b140f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gacf1caeb147205714372a562a15b140f8">quarter_pi</a> ()</td></tr>
<tr class="separator:gacf1caeb147205714372a562a15b140f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaafa225f0ab07202dd270d6537a5e1df8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gaafa225f0ab07202dd270d6537a5e1df8"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaafa225f0ab07202dd270d6537a5e1df8">root_five</a> ()</td></tr>
<tr class="separator:gaafa225f0ab07202dd270d6537a5e1df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0cd42ca5c54d9896654b3048a4ef0d7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gad0cd42ca5c54d9896654b3048a4ef0d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gad0cd42ca5c54d9896654b3048a4ef0d7">root_half_pi</a> ()</td></tr>
<tr class="separator:gad0cd42ca5c54d9896654b3048a4ef0d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacce3e8846a876b339812dd7279b3d929"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gacce3e8846a876b339812dd7279b3d929"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gacce3e8846a876b339812dd7279b3d929">root_ln_four</a> ()</td></tr>
<tr class="separator:gacce3e8846a876b339812dd7279b3d929"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab330534be451fd5267622fb3fd246c3d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gab330534be451fd5267622fb3fd246c3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gab330534be451fd5267622fb3fd246c3d">root_pi</a> ()</td></tr>
<tr class="separator:gab330534be451fd5267622fb3fd246c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3f205c738a519ec082dd8a67968549c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gaf3f205c738a519ec082dd8a67968549c"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf3f205c738a519ec082dd8a67968549c">root_three</a> ()</td></tr>
<tr class="separator:gaf3f205c738a519ec082dd8a67968549c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga84cde9a5f5c5528a2846ab43a62f3fd0"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga84cde9a5f5c5528a2846ab43a62f3fd0"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga84cde9a5f5c5528a2846ab43a62f3fd0">root_two</a> ()</td></tr>
<tr class="separator:ga84cde9a5f5c5528a2846ab43a62f3fd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga388e713e3a29840079d2dd1128f46166"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga388e713e3a29840079d2dd1128f46166"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga388e713e3a29840079d2dd1128f46166">root_two_pi</a> ()</td></tr>
<tr class="separator:ga388e713e3a29840079d2dd1128f46166"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a604b1a984d351232d966e9b8fed54e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4a604b1a984d351232d966e9b8fed54e"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga4a604b1a984d351232d966e9b8fed54e">third</a> ()</td></tr>
<tr class="separator:ga4a604b1a984d351232d966e9b8fed54e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga579959e61ef879efbe7e8646b2d9c222"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga579959e61ef879efbe7e8646b2d9c222"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga579959e61ef879efbe7e8646b2d9c222">two_over_pi</a> ()</td></tr>
<tr class="separator:ga579959e61ef879efbe7e8646b2d9c222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31940e5cdb5cb1d8852548db573d43f9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga31940e5cdb5cb1d8852548db573d43f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga31940e5cdb5cb1d8852548db573d43f9">two_over_root_pi</a> ()</td></tr>
<tr class="separator:ga31940e5cdb5cb1d8852548db573d43f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga284e20e3e55ffbd5b19d16054bbe2098"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga284e20e3e55ffbd5b19d16054bbe2098"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga284e20e3e55ffbd5b19d16054bbe2098">two_thirds</a> ()</td></tr>
<tr class="separator:ga284e20e3e55ffbd5b19d16054bbe2098"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ece9de415050c52a6e2aa5d70a20972"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga1ece9de415050c52a6e2aa5d70a20972"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga1ece9de415050c52a6e2aa5d70a20972">zero</a> ()</td></tr>
<tr class="separator:ga1ece9de415050c52a6e2aa5d70a20972"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3220d28f6664e2091ae72f57fea57423"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga3220d28f6664e2091ae72f57fea57423"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423">e</a> ()</td></tr>
<tr class="separator:ga3220d28f6664e2091ae72f57fea57423"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf38c4ec0213885e6692f206fe1408c71"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf38c4ec0213885e6692f206fe1408c71"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71">epsilon</a> ()</td></tr>
<tr class="separator:gaf38c4ec0213885e6692f206fe1408c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeaac224b44a4e642a84f5133c6ce7d81"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaeaac224b44a4e642a84f5133c6ce7d81"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaeaac224b44a4e642a84f5133c6ce7d81">euler</a> ()</td></tr>
<tr class="separator:gaeaac224b44a4e642a84f5133c6ce7d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ea4aa61e3c5cc8349cac68c769c28e7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga3ea4aa61e3c5cc8349cac68c769c28e7"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga3ea4aa61e3c5cc8349cac68c769c28e7">golden_ratio</a> ()</td></tr>
<tr class="separator:ga3ea4aa61e3c5cc8349cac68c769c28e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8f9279b31aaa28cfea2b3fdbb71334f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaa8f9279b31aaa28cfea2b3fdbb71334f"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaa8f9279b31aaa28cfea2b3fdbb71334f">half_pi</a> ()</td></tr>
<tr class="separator:gaa8f9279b31aaa28cfea2b3fdbb71334f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf592c9de9c5376ce741589804a9ab52e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf592c9de9c5376ce741589804a9ab52e"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf592c9de9c5376ce741589804a9ab52e">ln_ln_two</a> ()</td></tr>
<tr class="separator:gaf592c9de9c5376ce741589804a9ab52e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05fc32d108a5065b3e6a61bdb6fcd2ee"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga05fc32d108a5065b3e6a61bdb6fcd2ee"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga05fc32d108a5065b3e6a61bdb6fcd2ee">ln_ten</a> ()</td></tr>
<tr class="separator:ga05fc32d108a5065b3e6a61bdb6fcd2ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf8770f9b8cd9fb89feb7b707f3c339e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gabf8770f9b8cd9fb89feb7b707f3c339e"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gabf8770f9b8cd9fb89feb7b707f3c339e">ln_two</a> ()</td></tr>
<tr class="separator:gabf8770f9b8cd9fb89feb7b707f3c339e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48eaf4ba6e62b66222b8f3e2e57f25ab"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga48eaf4ba6e62b66222b8f3e2e57f25ab"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga48eaf4ba6e62b66222b8f3e2e57f25ab">one</a> ()</td></tr>
<tr class="separator:ga48eaf4ba6e62b66222b8f3e2e57f25ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga300238bac966e9f3253e95c0f58a254c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga300238bac966e9f3253e95c0f58a254c"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga300238bac966e9f3253e95c0f58a254c">one_over_pi</a> ()</td></tr>
<tr class="separator:ga300238bac966e9f3253e95c0f58a254c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad95674cac90ae7cac519194770eb6160"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gad95674cac90ae7cac519194770eb6160"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gad95674cac90ae7cac519194770eb6160">one_over_root_two</a> ()</td></tr>
<tr class="separator:gad95674cac90ae7cac519194770eb6160"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae599a18ebccedb61f28cb9735bf4b025"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gae599a18ebccedb61f28cb9735bf4b025"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gae599a18ebccedb61f28cb9735bf4b025">pi</a> ()</td></tr>
<tr class="separator:gae599a18ebccedb61f28cb9735bf4b025"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3ca5c09673ab3cdfc16a34e176803e0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf3ca5c09673ab3cdfc16a34e176803e0"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf3ca5c09673ab3cdfc16a34e176803e0">quarter_pi</a> ()</td></tr>
<tr class="separator:gaf3ca5c09673ab3cdfc16a34e176803e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed74221e982333922018431aa12cda62"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaed74221e982333922018431aa12cda62"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaed74221e982333922018431aa12cda62">root_five</a> ()</td></tr>
<tr class="separator:gaed74221e982333922018431aa12cda62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8106d6cc821f8c4f32179e8eaff393a1"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga8106d6cc821f8c4f32179e8eaff393a1"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga8106d6cc821f8c4f32179e8eaff393a1">root_half_pi</a> ()</td></tr>
<tr class="separator:ga8106d6cc821f8c4f32179e8eaff393a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55c459d0861b77990e8719f6f4a1e92"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gac55c459d0861b77990e8719f6f4a1e92"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac55c459d0861b77990e8719f6f4a1e92">root_ln_four</a> ()</td></tr>
<tr class="separator:gac55c459d0861b77990e8719f6f4a1e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1497714576b7a7f7151175da6b115e4"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf1497714576b7a7f7151175da6b115e4"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf1497714576b7a7f7151175da6b115e4">root_pi</a> ()</td></tr>
<tr class="separator:gaf1497714576b7a7f7151175da6b115e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6ee81ef34c2db2019290d7d48daf863"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gac6ee81ef34c2db2019290d7d48daf863"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac6ee81ef34c2db2019290d7d48daf863">root_three</a> ()</td></tr>
<tr class="separator:gac6ee81ef34c2db2019290d7d48daf863"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76136e4e8892c80e969f4ff2a7e73faa"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga76136e4e8892c80e969f4ff2a7e73faa"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga76136e4e8892c80e969f4ff2a7e73faa">root_two</a> ()</td></tr>
<tr class="separator:ga76136e4e8892c80e969f4ff2a7e73faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32406e517269a1da0c2dac765add955f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga32406e517269a1da0c2dac765add955f"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga32406e517269a1da0c2dac765add955f">root_two_pi</a> ()</td></tr>
<tr class="separator:ga32406e517269a1da0c2dac765add955f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf952fb46d03a8bf5dd79a1ab00b24b77"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf952fb46d03a8bf5dd79a1ab00b24b77"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf952fb46d03a8bf5dd79a1ab00b24b77">third</a> ()</td></tr>
<tr class="separator:gaf952fb46d03a8bf5dd79a1ab00b24b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7f52a30ed8a645849e94f350823e0d0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gae7f52a30ed8a645849e94f350823e0d0"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gae7f52a30ed8a645849e94f350823e0d0">two_over_pi</a> ()</td></tr>
<tr class="separator:gae7f52a30ed8a645849e94f350823e0d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadbf34253039f3d5d27d5fcf7e591b3ab"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gadbf34253039f3d5d27d5fcf7e591b3ab"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gadbf34253039f3d5d27d5fcf7e591b3ab">two_over_root_pi</a> ()</td></tr>
<tr class="separator:gadbf34253039f3d5d27d5fcf7e591b3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7127480e917d0a6016a435b1e8d67176"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga7127480e917d0a6016a435b1e8d67176"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga7127480e917d0a6016a435b1e8d67176">two_thirds</a> ()</td></tr>
<tr class="separator:ga7127480e917d0a6016a435b1e8d67176"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab76ba72430dc7c11be15a2895e7e61f9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gab76ba72430dc7c11be15a2895e7e61f9"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gab76ba72430dc7c11be15a2895e7e61f9">zero</a> ()</td></tr>
<tr class="separator:gab76ba72430dc7c11be15a2895e7e61f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>

View File

@ -97,80 +97,80 @@
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">namespace </span>glm</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a>();</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; genType <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a>();</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga1ece9de415050c52a6e2aa5d70a20972" title="Return 0.">zero</a>();</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; genType <a class="code" href="a00145.html#gab76ba72430dc7c11be15a2895e7e61f9" title="Return 0.">zero</a>();</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga4b7505757b062b9f689d618e5790ce0a" title="Return 1.">one</a>();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; genType <a class="code" href="a00145.html#ga48eaf4ba6e62b66222b8f3e2e57f25ab" title="Return 1.">one</a>();</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga12be4efe2470ebe86e7163aefe4a545e" title="Return the pi constant.">pi</a>();</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; genType <a class="code" href="a00145.html#gae599a18ebccedb61f28cb9735bf4b025" title="Return the pi constant.">pi</a>();</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#gab330534be451fd5267622fb3fd246c3d" title="Return square root of pi.">root_pi</a>();</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; genType <a class="code" href="a00145.html#gaf1497714576b7a7f7151175da6b115e4" title="Return square root of pi.">root_pi</a>();</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga8a72b0fbaa530016ccdfd28529cda87d" title="Return pi / 2.">half_pi</a>();</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; genType <a class="code" href="a00145.html#gaa8f9279b31aaa28cfea2b3fdbb71334f" title="Return pi / 2.">half_pi</a>();</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#gacf1caeb147205714372a562a15b140f8" title="Return pi / 4.">quarter_pi</a>();</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; genType <a class="code" href="a00145.html#gaf3ca5c09673ab3cdfc16a34e176803e0" title="Return pi / 4.">quarter_pi</a>();</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga0d476bfe1e72071895ece4c4b9e78a47" title="Return 1 / pi.">one_over_pi</a>();</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; genType <a class="code" href="a00145.html#ga300238bac966e9f3253e95c0f58a254c" title="Return 1 / pi.">one_over_pi</a>();</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga579959e61ef879efbe7e8646b2d9c222" title="Return 2 / pi.">two_over_pi</a>();</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; genType <a class="code" href="a00145.html#gae7f52a30ed8a645849e94f350823e0d0" title="Return 2 / pi.">two_over_pi</a>();</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga31940e5cdb5cb1d8852548db573d43f9" title="Return 2 / sqrt(pi).">two_over_root_pi</a>();</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; genType <a class="code" href="a00145.html#gadbf34253039f3d5d27d5fcf7e591b3ab" title="Return 2 / sqrt(pi).">two_over_root_pi</a>();</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga109c0c04ce9f7912254bb52800d22344" title="Return 1 / sqrt(2).">one_over_root_two</a>();</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; genType <a class="code" href="a00145.html#gad95674cac90ae7cac519194770eb6160" title="Return 1 / sqrt(2).">one_over_root_two</a>();</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#gad0cd42ca5c54d9896654b3048a4ef0d7" title="Return sqrt(pi / 2).">root_half_pi</a>();</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; genType <a class="code" href="a00145.html#ga8106d6cc821f8c4f32179e8eaff393a1" title="Return sqrt(pi / 2).">root_half_pi</a>();</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga388e713e3a29840079d2dd1128f46166" title="Return sqrt(2 * pi).">root_two_pi</a>();</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; genType <a class="code" href="a00145.html#ga32406e517269a1da0c2dac765add955f" title="Return sqrt(2 * pi).">root_two_pi</a>();</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#gacce3e8846a876b339812dd7279b3d929" title="Return sqrt(ln(4)).">root_ln_four</a>();</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; genType <a class="code" href="a00145.html#gac55c459d0861b77990e8719f6f4a1e92" title="Return sqrt(ln(4)).">root_ln_four</a>();</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5" title="Return e constant.">e</a>();</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; genType <a class="code" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423" title="Return e constant.">e</a>();</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#gaed1d93869801afa40958ffa062dde245" title="Return Euler&#39;s constant.">euler</a>();</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; genType <a class="code" href="a00145.html#gaeaac224b44a4e642a84f5133c6ce7d81" title="Return Euler&#39;s constant.">euler</a>();</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga84cde9a5f5c5528a2846ab43a62f3fd0" title="Return sqrt(2).">root_two</a>();</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; genType <a class="code" href="a00145.html#ga76136e4e8892c80e969f4ff2a7e73faa" title="Return sqrt(2).">root_two</a>();</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#gaf3f205c738a519ec082dd8a67968549c" title="Return sqrt(3).">root_three</a>();</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; genType <a class="code" href="a00145.html#gac6ee81ef34c2db2019290d7d48daf863" title="Return sqrt(3).">root_three</a>();</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#gaafa225f0ab07202dd270d6537a5e1df8" title="Return sqrt(5).">root_five</a>();</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; genType <a class="code" href="a00145.html#gaed74221e982333922018431aa12cda62" title="Return sqrt(5).">root_five</a>();</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#gac2f30635c140a0e753d3eb26f63446dd" title="Return ln(2).">ln_two</a>();</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; genType <a class="code" href="a00145.html#gabf8770f9b8cd9fb89feb7b707f3c339e" title="Return ln(2).">ln_two</a>();</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga43d82c8d42443486d20ccc17ec797770" title="Return ln(10).">ln_ten</a>();</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; genType <a class="code" href="a00145.html#ga05fc32d108a5065b3e6a61bdb6fcd2ee" title="Return ln(10).">ln_ten</a>();</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga554ba051aa168c8e19072f2b1ebf1ef8" title="Return ln(ln(2)).">ln_ln_two</a>();</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; genType <a class="code" href="a00145.html#gaf592c9de9c5376ce741589804a9ab52e" title="Return ln(ln(2)).">ln_ln_two</a>();</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga4a604b1a984d351232d966e9b8fed54e" title="Return 1 / 3.">third</a>();</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; genType <a class="code" href="a00145.html#gaf952fb46d03a8bf5dd79a1ab00b24b77" title="Return 1 / 3.">third</a>();</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga284e20e3e55ffbd5b19d16054bbe2098" title="Return 2 / 3.">two_thirds</a>();</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; genType <a class="code" href="a00145.html#ga7127480e917d0a6016a435b1e8d67176" title="Return 2 / 3.">two_thirds</a>();</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_CONSTEXPR T <a class="code" href="a00145.html#ga14e6ecb0a19dbbfcf6cd48cb536cbd61" title="Return the golden ratio constant.">golden_ratio</a>();</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; genType <a class="code" href="a00145.html#ga3ea4aa61e3c5cc8349cac68c769c28e7" title="Return the golden ratio constant.">golden_ratio</a>();</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;} <span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>

View File

@ -103,25 +103,25 @@
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">typename</span> genType::boolType <a class="code" href="a00146.html#gaad4e444823c0751ab1a90993d37be4c2" title="Returns the component-wise compare of |x - y| &lt; epsilon.">epsilonEqual</a>(</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; genType <span class="keyword">const</span> &amp; y,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a>);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a>);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">typename</span> genType::boolType <a class="code" href="a00146.html#gaad4e444823c0751ab1a90993d37be4c2" title="Returns the component-wise compare of |x - y| &lt; epsilon.">epsilonEqual</a>(</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; genType <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; genType <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a>);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a>);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">typename</span> genType::boolType <a class="code" href="a00146.html#ga71753a95d99c01418eb74ef87638aa2f" title="Returns the component-wise compare of |x - y| &lt; epsilon.">epsilonNotEqual</a>(</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; genType <span class="keyword">const</span> &amp; y,</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a>);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a>);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">typename</span> genType::boolType <a class="code" href="a00146.html#ga71753a95d99c01418eb74ef87638aa2f" title="Returns the component-wise compare of |x - y| &lt; epsilon.">epsilonNotEqual</a>(</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; genType <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; genType <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a>);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a>);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>

View File

@ -141,15 +141,15 @@
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; detail::tmat4x4&lt;valType&gt; <a class="code" href="a00168.html#gab2c29b80a86caa83f6b550de31e6889f" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">eulerAngleYXZ</a>(</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00198.html#gaac012c1a6bc37ce07a87745d9c596eed" title="Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees othe...">yaw</a>, </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00198.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7" title="Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees ot...">pitch</a>, </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00198.html#ga7ef4c8c1ce1ca988add2f73392db0a06" title="Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees oth...">roll</a>);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#gaac012c1a6bc37ce07a87745d9c596eed" title="Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees othe...">yaw</a>, </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7" title="Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees ot...">pitch</a>, </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga7ef4c8c1ce1ca988add2f73392db0a06" title="Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees oth...">roll</a>);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; detail::tmat4x4&lt;valType&gt; <a class="code" href="a00168.html#ga4c297724e663cb77cc2cf7e4ab89b77e" title="Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).">yawPitchRoll</a>(</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00198.html#gaac012c1a6bc37ce07a87745d9c596eed" title="Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees othe...">yaw</a>, </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00198.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7" title="Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees ot...">pitch</a>, </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00198.html#ga7ef4c8c1ce1ca988add2f73392db0a06" title="Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees oth...">roll</a>);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#gaac012c1a6bc37ce07a87745d9c596eed" title="Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees othe...">yaw</a>, </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7" title="Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees ot...">pitch</a>, </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga7ef4c8c1ce1ca988add2f73392db0a06" title="Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees oth...">roll</a>);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; detail::tmat2x2&lt;T&gt; <a class="code" href="a00168.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="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>);</div>

View File

@ -101,42 +101,42 @@
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga522ba657c5bf6a022c49b5717f2b600c" title="Return whether a matrix a null matrix.">isNull</a>(</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; detail::tmat2x2&lt;T&gt; <span class="keyword">const</span> &amp; m, </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;T&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;T&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga522ba657c5bf6a022c49b5717f2b600c" title="Return whether a matrix a null matrix.">isNull</a>(</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; detail::tmat3x3&lt;T&gt; <span class="keyword">const</span> &amp; m, </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;T&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;T&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga522ba657c5bf6a022c49b5717f2b600c" title="Return whether a matrix a null matrix.">isNull</a>(</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; detail::tmat4x4&lt;T&gt; <span class="keyword">const</span> &amp; m, </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;T&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;T&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga5a899dff905871886d6f31517bd1fe30" title="Return whether a matrix is an identity matrix.">isIdentity</a>(</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; genType <span class="keyword">const</span> &amp; m, </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga4db0eb631e14d23d597b93b80e324c5d" title="Return whether a matrix is a normalized matrix.">isNormalized</a>(</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; detail::tmat2x2&lt;valType&gt; <span class="keyword">const</span> &amp; m, </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;valType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;valType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga4db0eb631e14d23d597b93b80e324c5d" title="Return whether a matrix is a normalized matrix.">isNormalized</a>(</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; detail::tmat3x3&lt;valType&gt; <span class="keyword">const</span> &amp; m, </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;valType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;valType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga4db0eb631e14d23d597b93b80e324c5d" title="Return whether a matrix is a normalized matrix.">isNormalized</a>(</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; detail::tmat4x4&lt;valType&gt; <span class="keyword">const</span> &amp; m, </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;valType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;valType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> valType, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>matType&gt; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#gac8a4309441e4f7a83efb978d58b03248" title="Return whether a matrix is an orthonormalized matrix.">isOrthogonal</a>(</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; matType&lt;valType&gt; <span class="keyword">const</span> &amp; m, </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;genType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;genType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>

View File

@ -100,6 +100,9 @@ Functions</h2></td></tr>
<tr class="memitem:ga60d5647f87c2c423497d0f3bf8c407b8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga60d5647f87c2c423497d0f3bf8c407b8"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga60d5647f87c2c423497d0f3bf8c407b8">length</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
<tr class="separator:ga60d5647f87c2c423497d0f3bf8c407b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91c6605e46a8c70c8e25bbc0f41da181"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga91c6605e46a8c70c8e25bbc0f41da181"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181">lerp</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
<tr class="separator:ga91c6605e46a8c70c8e25bbc0f41da181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae04ce320008c9bec0037b4ba21853cb5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gae04ce320008c9bec0037b4ba21853cb5"><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gae04ce320008c9bec0037b4ba21853cb5">mat3_cast</a> (detail::tquat&lt; T &gt; const &amp;x)</td></tr>
<tr class="separator:gae04ce320008c9bec0037b4ba21853cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -112,15 +115,27 @@ Functions</h2></td></tr>
<tr class="memitem:gabd269bb967469a6f1df5963455fee6be"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gabd269bb967469a6f1df5963455fee6be"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gabd269bb967469a6f1df5963455fee6be">normalize</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
<tr class="separator:gabd269bb967469a6f1df5963455fee6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7">pitch</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d37447d81ceade1d10d68c995a4d881"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4d37447d81ceade1d10d68c995a4d881"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881">quat_cast</a> (detail::tmat3x3&lt; T &gt; const &amp;x)</td></tr>
<tr class="separator:ga4d37447d81ceade1d10d68c995a4d881"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24adafe33b0bcad906c8724a762e5299"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga24adafe33b0bcad906c8724a762e5299"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga24adafe33b0bcad906c8724a762e5299">quat_cast</a> (detail::tmat4x4&lt; T &gt; const &amp;x)</td></tr>
<tr class="separator:ga24adafe33b0bcad906c8724a762e5299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7ef4c8c1ce1ca988add2f73392db0a06">roll</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga297d6a9635153c76d7c011efa716b5da"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga297d6a9635153c76d7c011efa716b5da"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga297d6a9635153c76d7c011efa716b5da">rotate</a> (detail::tquat&lt; T &gt; const &amp;q, typename detail::tquat&lt; T &gt;::value_type const &amp;angle, detail::tvec3&lt; T &gt; const &amp;axis)</td></tr>
<tr class="separator:ga297d6a9635153c76d7c011efa716b5da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga4acb60c1b472fc6cb5322a63ca1cf9a4">slerp</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
<tr class="separator:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaac012c1a6bc37ce07a87745d9c596eed">yaw</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
@ -128,11 +143,13 @@ Functions</h2></td></tr>
<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_GTC_quaternion</a></p>
<dl class="section date"><dt>Date</dt><dd>2009-05-21 / 2011-06-05 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>2009-05-21 / 2012-12-20 </dd></dl>
<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00141.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="a00147.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float</a> (dependence) </dd></dl>
<a class="el" href="a00147.html" title="Defines the half-precision floating-point type, along with various typedefs for vectors and matrices...">GLM_GTC_half_float</a> (dependence) </dd>
<dd>
<a class="el" href="a00145.html" title="Allow to perform bit operations on integer values.">GLM_GTC_constants</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
</div></div><!-- contents -->

View File

@ -83,206 +83,232 @@
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifndef GLM_GTC_quaternion</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_GTC_quaternion GLM_VERSION</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Dependency:</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_quaternion extension included&quot;)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">struct </span>tquat<span class="comment">// : public genType&lt;T, tquat&gt;</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">enum</span> ctor{null};</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">typedef</span> std::size_t size_type;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; value_type x, y, z, w;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL size_type <a class="code" href="a00131.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#ifndef GLM_GTC_quaternion</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_GTC_quaternion GLM_VERSION</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Dependency:</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../gtc/half_float.hpp&quot;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_quaternion extension included&quot;)</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">struct </span>tquat<span class="comment">// : public genType&lt;T, tquat&gt;</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">enum</span> ctor{null};</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typedef</span> std::size_t size_type;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; value_type x, y, z, w;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Constructors</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; tquat();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">explicit</span> tquat(</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; value_type <span class="keyword">const</span> &amp; s, </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; glm::detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">explicit</span> tquat(</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; value_type <span class="keyword">const</span> &amp; w, </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; value_type <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; value_type <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; value_type <span class="keyword">const</span> &amp; z);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Convertions</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL size_type <a class="code" href="a00131.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Constructors</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; tquat();</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">explicit</span> tquat(</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; value_type <span class="keyword">const</span> &amp; s, </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; glm::detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">explicit</span> tquat(</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; value_type <span class="keyword">const</span> &amp; w, </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; value_type <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; value_type <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; value_type <span class="keyword">const</span> &amp; z);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">explicit</span> tquat(</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; tvec3&lt;T&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#gaa53e0e8933e176c6207720433fb8dd2b" title="Returns euler angles, yitch as x, yaw as y, roll as z.">eulerAngles</a>);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Convertions</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">explicit</span> tquat(</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; tmat3x3&lt;T&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; tvec3&lt;T&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#gaa53e0e8933e176c6207720433fb8dd2b" title="Returns euler angles, yitch as x, yaw as y, roll as z.">eulerAngles</a>);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">explicit</span> tquat(</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; tmat4x4&lt;T&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Accesses</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; value_type &amp; operator[](<span class="keywordtype">int</span> i);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; value_type <span class="keyword">const</span> &amp; operator[](<span class="keywordtype">int</span> i) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Operators</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; tquat&lt;T&gt; &amp; operator*=(value_type <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; tquat&lt;T&gt; &amp; operator/=(value_type <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; detail::tquat&lt;T&gt; operator- (</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; detail::tquat&lt;T&gt; operator+ ( </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; p); </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; detail::tquat&lt;T&gt; operator* ( </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; p); </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; detail::tvec3&lt;T&gt; operator* (</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; detail::tvec3&lt;T&gt; operator* (</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; v,</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; detail::tvec4&lt;T&gt; operator* (</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; detail::tvec4&lt;T&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; detail::tvec4&lt;T&gt; operator* (</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; detail::tvec4&lt;T&gt; <span class="keyword">const</span> &amp; v,</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; detail::tquat&lt;T&gt; operator* (</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; detail::tquat&lt;T&gt; operator* (</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; detail::tquat&lt;T&gt; operator/ (</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;} <span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; tmat3x3&lt;T&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">explicit</span> tquat(</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; tmat4x4&lt;T&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// Accesses</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; value_type &amp; operator[](<span class="keywordtype">int</span> i);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; value_type <span class="keyword">const</span> &amp; operator[](<span class="keywordtype">int</span> i) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// Operators</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; tquat&lt;T&gt; &amp; operator*=(value_type <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; tquat&lt;T&gt; &amp; operator/=(value_type <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; };</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; detail::tquat&lt;T&gt; operator- (</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; detail::tquat&lt;T&gt; operator+ ( </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; p); </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; detail::tquat&lt;T&gt; operator* ( </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; p); </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; detail::tvec3&lt;T&gt; operator* (</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; detail::tvec3&lt;T&gt; operator* (</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; v,</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; detail::tvec4&lt;T&gt; operator* (</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; detail::tvec4&lt;T&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; detail::tvec4&lt;T&gt; operator* (</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; detail::tvec4&lt;T&gt; <span class="keyword">const</span> &amp; v,</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; detail::tquat&lt;T&gt; operator* (</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; detail::tquat&lt;T&gt; operator* (</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s,</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; detail::tquat&lt;T&gt; operator/ (</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; T <a class="code" href="a00131.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>(</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00131.html#ga68b931c228750eeba844c273c54ca43d" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; T <a class="code" href="a00131.html#ga7a31d2864eccfe665409e3b44f5e6e8d" title="Returns the dot product of x and y, i.e., result = x * y.">dot</a>(</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q1, </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q2);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;} <span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; T <a class="code" href="a00131.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>(</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00131.html#ga68b931c228750eeba844c273c54ca43d" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; T <a class="code" href="a00131.html#ga7a31d2864eccfe665409e3b44f5e6e8d" title="Returns the dot product of x and y, i.e., result = x * y.">dot</a>(</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q1, </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q2);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00153.html#ga8b6594dffb8bf455d848ffa2169ba41d" title="Returns the q conjugate.">conjugate</a>(</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00133.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00151.html#gaacb9cbe8f93a8fef9dc3e25559df19c0" title="Builds a rotation 4 * 4 matrix created from an axis vector and an angle.">rotate</a>(</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>, </div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga72457604550d0414e522dbec0d98f276" title="Returns the q rotation axis.">axis</a>);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; detail::tvec3&lt;T&gt; <a class="code" href="a00153.html#gaa53e0e8933e176c6207720433fb8dd2b" title="Returns euler angles, yitch as x, yaw as y, roll as z.">eulerAngles</a>(</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; detail::tmat3x3&lt;T&gt; <a class="code" href="a00153.html#gae04ce320008c9bec0037b4ba21853cb5" title="Converts a quaternion to a 3 * 3 matrix.">mat3_cast</a>(</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; detail::tmat4x4&lt;T&gt; <a class="code" href="a00153.html#ga8c376eb15971eb52d85df5ee26825627" title="Converts a quaternion to a 4 * 4 matrix.">mat4_cast</a>(</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; detail::tmat3x3&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181" title="Linear interpolation of two quaternions.">lerp</a>(</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00153.html#ga4acb60c1b472fc6cb5322a63ca1cf9a4" title="Spherical linear interpolation of two quaternions.">slerp</a>(</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00153.html#ga8b6594dffb8bf455d848ffa2169ba41d" title="Returns the q conjugate.">conjugate</a>(</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00133.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; detail::tmat4x4&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; valType <a class="code" href="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>(</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; detail::tvec3&lt;valType&gt; <a class="code" href="a00153.html#ga72457604550d0414e522dbec0d98f276" title="Returns the q rotation axis.">axis</a>(</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; detail::tquat&lt;valType&gt; <a class="code" href="a00153.html#gaafc03953867e42a39dc08575ad4532ad" title="Build a quaternion from an angle and a normalized axis.">angleAxis</a>(</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>, </div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; valType <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; valType <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; valType <span class="keyword">const</span> &amp; z);</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; detail::tquat&lt;valType&gt; <a class="code" href="a00153.html#gaafc03953867e42a39dc08575ad4532ad" title="Build a quaternion from an angle and a normalized axis.">angleAxis</a>(</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>, </div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga72457604550d0414e522dbec0d98f276" title="Returns the q rotation axis.">axis</a>);</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
<div class="line"><a name="l00286"></a><span class="lineno"><a class="code" href="a00153.html#ga60408579db470456070a3336295625a7"> 286</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;float&gt; <a class="code" href="a00153.html#ga60408579db470456070a3336295625a7" title="Quaternion of floating-point numbers.">quat</a>;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"><a class="code" href="a00153.html#gaba1bbdeae84c942ce0dc83af40e1d7d3"> 291</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;detail::half&gt; <a class="code" href="a00153.html#gaba1bbdeae84c942ce0dc83af40e1d7d3" title="Quaternion of half-precision floating-point numbers.">hquat</a>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"><a class="code" href="a00153.html#gaae07c293efbe1c530ff18044a15fe662"> 296</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;float&gt; <a class="code" href="a00153.html#gaae07c293efbe1c530ff18044a15fe662" title="Quaternion of single-precision floating-point numbers.">fquat</a>;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
<div class="line"><a name="l00301"></a><span class="lineno"><a class="code" href="a00153.html#ga5428321324094c7170d6133c8139d255"> 301</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;double&gt; <a class="code" href="a00153.html#ga5428321324094c7170d6133c8139d255" title="Quaternion of double-precision floating-point numbers.">dquat</a>;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno"><a class="code" href="a00153.html#ga5acd0f3e9f9e3c0e6577440443ec4594"> 306</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;lowp_float&gt; <a class="code" href="a00153.html#ga5acd0f3e9f9e3c0e6577440443ec4594" title="Quaternion of low precision floating-point numbers.">lowp_quat</a>;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00151.html#gaacb9cbe8f93a8fef9dc3e25559df19c0" title="Builds a rotation 4 * 4 matrix created from an axis vector and an angle.">rotate</a>(</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; q, </div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">typename</span> detail::tquat&lt;T&gt;::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>, </div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; detail::tvec3&lt;T&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga72457604550d0414e522dbec0d98f276" title="Returns the q rotation axis.">axis</a>);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; detail::tvec3&lt;T&gt; <a class="code" href="a00153.html#gaa53e0e8933e176c6207720433fb8dd2b" title="Returns euler angles, yitch as x, yaw as y, roll as z.">eulerAngles</a>(</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; valType <a class="code" href="a00153.html#ga7ef4c8c1ce1ca988add2f73392db0a06" title="Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees oth...">roll</a>(</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; valType <a class="code" href="a00153.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7" title="Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees ot...">pitch</a>(</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; valType <a class="code" href="a00153.html#gaac012c1a6bc37ce07a87745d9c596eed" title="Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees othe...">yaw</a>(</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; detail::tmat3x3&lt;T&gt; <a class="code" href="a00153.html#gae04ce320008c9bec0037b4ba21853cb5" title="Converts a quaternion to a 3 * 3 matrix.">mat3_cast</a>(</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; detail::tmat4x4&lt;T&gt; <a class="code" href="a00153.html#ga8c376eb15971eb52d85df5ee26825627" title="Converts a quaternion to a 4 * 4 matrix.">mat4_cast</a>(</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; detail::tmat3x3&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; detail::tmat4x4&lt;T&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; valType <a class="code" href="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>(</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
<div class="line"><a name="l00311"></a><span class="lineno"><a class="code" href="a00153.html#gae93fe73ea5fe5e2150c2eb0641394dc8"> 311</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;mediump_float&gt; <a class="code" href="a00153.html#gae93fe73ea5fe5e2150c2eb0641394dc8" title="Quaternion of medium precision floating-point numbers.">mediump_quat</a>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="code" href="a00153.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c"> 316</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;highp_float&gt; <a class="code" href="a00153.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c" title="Quaternion of high precision floating-point numbers.">highp_quat</a>;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;} <span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor">#include &quot;quaternion.inl&quot;</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif//GLM_GTC_quaternion</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; detail::tvec3&lt;valType&gt; <a class="code" href="a00153.html#ga72457604550d0414e522dbec0d98f276" title="Returns the q rotation axis.">axis</a>(</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; detail::tquat&lt;valType&gt; <a class="code" href="a00153.html#gaafc03953867e42a39dc08575ad4532ad" title="Build a quaternion from an angle and a normalized axis.">angleAxis</a>(</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>, </div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; valType <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; valType <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; valType <span class="keyword">const</span> &amp; z);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; detail::tquat&lt;valType&gt; <a class="code" href="a00153.html#gaafc03953867e42a39dc08575ad4532ad" title="Build a quaternion from an angle and a normalized axis.">angleAxis</a>(</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga69041d18bd8539fe82d6170932d28362" title="Returns the quaternion rotation angle.">angle</a>, </div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00153.html#ga72457604550d0414e522dbec0d98f276" title="Returns the q rotation axis.">axis</a>);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
<div class="line"><a name="l00344"></a><span class="lineno"><a class="code" href="a00153.html#ga60408579db470456070a3336295625a7"> 344</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;float&gt; <a class="code" href="a00153.html#ga60408579db470456070a3336295625a7" title="Quaternion of floating-point numbers.">quat</a>;</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="code" href="a00153.html#gaba1bbdeae84c942ce0dc83af40e1d7d3"> 349</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;detail::half&gt; <a class="code" href="a00153.html#gaba1bbdeae84c942ce0dc83af40e1d7d3" title="Quaternion of half-precision floating-point numbers.">hquat</a>;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
<div class="line"><a name="l00354"></a><span class="lineno"><a class="code" href="a00153.html#gaae07c293efbe1c530ff18044a15fe662"> 354</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;float&gt; <a class="code" href="a00153.html#gaae07c293efbe1c530ff18044a15fe662" title="Quaternion of single-precision floating-point numbers.">fquat</a>;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
<div class="line"><a name="l00359"></a><span class="lineno"><a class="code" href="a00153.html#ga5428321324094c7170d6133c8139d255"> 359</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;double&gt; <a class="code" href="a00153.html#ga5428321324094c7170d6133c8139d255" title="Quaternion of double-precision floating-point numbers.">dquat</a>;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="code" href="a00153.html#ga5acd0f3e9f9e3c0e6577440443ec4594"> 364</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;lowp_float&gt; <a class="code" href="a00153.html#ga5acd0f3e9f9e3c0e6577440443ec4594" title="Quaternion of low precision floating-point numbers.">lowp_quat</a>;</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
<div class="line"><a name="l00369"></a><span class="lineno"><a class="code" href="a00153.html#gae93fe73ea5fe5e2150c2eb0641394dc8"> 369</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;mediump_float&gt; <a class="code" href="a00153.html#gae93fe73ea5fe5e2150c2eb0641394dc8" title="Quaternion of medium precision floating-point numbers.">mediump_quat</a>;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
<div class="line"><a name="l00374"></a><span class="lineno"><a class="code" href="a00153.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c"> 374</a></span>&#160; <span class="keyword">typedef</span> detail::tquat&lt;highp_float&gt; <a class="code" href="a00153.html#ga8a7c2c751ad30db9ec4268a6b7d99f6c" title="Quaternion of high precision floating-point numbers.">highp_quat</a>;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;} <span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#include &quot;quaternion.inl&quot;</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor">#endif//GLM_GTC_quaternion</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -58,9 +58,6 @@ Functions</h2></td></tr>
<tr class="memitem:gacd88ee5f0938469119199bdb216c68a1"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gacd88ee5f0938469119199bdb216c68a1"><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gacd88ee5f0938469119199bdb216c68a1">cross</a> (detail::tvec3&lt; valType &gt; const &amp;v, detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
<tr class="separator:gacd88ee5f0938469119199bdb216c68a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf23d24e27b4e4954d6e0dcf8cc4451c"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaaf23d24e27b4e4954d6e0dcf8cc4451c"><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaaf23d24e27b4e4954d6e0dcf8cc4451c">eulerAngles</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaaf23d24e27b4e4954d6e0dcf8cc4451c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae94ef4f3c0dd37dd65a95de207d1a27a"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gae94ef4f3c0dd37dd65a95de207d1a27a"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gae94ef4f3c0dd37dd65a95de207d1a27a">exp</a> (detail::tquat&lt; valType &gt; const &amp;q, valType const &amp;exponent)</td></tr>
<tr class="separator:gae94ef4f3c0dd37dd65a95de207d1a27a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -76,15 +73,9 @@ Functions</h2></td></tr>
<tr class="memitem:ga68d8d03cc87b3980abec4d80534f3d8e"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga68d8d03cc87b3980abec4d80534f3d8e"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga68d8d03cc87b3980abec4d80534f3d8e">log</a> (detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
<tr class="separator:ga68d8d03cc87b3980abec4d80534f3d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7">pitch</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7765f7d8a3399af25f8bc7956a77c7b2"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga7765f7d8a3399af25f8bc7956a77c7b2"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga7765f7d8a3399af25f8bc7956a77c7b2">pow</a> (detail::tquat&lt; valType &gt; const &amp;x, valType const &amp;y)</td></tr>
<tr class="separator:ga7765f7d8a3399af25f8bc7956a77c7b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga7ef4c8c1ce1ca988add2f73392db0a06">roll</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1ada3be83514169fed6054b4e68b5ca"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gad1ada3be83514169fed6054b4e68b5ca"><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gad1ada3be83514169fed6054b4e68b5ca">rotate</a> (detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
<tr class="separator:gad1ada3be83514169fed6054b4e68b5ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -109,9 +100,6 @@ Functions</h2></td></tr>
<tr class="memitem:ga25b6237ccb6c4a69d57a181aac99aa43"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga25b6237ccb6c4a69d57a181aac99aa43"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga25b6237ccb6c4a69d57a181aac99aa43">toQuat</a> (detail::tmat4x4&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:ga25b6237ccb6c4a69d57a181aac99aa43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaac012c1a6bc37ce07a87745d9c596eed">yaw</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>

View File

@ -154,54 +154,38 @@
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; q);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; valType <a class="code" href="a00198.html#ga7ef4c8c1ce1ca988add2f73392db0a06" title="Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees oth...">roll</a>(</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="code" href="a00198.html#gaae1a23ba337628402dbe68d6567a9444"> 149</a></span>&#160; detail::tmat3x3&lt;valType&gt; <a class="code" href="a00198.html#gaae1a23ba337628402dbe68d6567a9444" title="Converts a quaternion to a 3 * 3 matrix.">toMat3</a>(</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00153.html#gae04ce320008c9bec0037b4ba21853cb5" title="Converts a quaternion to a 3 * 3 matrix.">mat3_cast</a>(x);}</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; valType <a class="code" href="a00198.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7" title="Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees ot...">pitch</a>(</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="a00198.html#ga14c3426d79fe82b07cd1f3610a18d9f5"> 156</a></span>&#160; detail::tmat4x4&lt;valType&gt; <a class="code" href="a00198.html#ga14c3426d79fe82b07cd1f3610a18d9f5" title="Converts a quaternion to a 4 * 4 matrix.">toMat4</a>(</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00153.html#ga8c376eb15971eb52d85df5ee26825627" title="Converts a quaternion to a 4 * 4 matrix.">mat4_cast</a>(x);}</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; valType <a class="code" href="a00198.html#gaac012c1a6bc37ce07a87745d9c596eed" title="Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees othe...">yaw</a>(</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="code" href="a00198.html#ga70cb5b2da64a17632dbf151dcfec0150"> 163</a></span>&#160; detail::tquat&lt;valType&gt; <a class="code" href="a00198.html#ga70cb5b2da64a17632dbf151dcfec0150" title="Converts a 3 * 3 matrix to a quaternion.">toQuat</a>(</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; detail::tmat3x3&lt;valType&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(x);}</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; detail::tvec3&lt;valType&gt; <a class="code" href="a00153.html#gaa53e0e8933e176c6207720433fb8dd2b" title="Returns euler angles, yitch as x, yaw as y, roll as z.">eulerAngles</a>(</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="a00198.html#ga25b6237ccb6c4a69d57a181aac99aa43"> 170</a></span>&#160; detail::tquat&lt;valType&gt; <a class="code" href="a00198.html#ga70cb5b2da64a17632dbf151dcfec0150" title="Converts a 3 * 3 matrix to a quaternion.">toQuat</a>(</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; detail::tmat4x4&lt;valType&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(x);}</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="code" href="a00198.html#gaae1a23ba337628402dbe68d6567a9444"> 177</a></span>&#160; detail::tmat3x3&lt;valType&gt; <a class="code" href="a00198.html#gaae1a23ba337628402dbe68d6567a9444" title="Converts a quaternion to a 3 * 3 matrix.">toMat3</a>(</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00153.html#gae04ce320008c9bec0037b4ba21853cb5" title="Converts a quaternion to a 3 * 3 matrix.">mat3_cast</a>(x);}</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="code" href="a00198.html#ga14c3426d79fe82b07cd1f3610a18d9f5"> 184</a></span>&#160; detail::tmat4x4&lt;valType&gt; <a class="code" href="a00198.html#ga14c3426d79fe82b07cd1f3610a18d9f5" title="Converts a quaternion to a 4 * 4 matrix.">toMat4</a>(</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; detail::tquat&lt;valType&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00153.html#ga8c376eb15971eb52d85df5ee26825627" title="Converts a quaternion to a 4 * 4 matrix.">mat4_cast</a>(x);}</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="a00198.html#ga70cb5b2da64a17632dbf151dcfec0150"> 191</a></span>&#160; detail::tquat&lt;valType&gt; <a class="code" href="a00198.html#ga70cb5b2da64a17632dbf151dcfec0150" title="Converts a 3 * 3 matrix to a quaternion.">toQuat</a>(</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; detail::tmat3x3&lt;valType&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(x);}</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00198.html#gae2cb4ac4676a57fb6db64aa515e608ab" title="Quaternion interpolation using the rotation short path.">shortMix</a>(</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00198.html#ga804e80b331a83eed2ed71a5c985593cd" title="Quaternion normalized linear interpolation.">fastMix</a>(</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="code" href="a00198.html#ga25b6237ccb6c4a69d57a181aac99aa43"> 198</a></span>&#160; detail::tquat&lt;valType&gt; <a class="code" href="a00198.html#ga70cb5b2da64a17632dbf151dcfec0150" title="Converts a 3 * 3 matrix to a quaternion.">toQuat</a>(</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; detail::tmat4x4&lt;valType&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881" title="Converts a 3 * 3 matrix to a quaternion.">quat_cast</a>(x);}</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00198.html#gae2cb4ac4676a57fb6db64aa515e608ab" title="Quaternion interpolation using the rotation short path.">shortMix</a>(</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; detail::tquat&lt;T&gt; <a class="code" href="a00198.html#ga804e80b331a83eed2ed71a5c985593cd" title="Quaternion normalized linear interpolation.">fastMix</a>(</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; detail::tquat&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#include &quot;quaternion.inl&quot;</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#endif//GLM_GTX_quaternion</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#include &quot;quaternion.inl&quot;</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#endif//GLM_GTX_quaternion</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -577,151 +577,158 @@
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="comment">//#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_AVX2)</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;immintrin.h&gt;</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_AVX)</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;immintrin.h&gt;</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE4)</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;smmintrin.h&gt;</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE3)</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;pmmintrin.h&gt;</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE2)</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;emmintrin.h&gt;</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"></span><span class="comment">//#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_ARCH_DISPLAYED))</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_ARCH_DISPLAYED</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># if(GLM_ARCH == GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Platform independent&quot;)</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_SSE2)</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE2 instruction set&quot;)</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_SSE3)</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE3 instruction set&quot;)</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_SSE4)</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE4 instruction set&quot;)</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_AVX)</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: AVX instruction set&quot;)</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_AVX2)</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: AVX2 instruction set&quot;)</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># endif//GLM_ARCH</span></div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="comment">// Support check macros</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor">#define GLM_SUPPORT_ANONYMOUS_UNION() \</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX98) == GLM_LANG_CXX98)</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="comment">//#define GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() &lt;backslash&gt;</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="comment">// (((GLM_LANG &amp; GLM_LANG_CXX11) == GLM_LANG_CXX11) || ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS) == GLM_LANG_CXXMS) || ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_LANG == GLM_LANG_CXX0X)))</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor">#define GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() \</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"> (((GLM_LANG &amp; GLM_LANG_CXX11) == GLM_LANG_CXX11) || ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; ((GLM_LANG &amp; GLM_LANG_CXXMS) == GLM_LANG_CXXMS)) || ((GLM_LANG == GLM_LANG_CXX0X) == GLM_LANG_CXX0X))</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor">#define GLM_SUPPORT_SWIZZLE_OPERATOR() \</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"> (</span><span class="comment">/*defined(GLM_SWIZZLE) &amp;&amp; */</span><span class="preprocessor">GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor">#define GLM_SUPPORT_SWIZZLE_FUNCTION() defined(GLM_SWIZZLE)</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment">// Components</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="comment">//#define GLM_FORCE_ONLY_XYZW</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor">#define GLM_COMPONENT_ONLY_XYZW 0 // To disable multiple vector component names access.</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPONENT_CXX98 1 // </span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPONENT_CXX11 2 // To use anonymous union to provide multiple component names access for class valType. Visual C++ only.</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor">#if(GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() &amp;&amp; !defined(GLM_FORCE_ONLY_XYZW))</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_CXX11</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif(GLM_SUPPORT_ANONYMOUS_UNION() &amp;&amp; !defined(GLM_FORCE_ONLY_XYZW))</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_CXX98</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_ONLY_XYZW</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_COMPONENT_DISPLAYED))</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_COMPONENT_DISPLAYED</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_CXX98)</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: x,y,z,w; r,g,b,a; s,t,p,q component names except of half based vector types&quot;)</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span></div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: x,y,z,w component names for all vector types&quot;)</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_CXX11)</span></div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: x,y,z,w; r,g,b,a; s,t,p,q component names for all vector types&quot;)</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># else</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM: GLM_COMPONENT value unknown&quot;</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># endif//GLM_MESSAGE_COMPONENT_DISPLAYED</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="comment">// Radians</span></div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="comment">//#define GLM_FORCE_RADIANS</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="comment">// Static assert</span></div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor">#if(GLM_LANG == GLM_LANG_CXX0X)</span></div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif(defined(BOOST_STATIC_ASSERT))</span></div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)</span></div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span></div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//GLM_LANG</span></div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="comment">// Qualifiers </span></div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="comment">// User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA</span></div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor">#if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_CUDA))</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__ </span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__ </span></div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span></div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_VAR_USED __attribute__ ((unused))</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="comment">// With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="comment">// that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="comment">// To fix, we just explicitly include intrin.h here.</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor">#if defined(__MINGW32__) &amp;&amp; (GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;intrin.h&gt;</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="comment">//#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_AVX2)</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;immintrin.h&gt;</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_AVX)</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;immintrin.h&gt;</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE4)</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;smmintrin.h&gt;</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE3)</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;pmmintrin.h&gt;</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE2)</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># include &lt;emmintrin.h&gt;</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"></span><span class="comment">//#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_ARCH_DISPLAYED))</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_ARCH_DISPLAYED</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># if(GLM_ARCH == GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Platform independent&quot;)</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_SSE2)</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE2 instruction set&quot;)</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_SSE3)</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE3 instruction set&quot;)</span></div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_SSE4)</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: SSE4 instruction set&quot;)</span></div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_AVX)</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: AVX instruction set&quot;)</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_AVX2)</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: AVX2 instruction set&quot;)</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># endif//GLM_ARCH</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="comment">// Support check macros</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor">#define GLM_SUPPORT_ANONYMOUS_UNION() \</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX98) == GLM_LANG_CXX98)</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment">//#define GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() &lt;backslash&gt;</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment">// (((GLM_LANG &amp; GLM_LANG_CXX11) == GLM_LANG_CXX11) || ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS) == GLM_LANG_CXXMS) || ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_LANG == GLM_LANG_CXX0X)))</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor">#define GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() \</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"> (((GLM_LANG &amp; GLM_LANG_CXX11) == GLM_LANG_CXX11) || ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; ((GLM_LANG &amp; GLM_LANG_CXXMS) == GLM_LANG_CXXMS)) || ((GLM_LANG == GLM_LANG_CXX0X) == GLM_LANG_CXX0X))</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor">#define GLM_SUPPORT_SWIZZLE_OPERATOR() \</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"> (</span><span class="comment">/*defined(GLM_SWIZZLE) &amp;&amp; */</span><span class="preprocessor">GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor">#define GLM_SUPPORT_SWIZZLE_FUNCTION() defined(GLM_SWIZZLE)</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="comment">// Components</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="comment">//#define GLM_FORCE_ONLY_XYZW</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor">#define GLM_COMPONENT_ONLY_XYZW 0 // To disable multiple vector component names access.</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPONENT_CXX98 1 // </span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_COMPONENT_CXX11 2 // To use anonymous union to provide multiple component names access for class valType. Visual C++ only.</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor">#if(GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() &amp;&amp; !defined(GLM_FORCE_ONLY_XYZW))</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_CXX11</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif(GLM_SUPPORT_ANONYMOUS_UNION() &amp;&amp; !defined(GLM_FORCE_ONLY_XYZW))</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_CXX98</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_COMPONENT GLM_COMPONENT_ONLY_XYZW</span></div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_COMPONENT_DISPLAYED))</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_COMPONENT_DISPLAYED</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># if(GLM_COMPONENT == GLM_COMPONENT_CXX98)</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: x,y,z,w; r,g,b,a; s,t,p,q component names except of half based vector types&quot;)</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: x,y,z,w component names for all vector types&quot;)</span></div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_COMPONENT == GLM_COMPONENT_CXX11)</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: x,y,z,w; r,g,b,a; s,t,p,q component names for all vector types&quot;)</span></div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># else</span></div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># error &quot;GLM: GLM_COMPONENT value unknown&quot;</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># endif//GLM_MESSAGE_COMPONENT_DISPLAYED</span></div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="comment">// Radians</span></div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="comment">//#define GLM_FORCE_RADIANS</span></div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="comment">// Static assert</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor">#if(GLM_LANG == GLM_LANG_CXX0X)</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif(defined(BOOST_STATIC_ASSERT))</span></div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)</span></div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span></div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//GLM_LANG</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="comment">// Qualifiers </span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="comment">// User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor">#if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_CUDA))</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__ </span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__ </span></div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_VAR_USED</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor">#if(defined(GLM_FORCE_INLINE))</span></div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2005))</span></div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE __forceinline</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC34))</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE __attribute__((always_inline))</span></div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># else</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE inline</span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># endif//GLM_COMPILER</span></div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE inline</span></div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="comment">// Swizzle operators</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="comment">// User defines: GLM_SWIZZLE</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED))</span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># if(GLM_SUPPORT_SWIZZLE_OPERATOR())</span></div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators enabled&quot;)</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_SUPPORT_SWIZZLE_FUNCTION())</span></div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators supported through swizzling functions&quot;)</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># else</span></div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators disabled&quot;)</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor">#endif//glm_setup</span></div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_VAR_USED __attribute__ ((unused))</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_VAR_USED</span></div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor">#if(defined(GLM_FORCE_INLINE))</span></div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2005))</span></div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE __forceinline</span></div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC34))</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE __attribute__((always_inline))</span></div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># else</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE inline</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># endif//GLM_COMPILER</span></div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_INLINE inline</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="comment">// Swizzle operators</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="comment">// User defines: GLM_SWIZZLE</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED))</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># if(GLM_SUPPORT_SWIZZLE_OPERATOR())</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators enabled&quot;)</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># elif(GLM_SUPPORT_SWIZZLE_FUNCTION())</span></div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators supported through swizzling functions&quot;)</span></div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># else</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators disabled&quot;)</span></div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif//GLM_MESSAGE</span></div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor">#endif//glm_setup</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -135,99 +135,101 @@
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; fvec4SIMD <span class="keyword">const</span> &amp; v3);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">explicit</span> fmat4x4SIMD(</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; tmat4x4&lt;float&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Conversions</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">//template &lt;typename U&gt; </span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x4&lt;U&gt; const &amp; m);</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x2&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x3&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x3&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x2&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x4&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x2&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x4&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x3&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// Accesses</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; fvec4SIMD &amp; operator[](size_type i);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; fvec4SIMD <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Unary updatable operators</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; fmat4x4SIMD &amp; operator= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; fmat4x4SIMD &amp; operator+= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; fmat4x4SIMD &amp; operator+= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; fmat4x4SIMD &amp; operator-= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; fmat4x4SIMD &amp; operator-= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; fmat4x4SIMD &amp; operator*= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; fmat4x4SIMD &amp; operator*= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; fmat4x4SIMD &amp; operator/= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; fmat4x4SIMD &amp; operator/= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; fmat4x4SIMD &amp; operator++ ();</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; fmat4x4SIMD &amp; operator-- ();</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Binary operators</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; fmat4x4SIMD operator+ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; fmat4x4SIMD operator+ (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; fmat4x4SIMD operator+ (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; fmat4x4SIMD operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; fmat4x4SIMD operator- (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; fmat4x4SIMD operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; fmat4x4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; fmat4x4SIMD operator* (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; fvec4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m, fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; fvec4SIMD operator* (fvec4SIMD <span class="keyword">const</span> &amp; v, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; fmat4x4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">explicit</span> fmat4x4SIMD(</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; __m128 <span class="keyword">const</span> in[4]);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// Conversions</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">//template &lt;typename U&gt; </span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x4&lt;U&gt; const &amp; m);</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x2&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x3&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x3&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x2&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x4&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x2&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x4&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x3&lt;T&gt; const &amp; x);</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// Accesses</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; fvec4SIMD &amp; operator[](size_type i);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; fvec4SIMD <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// Unary updatable operators</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; fmat4x4SIMD &amp; operator= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; fmat4x4SIMD &amp; operator+= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; fmat4x4SIMD &amp; operator+= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; fmat4x4SIMD &amp; operator-= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; fmat4x4SIMD &amp; operator-= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; fmat4x4SIMD &amp; operator*= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; fmat4x4SIMD &amp; operator*= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; fmat4x4SIMD &amp; operator/= (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; fmat4x4SIMD &amp; operator/= (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; fmat4x4SIMD &amp; operator++ ();</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; fmat4x4SIMD &amp; operator-- ();</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; };</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// Binary operators</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; fmat4x4SIMD operator+ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; fmat4x4SIMD operator+ (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; fmat4x4SIMD operator+ (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; fmat4x4SIMD operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; fmat4x4SIMD operator- (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; fmat4x4SIMD operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; fmat4x4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; fmat4x4SIMD operator* (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; fvec4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m, fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; fvec4SIMD operator* (fvec4SIMD <span class="keyword">const</span> &amp; v, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; fmat4x4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; fmat4x4SIMD operator/ (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; fvec4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; fvec4SIMD operator/ (fvec4SIMD <span class="keyword">const</span> &amp; v, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; fmat4x4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; fmat4x4SIMD operator* (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; fmat4x4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; fmat4x4SIMD operator/ (<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; fvec4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; fvec4SIMD operator/ (fvec4SIMD <span class="keyword">const</span> &amp; v, fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Unary constant operators</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; fmat4x4SIMD <span class="keyword">const</span> operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; fmat4x4SIMD <span class="keyword">const</span> operator-- (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; fmat4x4SIMD <span class="keyword">const</span> operator++ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">typedef</span> detail::fmat4x4SIMD simdMat4;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; fmat4x4SIMD operator/ (fmat4x4SIMD <span class="keyword">const</span> &amp; m1, fmat4x4SIMD <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// Unary constant operators</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; fmat4x4SIMD <span class="keyword">const</span> operator- (fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; fmat4x4SIMD <span class="keyword">const</span> operator-- (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; fmat4x4SIMD <span class="keyword">const</span> operator++ (fmat4x4SIMD <span class="keyword">const</span> &amp; m, <span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; detail::tmat4x4&lt;float&gt; <a class="code" href="a00153.html#ga8c376eb15971eb52d85df5ee26825627" title="Converts a quaternion to a 4 * 4 matrix.">mat4_cast</a>(</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00133.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>(</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00133.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>(</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; c,</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; r);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00133.html#gac58a4106a57fb7da41b3aeae3832998b" title="Returns the transposed matrix of x.">transpose</a>(</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00133.html#gad3bfb2098e1572d2131a261c1fb76dd4" title="Return the determinant of a mat2 matrix.">determinant</a>(</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00133.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;}<span class="comment">// namespace glm</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#include &quot;simd_mat4.inl&quot;</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">typedef</span> detail::fmat4x4SIMD simdMat4;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; detail::tmat4x4&lt;float&gt; <a class="code" href="a00153.html#ga8c376eb15971eb52d85df5ee26825627" title="Converts a quaternion to a 4 * 4 matrix.">mat4_cast</a>(</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00133.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>(</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00133.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>(</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; c,</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; r);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00133.html#gac58a4106a57fb7da41b3aeae3832998b" title="Returns the transposed matrix of x.">transpose</a>(</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00133.html#gad3bfb2098e1572d2131a261c1fb76dd4" title="Return the determinant of a mat2 matrix.">determinant</a>(</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00133.html#gada3384a86cf38a1fd96275194b8ba8c0" title="Return the inverse of a mat2 matrix.">inverse</a>(</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; detail::fmat4x4SIMD <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}<span class="comment">// namespace glm</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#endif//GLM_GTX_simd_mat4</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#include &quot;simd_mat4.inl&quot;</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#endif//GLM_GTX_simd_mat4</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -101,262 +101,284 @@
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_simd_vec4 extension included&quot;)</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_ALIGNED_STRUCT(16) fvec4SIMD</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">enum</span> ctor{null};</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typedef</span> __m128 value_type;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">typedef</span> std::size_t size_type;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">static</span> size_type value_size();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typedef</span> fvec4SIMD type;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool&gt; bool_type;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; __m128 Data;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Implicit basic constructors</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// Warning silencer for nameless struct/union.</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">namespace </span>glm{</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_ALIGNED_STRUCT(16) fvec4SIMD</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">enum</span> ctor{null};</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> __m128 value_type;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">typedef</span> std::size_t size_type;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">static</span> size_type value_size();</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; fvec4SIMD();</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; fvec4SIMD(__m128 <span class="keyword">const</span> &amp; Data);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; fvec4SIMD(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// Explicit basic constructors</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">explicit</span> fvec4SIMD(</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; ctor);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">explicit</span> fvec4SIMD(</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">explicit</span> fvec4SIMD(</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z, </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">explicit</span> fvec4SIMD(</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; tvec4&lt;float&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; fvec4SIMD(<a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2, <a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; fvec4SIMD(<a class="code" href="a00142.html#ga8a44105c47072f9ea1413f15faa31f64" title="3 components vector of floating-point numbers.">vec3</a> <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, <a class="code" href="a00142.html#ga8a44105c47072f9ea1413f15faa31f64" title="3 components vector of floating-point numbers.">vec3</a> <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; fvec4SIMD(<a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v1, <a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v2);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">//fvec4SIMD(ivec4SIMD const &amp; v);</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// Unary arithmetic operators</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; fvec4SIMD&amp; operator= (fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; fvec4SIMD&amp; operator+=(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; fvec4SIMD&amp; operator-=(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; fvec4SIMD&amp; operator*=(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; fvec4SIMD&amp; operator/=(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; fvec4SIMD&amp; operator+=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; fvec4SIMD&amp; operator-=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; fvec4SIMD&amp; operator*=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; fvec4SIMD&amp; operator/=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; fvec4SIMD&amp; operator++();</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; fvec4SIMD&amp; operator--();</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// Swizzle operators</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;comp X, comp Y, comp Z, comp W&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; fvec4SIMD&amp; swizzle();</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span> &lt;comp X, comp Y, comp Z, comp W&gt;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; fvec4SIMD swizzle() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;comp X, comp Y, comp Z&gt;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; fvec4SIMD swizzle() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;comp X, comp Y&gt;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; fvec4SIMD swizzle() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;comp X&gt;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; fvec4SIMD swizzle() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; };</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> fvec4SIMD type;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool&gt; bool_type;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#ifdef GLM_SIMD_ENABLE_XYZW_UNION</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"></span> <span class="keyword">union</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; __m128 Data;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">struct </span>{<span class="keywordtype">float</span> x, y, z, w;};</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"></span> __m128 Data;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Implicit basic constructors</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; fvec4SIMD();</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; fvec4SIMD(__m128 <span class="keyword">const</span> &amp; Data);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; fvec4SIMD(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Explicit basic constructors</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">explicit</span> fvec4SIMD(</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; ctor);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">explicit</span> fvec4SIMD(</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">explicit</span> fvec4SIMD(</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; z, </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; w);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">explicit</span> fvec4SIMD(</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; tvec4&lt;float&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; fvec4SIMD(<a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s1, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s2, <a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; fvec4SIMD(<a class="code" href="a00142.html#ga8a44105c47072f9ea1413f15faa31f64" title="3 components vector of floating-point numbers.">vec3</a> <span class="keyword">const</span> &amp; v, <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s, <a class="code" href="a00142.html#ga8a44105c47072f9ea1413f15faa31f64" title="3 components vector of floating-point numbers.">vec3</a> <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; fvec4SIMD(<a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v1, <a class="code" href="a00142.html#ga80139c81aa2687717598312039cea8d1" title="2 components vector of floating-point numbers.">vec2</a> <span class="keyword">const</span> &amp; v2);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">//fvec4SIMD(ivec4SIMD const &amp; v);</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Unary arithmetic operators</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; fvec4SIMD&amp; operator= (fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; fvec4SIMD&amp; operator+=(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; fvec4SIMD&amp; operator-=(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; fvec4SIMD&amp; operator*=(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; fvec4SIMD&amp; operator/=(fvec4SIMD <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; fvec4SIMD&amp; operator+=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; fvec4SIMD&amp; operator-=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; fvec4SIMD&amp; operator*=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; fvec4SIMD&amp; operator/=(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; fvec4SIMD&amp; operator++();</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; fvec4SIMD&amp; operator--();</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">typedef</span> glm::detail::fvec4SIMD simdVec4;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; detail::tvec4&lt;float&gt; vec4_cast(</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gaeca8e195d482248f677e3905d00f11ae" title="Returns x if x &gt;= 0; otherwise, it returns -x.">abs</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga79f412e6d33cb4be13497056c2298d14" title="Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.">sign</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Swizzle operators</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;comp X, comp Y, comp Z, comp W&gt;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; fvec4SIMD&amp; swizzle();</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;comp X, comp Y, comp Z, comp W&gt;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; fvec4SIMD swizzle() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">template</span> &lt;comp X, comp Y, comp Z&gt;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; fvec4SIMD swizzle() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;comp X, comp Y&gt;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; fvec4SIMD swizzle() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;comp X&gt;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; fvec4SIMD swizzle() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; };</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">typedef</span> glm::detail::fvec4SIMD simdVec4;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gac3458e950a8a716468866f841a833c77" title="Returns a value equal to the nearest integer that is less then or equal to x.">floor</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gae1268fe85d913d9e4054de0e046abaef" title="Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...">trunc</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga32125c5451799e80b886ef665b947d0c" title="Returns a value equal to the nearest integer to x.">round</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">//detail::fvec4SIMD roundEven(detail::fvec4SIMD const &amp; x);</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga1ce130f2934cf1d7aca83a7027422f3c" title="Returns a value equal to the nearest integer that is greater than or equal to x.">ceil</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gad5e3814491ff6baa4f0d16aebcabff9b" title="Return x - floor(x).">fract</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; detail::tvec4&lt;float&gt; vec4_cast(</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gaeca8e195d482248f677e3905d00f11ae" title="Returns x if x &gt;= 0; otherwise, it returns -x.">abs</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga79f412e6d33cb4be13497056c2298d14" title="Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.">sign</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gac3458e950a8a716468866f841a833c77" title="Returns a value equal to the nearest integer that is less then or equal to x.">floor</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gae1268fe85d913d9e4054de0e046abaef" title="Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...">trunc</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga32125c5451799e80b886ef665b947d0c" title="Returns a value equal to the nearest integer to x.">round</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">//detail::fvec4SIMD roundEven(detail::fvec4SIMD const &amp; x);</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">//detail::fvec4SIMD modf(</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// detail::fvec4SIMD const &amp; x, </span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// detail::fvec4SIMD &amp; i);</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga1ce130f2934cf1d7aca83a7027422f3c" title="Returns a value equal to the nearest integer that is greater than or equal to x.">ceil</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gad5e3814491ff6baa4f0d16aebcabff9b" title="Return x - floor(x).">fract</a>(detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3bdf136bc96f670965cd2f48d14356b4" title="Modulus.">mod</a>(</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">//detail::fvec4SIMD modf(</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// detail::fvec4SIMD const &amp; x, </span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// detail::fvec4SIMD &amp; i);</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; minVal, </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; maxVal); </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title="Returns y if y &lt; x; otherwise, it returns x.">min</a>(</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; minVal, </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; maxVal); </div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="comment">// \todo Test when &#39;a&#39; is a boolean.</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"></span> detail::fvec4SIMD <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title="Returns 0.0 if x &lt; edge, otherwise it returns 1.0.">step</a>(</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; edge, </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title="Returns 0.0 if x &lt; edge, otherwise it returns 1.0.">step</a>(</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge, </div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.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>(</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; edge0, </div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; edge1, </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.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>(</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge0, </div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge1, </div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">//bvec4 isnan(detail::fvec4SIMD const &amp; x);</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">//bvec4 isinf(detail::fvec4SIMD const &amp; x);</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title="Returns y if x &lt; y; otherwise, it returns x.">max</a>(</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; minVal, </div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; maxVal); </div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga99b1ce602a02833646e5077345858da4" title="Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...">clamp</a>(</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; minVal, </div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; maxVal); </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// \todo Test when &#39;a&#39; is a boolean.</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"></span> detail::fvec4SIMD <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">mix</a>(</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y, </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; a);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title="Returns 0.0 if x &lt; edge, otherwise it returns 1.0.">step</a>(</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; edge, </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title="Returns 0.0 if x &lt; edge, otherwise it returns 1.0.">step</a>(</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge, </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.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>(</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; edge0, </div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; edge1, </div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.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>(</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge0, </div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; edge1, </div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="comment">//detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const &amp; value);</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="comment">//detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const &amp; value);</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gae88b926eebc4d610ecdd148bf8c7bdac" title="Computes and returns a * b + c.">fma</a>(</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; a, </div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; b, </div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; c);</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="comment">//detail::fvec4SIMD frexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD &amp; exp);</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">//detail::fvec4SIMD ldexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD const &amp; exp);</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00131.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>(</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00172.html#ga2e726cc8b9f02b7c09910858ea1afac6" title="Faster than the common length function but less accurate.">fastLength</a>(</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordtype">float</span> niceLength(</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; detail::fvec4SIMD length4(</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; detail::fvec4SIMD fastLength4(</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; detail::fvec4SIMD niceLength4(</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00131.html#ga3fac0e61144f60184d961dd156709dd3" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance</a>(</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; p0,</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; p1);</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; detail::fvec4SIMD distance4(</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; p0,</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; p1);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordtype">float</span> simdDot(</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; detail::fvec4SIMD dot4(</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; detail::fvec4SIMD <a class="code" href="a00131.html#gaa127ddc9d38f715125f91742d399eb6f" title="Returns the cross product of x and y.">cross</a>(</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; detail::fvec4SIMD <a class="code" href="a00131.html#ga68b931c228750eeba844c273c54ca43d" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; detail::fvec4SIMD <a class="code" href="a00172.html#ga2953e7426a420bb2b33affce7360ef40" title="Faster than the common normalize function but less accurate.">fastNormalize</a>(</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; detail::fvec4SIMD simdFaceforward(</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; N,</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; I,</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; Nref);</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; detail::fvec4SIMD <a class="code" href="a00131.html#gabe1fa0bef5f854242eb70ce56e5a7d03" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">reflect</a>(</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; I,</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; N);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; detail::fvec4SIMD <a class="code" href="a00131.html#gabbb4909d3e99a7a2411cc63252afbbd8" title="For the incident vector I and surface normal N, and the ratio of indices of refraction eta...">refract</a>(</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; I,</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; N,</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; eta);</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">//bvec4 isnan(detail::fvec4SIMD const &amp; x);</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="comment">//bvec4 isinf(detail::fvec4SIMD const &amp; x);</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">//detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const &amp; value);</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">//detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const &amp; value);</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; detail::fvec4SIMD <a class="code" href="a00129.html#gae88b926eebc4d610ecdd148bf8c7bdac" title="Computes and returns a * b + c.">fma</a>(</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; a, </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; b, </div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; c);</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">//detail::fvec4SIMD frexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD &amp; exp);</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">//detail::fvec4SIMD ldexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD const &amp; exp);</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00131.html#ga282360c8bb80b80d3c7f5bc00766d873" title="Returns the length of x, i.e., sqrt(x * x).">length</a>(</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00172.html#ga2e726cc8b9f02b7c09910858ea1afac6" title="Faster than the common length function but less accurate.">fastLength</a>(</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">float</span> niceLength(</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; detail::fvec4SIMD length4(</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; detail::fvec4SIMD fastLength4(</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; detail::fvec4SIMD niceLength4(</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00131.html#ga3fac0e61144f60184d961dd156709dd3" title="Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).">distance</a>(</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; p0,</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; p1);</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; detail::fvec4SIMD distance4(</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; p0,</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; p1);</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">float</span> simdDot(</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; detail::fvec4SIMD dot4(</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; detail::fvec4SIMD <a class="code" href="a00131.html#gaa127ddc9d38f715125f91742d399eb6f" title="Returns the cross product of x and y.">cross</a>(</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x,</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; detail::fvec4SIMD <a class="code" href="a00131.html#ga68b931c228750eeba844c273c54ca43d" title="Returns a vector in the same direction as x but with length of 1.">normalize</a>(</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; detail::fvec4SIMD <a class="code" href="a00172.html#ga2953e7426a420bb2b33affce7360ef40" title="Faster than the common normalize function but less accurate.">fastNormalize</a>(</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; detail::fvec4SIMD simdFaceforward(</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; N,</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; I,</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; Nref);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; detail::fvec4SIMD <a class="code" href="a00130.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f" title="Returns the positive square root of x.">sqrt</a>(</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; detail::fvec4SIMD niceSqrt(</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; detail::fvec4SIMD <a class="code" href="a00172.html#gad57c343d2362c1469043adedeb8ef8eb" title="Faster than the common sqrt function but less accurate.">fastSqrt</a>(</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; detail::fvec4SIMD <a class="code" href="a00130.html#ga3fd19e045e3943b96e0cdad22fbda111" title="Returns the reciprocal of the positive square root of x.">inversesqrt</a>(</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; detail::fvec4SIMD fastInversesqrt(</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor">#include &quot;simd_vec4.inl&quot;</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; detail::fvec4SIMD <a class="code" href="a00131.html#gabe1fa0bef5f854242eb70ce56e5a7d03" title="For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...">reflect</a>(</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; I,</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; N);</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; detail::fvec4SIMD <a class="code" href="a00131.html#gabbb4909d3e99a7a2411cc63252afbbd8" title="For the incident vector I and surface normal N, and the ratio of indices of refraction eta...">refract</a>(</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; I,</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; N,</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordtype">float</span> <span class="keyword">const</span> &amp; eta);</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; detail::fvec4SIMD <a class="code" href="a00130.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f" title="Returns the positive square root of x.">sqrt</a>(</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; detail::fvec4SIMD niceSqrt(</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; detail::fvec4SIMD <a class="code" href="a00172.html#gad57c343d2362c1469043adedeb8ef8eb" title="Faster than the common sqrt function but less accurate.">fastSqrt</a>(</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor">#endif//GLM_GTX_simd_vec4</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; detail::fvec4SIMD <a class="code" href="a00130.html#ga3fd19e045e3943b96e0cdad22fbda111" title="Returns the reciprocal of the positive square root of x.">inversesqrt</a>(</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; detail::fvec4SIMD fastInversesqrt(</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; detail::fvec4SIMD <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor">#include &quot;simd_vec4.inl&quot;</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma warning(pop)</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor">#endif//GLM_GTX_simd_vec4</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -97,71 +97,72 @@
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>(U <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Cast</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL <span class="keyword">operator</span> U() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Unary updatable operators</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator= (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator+=(<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator-=(<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator*=(<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator/=(<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator++();</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator--();</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat()<span class="keyword"> const</span>{<span class="keywordflow">return</span> toFloat32(data);}</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL hdata _data()<span class="keyword"> const</span>{<span class="keywordflow">return</span> data;}</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; hdata data;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; };</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator+ (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator- (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator* (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator/ (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Unary constant operators</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator- (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator-- (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s, <span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator++ (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s, <span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">bool</span> operator==(</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">bool</span> operator!=(</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">bool</span> operator&lt;(</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">bool</span> operator&lt;=(</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">bool</span> operator&gt;(</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">bool</span> operator&gt;=(</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#include &quot;type_half.inl&quot;</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#endif//glm_core_type_half</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">//template &lt;typename U&gt;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">//GLM_FUNC_DECL operator U() const;</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL <span class="keyword">operator</span> float() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Unary updatable operators</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator= (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator+=(<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator-=(<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator*=(<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator/=(<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator++();</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a>&amp; operator--();</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat()<span class="keyword"> const</span>{<span class="keywordflow">return</span> toFloat32(data);}</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL hdata _data()<span class="keyword"> const</span>{<span class="keywordflow">return</span> data;}</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; hdata data;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator+ (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator- (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator* (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator/ (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s1, <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s2);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// Unary constant operators</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator- (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator-- (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s, <span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> operator++ (<a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">half</a> <span class="keyword">const</span> &amp; s, <span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">bool</span> operator==(</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">bool</span> operator!=(</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">bool</span> operator&lt;(</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">bool</span> operator&lt;=(</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">bool</span> operator&gt;(</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">bool</span> operator&gt;=(</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; x, </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="a00147.html#ga09cefb48e7a630c2e3bfb3d23cd88e44" title="Type for half-precision floating-point numbers.">detail::half</a> <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#include &quot;type_half.inl&quot;</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#endif//glm_core_type_half</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -101,39 +101,39 @@
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00211.html#ga516c25a0d2c46c64fb5afca5eb24daab" title="Check whether two vectors are collinears.">areCollinear</a>(</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; genType <span class="keyword">const</span> &amp; v0, </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00211.html#ga0cba4a48074a8b8b8474538385a709e7" title="Check whether two vectors are orthogonals.">areOrthogonal</a>(</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; genType <span class="keyword">const</span> &amp; v0, </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga4db0eb631e14d23d597b93b80e324c5d" title="Return whether a matrix is a normalized matrix.">isNormalized</a>(</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; vecType&lt;genType&gt; <span class="keyword">const</span> &amp; v, </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;genType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;genType&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga522ba657c5bf6a022c49b5717f2b600c" title="Return whether a matrix a null matrix.">isNull</a>(</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; detail::tvec2&lt;valType&gt; <span class="keyword">const</span> &amp; v, </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga522ba657c5bf6a022c49b5717f2b600c" title="Return whether a matrix a null matrix.">isNull</a>(</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; detail::tvec3&lt;valType&gt; <span class="keyword">const</span> &amp; v, </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType&gt; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00185.html#ga522ba657c5bf6a022c49b5717f2b600c" title="Return whether a matrix a null matrix.">isNull</a>(</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; detail::tvec4&lt;valType&gt; <span class="keyword">const</span> &amp; v, </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; valType <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00211.html#gab6b9a4e79fb7b34e8817ae9c870eb06e" title="Check whether two vectors are orthonormal.">areOrthonormal</a>(</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; genType <span class="keyword">const</span> &amp; v0, </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71" title="Return the epsilon constant for floating point types.">epsilon</a><span class="comment">/* = std::numeric_limits&lt;typename genType::value_type&gt;::epsilon()*/</span>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}<span class="comment">// namespace glm</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>

View File

@ -669,14 +669,14 @@ If genTypeU is a boolean scalar or vector: Selects which vector each returned co
<div class="line">...</div>
<div class="line">float a;</div>
<div class="line"><span class="keywordtype">bool</span> b;</div>
<div class="line"><a class="code" href="a00142.html#ga0f0fcb7b631cbbac4341badb01d84218" title="Vector of 3 double-precision floating-point numbers.">glm::dvec3</a> <a class="code" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5" title="Return e constant.">e</a>;</div>
<div class="line"><a class="code" href="a00142.html#ga0f0fcb7b631cbbac4341badb01d84218" title="Vector of 3 double-precision floating-point numbers.">glm::dvec3</a> <a class="code" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423" title="Return e constant.">e</a>;</div>
<div class="line"><a class="code" href="a00142.html#ga0f0fcb7b631cbbac4341badb01d84218" title="Vector of 3 double-precision floating-point numbers.">glm::dvec3</a> f;</div>
<div class="line"><a class="code" href="a00142.html#ga3f36f44916da88f7173bc4afa030ebe1" title="4 components vector of floating-point numbers.">glm::vec4</a> g;</div>
<div class="line"><a class="code" href="a00142.html#ga3f36f44916da88f7173bc4afa030ebe1" title="4 components vector of floating-point numbers.">glm::vec4</a> h;</div>
<div class="line">...</div>
<div class="line">glm::vec4 r = <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">glm::mix</a>(g, h, a); <span class="comment">// Interpolate with a floating-point scalar two vectors. </span></div>
<div class="line"><a class="code" href="a00142.html#ga3f36f44916da88f7173bc4afa030ebe1" title="4 components vector of floating-point numbers.">glm::vec4</a> s = <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">glm::mix</a>(g, h, b); <span class="comment">// Teturns g or h;</span></div>
<div class="line"><a class="code" href="a00142.html#ga0f0fcb7b631cbbac4341badb01d84218" title="Vector of 3 double-precision floating-point numbers.">glm::dvec3</a> t = <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">glm::mix</a>(<a class="code" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5" title="Return e constant.">e</a>, f, a); <span class="comment">// Types of the third parameter is not required to match with the first and the second.</span></div>
<div class="line"><a class="code" href="a00142.html#ga0f0fcb7b631cbbac4341badb01d84218" title="Vector of 3 double-precision floating-point numbers.">glm::dvec3</a> t = <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">glm::mix</a>(<a class="code" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423" title="Return e constant.">e</a>, f, a); <span class="comment">// Types of the third parameter is not required to match with the first and the second.</span></div>
<div class="line"><a class="code" href="a00142.html#ga3f36f44916da88f7173bc4afa030ebe1" title="4 components vector of floating-point numbers.">glm::vec4</a> u = <a class="code" href="a00129.html#ga3f64b3986efe205cf30300700667e761">glm::mix</a>(g, h, r); <span class="comment">// Interpolations can be perform per component with a vector for the last parameter.</span></div>
</div><!-- fragment -->
<p>Referenced by <a class="el" href="a00013_source.html#l00065">glm::lerp()</a>, and <a class="el" href="a00013_source.html#l00073">glm::slerp()</a>.</p>

View File

@ -41,92 +41,92 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga1cebaa574cc7c9018ccefbde3f174db5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga1cebaa574cc7c9018ccefbde3f174db5"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga1cebaa574cc7c9018ccefbde3f174db5">e</a> ()</td></tr>
<tr class="separator:ga1cebaa574cc7c9018ccefbde3f174db5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b53267cfa3c8aa96c02cdba04c53ef5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga2b53267cfa3c8aa96c02cdba04c53ef5"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5">epsilon</a> ()</td></tr>
<tr class="separator:ga2b53267cfa3c8aa96c02cdba04c53ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed1d93869801afa40958ffa062dde245"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gaed1d93869801afa40958ffa062dde245"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaed1d93869801afa40958ffa062dde245">euler</a> ()</td></tr>
<tr class="separator:gaed1d93869801afa40958ffa062dde245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14e6ecb0a19dbbfcf6cd48cb536cbd61"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga14e6ecb0a19dbbfcf6cd48cb536cbd61"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga14e6ecb0a19dbbfcf6cd48cb536cbd61">golden_ratio</a> ()</td></tr>
<tr class="separator:ga14e6ecb0a19dbbfcf6cd48cb536cbd61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a72b0fbaa530016ccdfd28529cda87d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga8a72b0fbaa530016ccdfd28529cda87d"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga8a72b0fbaa530016ccdfd28529cda87d">half_pi</a> ()</td></tr>
<tr class="separator:ga8a72b0fbaa530016ccdfd28529cda87d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga554ba051aa168c8e19072f2b1ebf1ef8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga554ba051aa168c8e19072f2b1ebf1ef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga554ba051aa168c8e19072f2b1ebf1ef8">ln_ln_two</a> ()</td></tr>
<tr class="separator:ga554ba051aa168c8e19072f2b1ebf1ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga43d82c8d42443486d20ccc17ec797770"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga43d82c8d42443486d20ccc17ec797770"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga43d82c8d42443486d20ccc17ec797770">ln_ten</a> ()</td></tr>
<tr class="separator:ga43d82c8d42443486d20ccc17ec797770"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2f30635c140a0e753d3eb26f63446dd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gac2f30635c140a0e753d3eb26f63446dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac2f30635c140a0e753d3eb26f63446dd">ln_two</a> ()</td></tr>
<tr class="separator:gac2f30635c140a0e753d3eb26f63446dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b7505757b062b9f689d618e5790ce0a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4b7505757b062b9f689d618e5790ce0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga4b7505757b062b9f689d618e5790ce0a">one</a> ()</td></tr>
<tr class="separator:ga4b7505757b062b9f689d618e5790ce0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d476bfe1e72071895ece4c4b9e78a47"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga0d476bfe1e72071895ece4c4b9e78a47"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga0d476bfe1e72071895ece4c4b9e78a47">one_over_pi</a> ()</td></tr>
<tr class="separator:ga0d476bfe1e72071895ece4c4b9e78a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga109c0c04ce9f7912254bb52800d22344"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga109c0c04ce9f7912254bb52800d22344"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga109c0c04ce9f7912254bb52800d22344">one_over_root_two</a> ()</td></tr>
<tr class="separator:ga109c0c04ce9f7912254bb52800d22344"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga12be4efe2470ebe86e7163aefe4a545e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga12be4efe2470ebe86e7163aefe4a545e"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga12be4efe2470ebe86e7163aefe4a545e">pi</a> ()</td></tr>
<tr class="separator:ga12be4efe2470ebe86e7163aefe4a545e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf1caeb147205714372a562a15b140f8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gacf1caeb147205714372a562a15b140f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gacf1caeb147205714372a562a15b140f8">quarter_pi</a> ()</td></tr>
<tr class="separator:gacf1caeb147205714372a562a15b140f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaafa225f0ab07202dd270d6537a5e1df8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gaafa225f0ab07202dd270d6537a5e1df8"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaafa225f0ab07202dd270d6537a5e1df8">root_five</a> ()</td></tr>
<tr class="separator:gaafa225f0ab07202dd270d6537a5e1df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0cd42ca5c54d9896654b3048a4ef0d7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gad0cd42ca5c54d9896654b3048a4ef0d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gad0cd42ca5c54d9896654b3048a4ef0d7">root_half_pi</a> ()</td></tr>
<tr class="separator:gad0cd42ca5c54d9896654b3048a4ef0d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacce3e8846a876b339812dd7279b3d929"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gacce3e8846a876b339812dd7279b3d929"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gacce3e8846a876b339812dd7279b3d929">root_ln_four</a> ()</td></tr>
<tr class="separator:gacce3e8846a876b339812dd7279b3d929"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab330534be451fd5267622fb3fd246c3d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gab330534be451fd5267622fb3fd246c3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gab330534be451fd5267622fb3fd246c3d">root_pi</a> ()</td></tr>
<tr class="separator:gab330534be451fd5267622fb3fd246c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3f205c738a519ec082dd8a67968549c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gaf3f205c738a519ec082dd8a67968549c"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf3f205c738a519ec082dd8a67968549c">root_three</a> ()</td></tr>
<tr class="separator:gaf3f205c738a519ec082dd8a67968549c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga84cde9a5f5c5528a2846ab43a62f3fd0"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga84cde9a5f5c5528a2846ab43a62f3fd0"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga84cde9a5f5c5528a2846ab43a62f3fd0">root_two</a> ()</td></tr>
<tr class="separator:ga84cde9a5f5c5528a2846ab43a62f3fd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga388e713e3a29840079d2dd1128f46166"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga388e713e3a29840079d2dd1128f46166"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga388e713e3a29840079d2dd1128f46166">root_two_pi</a> ()</td></tr>
<tr class="separator:ga388e713e3a29840079d2dd1128f46166"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a604b1a984d351232d966e9b8fed54e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4a604b1a984d351232d966e9b8fed54e"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga4a604b1a984d351232d966e9b8fed54e">third</a> ()</td></tr>
<tr class="separator:ga4a604b1a984d351232d966e9b8fed54e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga579959e61ef879efbe7e8646b2d9c222"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga579959e61ef879efbe7e8646b2d9c222"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga579959e61ef879efbe7e8646b2d9c222">two_over_pi</a> ()</td></tr>
<tr class="separator:ga579959e61ef879efbe7e8646b2d9c222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31940e5cdb5cb1d8852548db573d43f9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga31940e5cdb5cb1d8852548db573d43f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga31940e5cdb5cb1d8852548db573d43f9">two_over_root_pi</a> ()</td></tr>
<tr class="separator:ga31940e5cdb5cb1d8852548db573d43f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga284e20e3e55ffbd5b19d16054bbe2098"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga284e20e3e55ffbd5b19d16054bbe2098"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga284e20e3e55ffbd5b19d16054bbe2098">two_thirds</a> ()</td></tr>
<tr class="separator:ga284e20e3e55ffbd5b19d16054bbe2098"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ece9de415050c52a6e2aa5d70a20972"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga1ece9de415050c52a6e2aa5d70a20972"><td class="memTemplItemLeft" align="right" valign="top">GLM_CONSTEXPR T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga1ece9de415050c52a6e2aa5d70a20972">zero</a> ()</td></tr>
<tr class="separator:ga1ece9de415050c52a6e2aa5d70a20972"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3220d28f6664e2091ae72f57fea57423"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga3220d28f6664e2091ae72f57fea57423"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga3220d28f6664e2091ae72f57fea57423">e</a> ()</td></tr>
<tr class="separator:ga3220d28f6664e2091ae72f57fea57423"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf38c4ec0213885e6692f206fe1408c71"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf38c4ec0213885e6692f206fe1408c71"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71">epsilon</a> ()</td></tr>
<tr class="separator:gaf38c4ec0213885e6692f206fe1408c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeaac224b44a4e642a84f5133c6ce7d81"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaeaac224b44a4e642a84f5133c6ce7d81"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaeaac224b44a4e642a84f5133c6ce7d81">euler</a> ()</td></tr>
<tr class="separator:gaeaac224b44a4e642a84f5133c6ce7d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ea4aa61e3c5cc8349cac68c769c28e7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga3ea4aa61e3c5cc8349cac68c769c28e7"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga3ea4aa61e3c5cc8349cac68c769c28e7">golden_ratio</a> ()</td></tr>
<tr class="separator:ga3ea4aa61e3c5cc8349cac68c769c28e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8f9279b31aaa28cfea2b3fdbb71334f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaa8f9279b31aaa28cfea2b3fdbb71334f"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaa8f9279b31aaa28cfea2b3fdbb71334f">half_pi</a> ()</td></tr>
<tr class="separator:gaa8f9279b31aaa28cfea2b3fdbb71334f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf592c9de9c5376ce741589804a9ab52e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf592c9de9c5376ce741589804a9ab52e"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf592c9de9c5376ce741589804a9ab52e">ln_ln_two</a> ()</td></tr>
<tr class="separator:gaf592c9de9c5376ce741589804a9ab52e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05fc32d108a5065b3e6a61bdb6fcd2ee"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga05fc32d108a5065b3e6a61bdb6fcd2ee"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga05fc32d108a5065b3e6a61bdb6fcd2ee">ln_ten</a> ()</td></tr>
<tr class="separator:ga05fc32d108a5065b3e6a61bdb6fcd2ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf8770f9b8cd9fb89feb7b707f3c339e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gabf8770f9b8cd9fb89feb7b707f3c339e"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gabf8770f9b8cd9fb89feb7b707f3c339e">ln_two</a> ()</td></tr>
<tr class="separator:gabf8770f9b8cd9fb89feb7b707f3c339e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48eaf4ba6e62b66222b8f3e2e57f25ab"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga48eaf4ba6e62b66222b8f3e2e57f25ab"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga48eaf4ba6e62b66222b8f3e2e57f25ab">one</a> ()</td></tr>
<tr class="separator:ga48eaf4ba6e62b66222b8f3e2e57f25ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga300238bac966e9f3253e95c0f58a254c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga300238bac966e9f3253e95c0f58a254c"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga300238bac966e9f3253e95c0f58a254c">one_over_pi</a> ()</td></tr>
<tr class="separator:ga300238bac966e9f3253e95c0f58a254c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad95674cac90ae7cac519194770eb6160"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gad95674cac90ae7cac519194770eb6160"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gad95674cac90ae7cac519194770eb6160">one_over_root_two</a> ()</td></tr>
<tr class="separator:gad95674cac90ae7cac519194770eb6160"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae599a18ebccedb61f28cb9735bf4b025"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gae599a18ebccedb61f28cb9735bf4b025"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gae599a18ebccedb61f28cb9735bf4b025">pi</a> ()</td></tr>
<tr class="separator:gae599a18ebccedb61f28cb9735bf4b025"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3ca5c09673ab3cdfc16a34e176803e0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf3ca5c09673ab3cdfc16a34e176803e0"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf3ca5c09673ab3cdfc16a34e176803e0">quarter_pi</a> ()</td></tr>
<tr class="separator:gaf3ca5c09673ab3cdfc16a34e176803e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed74221e982333922018431aa12cda62"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaed74221e982333922018431aa12cda62"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaed74221e982333922018431aa12cda62">root_five</a> ()</td></tr>
<tr class="separator:gaed74221e982333922018431aa12cda62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8106d6cc821f8c4f32179e8eaff393a1"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga8106d6cc821f8c4f32179e8eaff393a1"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga8106d6cc821f8c4f32179e8eaff393a1">root_half_pi</a> ()</td></tr>
<tr class="separator:ga8106d6cc821f8c4f32179e8eaff393a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55c459d0861b77990e8719f6f4a1e92"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gac55c459d0861b77990e8719f6f4a1e92"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac55c459d0861b77990e8719f6f4a1e92">root_ln_four</a> ()</td></tr>
<tr class="separator:gac55c459d0861b77990e8719f6f4a1e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1497714576b7a7f7151175da6b115e4"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf1497714576b7a7f7151175da6b115e4"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf1497714576b7a7f7151175da6b115e4">root_pi</a> ()</td></tr>
<tr class="separator:gaf1497714576b7a7f7151175da6b115e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6ee81ef34c2db2019290d7d48daf863"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gac6ee81ef34c2db2019290d7d48daf863"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac6ee81ef34c2db2019290d7d48daf863">root_three</a> ()</td></tr>
<tr class="separator:gac6ee81ef34c2db2019290d7d48daf863"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76136e4e8892c80e969f4ff2a7e73faa"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga76136e4e8892c80e969f4ff2a7e73faa"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga76136e4e8892c80e969f4ff2a7e73faa">root_two</a> ()</td></tr>
<tr class="separator:ga76136e4e8892c80e969f4ff2a7e73faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32406e517269a1da0c2dac765add955f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga32406e517269a1da0c2dac765add955f"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga32406e517269a1da0c2dac765add955f">root_two_pi</a> ()</td></tr>
<tr class="separator:ga32406e517269a1da0c2dac765add955f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf952fb46d03a8bf5dd79a1ab00b24b77"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gaf952fb46d03a8bf5dd79a1ab00b24b77"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf952fb46d03a8bf5dd79a1ab00b24b77">third</a> ()</td></tr>
<tr class="separator:gaf952fb46d03a8bf5dd79a1ab00b24b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7f52a30ed8a645849e94f350823e0d0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gae7f52a30ed8a645849e94f350823e0d0"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gae7f52a30ed8a645849e94f350823e0d0">two_over_pi</a> ()</td></tr>
<tr class="separator:gae7f52a30ed8a645849e94f350823e0d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadbf34253039f3d5d27d5fcf7e591b3ab"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gadbf34253039f3d5d27d5fcf7e591b3ab"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gadbf34253039f3d5d27d5fcf7e591b3ab">two_over_root_pi</a> ()</td></tr>
<tr class="separator:gadbf34253039f3d5d27d5fcf7e591b3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7127480e917d0a6016a435b1e8d67176"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ga7127480e917d0a6016a435b1e8d67176"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga7127480e917d0a6016a435b1e8d67176">two_thirds</a> ()</td></tr>
<tr class="separator:ga7127480e917d0a6016a435b1e8d67176"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab76ba72430dc7c11be15a2895e7e61f9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:gab76ba72430dc7c11be15a2895e7e61f9"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gab76ba72430dc7c11be15a2895e7e61f9">zero</a> ()</td></tr>
<tr class="separator:gab76ba72430dc7c11be15a2895e7e61f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Allow to perform bit operations on integer values. </p>
<p>&lt;<a class="el" href="a00015.html" title="OpenGL Mathematics (glm.g-truc.net)">glm/gtc/constants.hpp</a>&gt; need to be included to use these features. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga1cebaa574cc7c9018ccefbde3f174db5"></a>
<a class="anchor" id="ga3220d28f6664e2091ae72f57fea57423"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::e </td>
<td class="memname">genType glm::e </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -139,12 +139,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga2b53267cfa3c8aa96c02cdba04c53ef5"></a>
<a class="anchor" id="gaf38c4ec0213885e6692f206fe1408c71"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::epsilon </td>
<td class="memname">genType glm::epsilon </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -158,12 +158,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="gaed1d93869801afa40958ffa062dde245"></a>
<a class="anchor" id="gaeaac224b44a4e642a84f5133c6ce7d81"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::euler </td>
<td class="memname">genType glm::euler </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -176,12 +176,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga14e6ecb0a19dbbfcf6cd48cb536cbd61"></a>
<a class="anchor" id="ga3ea4aa61e3c5cc8349cac68c769c28e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::golden_ratio </td>
<td class="memname">genType glm::golden_ratio </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -194,12 +194,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga8a72b0fbaa530016ccdfd28529cda87d"></a>
<a class="anchor" id="gaa8f9279b31aaa28cfea2b3fdbb71334f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::half_pi </td>
<td class="memname">genType glm::half_pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -212,12 +212,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga554ba051aa168c8e19072f2b1ebf1ef8"></a>
<a class="anchor" id="gaf592c9de9c5376ce741589804a9ab52e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::ln_ln_two </td>
<td class="memname">genType glm::ln_ln_two </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -230,12 +230,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga43d82c8d42443486d20ccc17ec797770"></a>
<a class="anchor" id="ga05fc32d108a5065b3e6a61bdb6fcd2ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::ln_ten </td>
<td class="memname">genType glm::ln_ten </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -248,12 +248,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="gac2f30635c140a0e753d3eb26f63446dd"></a>
<a class="anchor" id="gabf8770f9b8cd9fb89feb7b707f3c339e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::ln_two </td>
<td class="memname">genType glm::ln_two </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -266,12 +266,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga4b7505757b062b9f689d618e5790ce0a"></a>
<a class="anchor" id="ga48eaf4ba6e62b66222b8f3e2e57f25ab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::one </td>
<td class="memname">genType glm::one </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -284,12 +284,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga0d476bfe1e72071895ece4c4b9e78a47"></a>
<a class="anchor" id="ga300238bac966e9f3253e95c0f58a254c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::one_over_pi </td>
<td class="memname">genType glm::one_over_pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -302,12 +302,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga109c0c04ce9f7912254bb52800d22344"></a>
<a class="anchor" id="gad95674cac90ae7cac519194770eb6160"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::one_over_root_two </td>
<td class="memname">genType glm::one_over_root_two </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -320,12 +320,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga12be4efe2470ebe86e7163aefe4a545e"></a>
<a class="anchor" id="gae599a18ebccedb61f28cb9735bf4b025"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::pi </td>
<td class="memname">genType glm::pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -338,12 +338,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="gacf1caeb147205714372a562a15b140f8"></a>
<a class="anchor" id="gaf3ca5c09673ab3cdfc16a34e176803e0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::quarter_pi </td>
<td class="memname">genType glm::quarter_pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -356,12 +356,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="gaafa225f0ab07202dd270d6537a5e1df8"></a>
<a class="anchor" id="gaed74221e982333922018431aa12cda62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::root_five </td>
<td class="memname">genType glm::root_five </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -374,12 +374,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="gad0cd42ca5c54d9896654b3048a4ef0d7"></a>
<a class="anchor" id="ga8106d6cc821f8c4f32179e8eaff393a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::root_half_pi </td>
<td class="memname">genType glm::root_half_pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -392,12 +392,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="gacce3e8846a876b339812dd7279b3d929"></a>
<a class="anchor" id="gac55c459d0861b77990e8719f6f4a1e92"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::root_ln_four </td>
<td class="memname">genType glm::root_ln_four </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -410,12 +410,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="gab330534be451fd5267622fb3fd246c3d"></a>
<a class="anchor" id="gaf1497714576b7a7f7151175da6b115e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::root_pi </td>
<td class="memname">genType glm::root_pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -428,12 +428,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="gaf3f205c738a519ec082dd8a67968549c"></a>
<a class="anchor" id="gac6ee81ef34c2db2019290d7d48daf863"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::root_three </td>
<td class="memname">genType glm::root_three </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -446,12 +446,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga84cde9a5f5c5528a2846ab43a62f3fd0"></a>
<a class="anchor" id="ga76136e4e8892c80e969f4ff2a7e73faa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::root_two </td>
<td class="memname">genType glm::root_two </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -464,12 +464,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga388e713e3a29840079d2dd1128f46166"></a>
<a class="anchor" id="ga32406e517269a1da0c2dac765add955f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::root_two_pi </td>
<td class="memname">genType glm::root_two_pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -482,12 +482,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga4a604b1a984d351232d966e9b8fed54e"></a>
<a class="anchor" id="gaf952fb46d03a8bf5dd79a1ab00b24b77"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::third </td>
<td class="memname">genType glm::third </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -500,12 +500,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga579959e61ef879efbe7e8646b2d9c222"></a>
<a class="anchor" id="gae7f52a30ed8a645849e94f350823e0d0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::two_over_pi </td>
<td class="memname">genType glm::two_over_pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -518,12 +518,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga31940e5cdb5cb1d8852548db573d43f9"></a>
<a class="anchor" id="gadbf34253039f3d5d27d5fcf7e591b3ab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::two_over_root_pi </td>
<td class="memname">genType glm::two_over_root_pi </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -536,12 +536,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga284e20e3e55ffbd5b19d16054bbe2098"></a>
<a class="anchor" id="ga7127480e917d0a6016a435b1e8d67176"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::two_thirds </td>
<td class="memname">genType glm::two_thirds </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@ -554,12 +554,12 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ga1ece9de415050c52a6e2aa5d70a20972"></a>
<a class="anchor" id="gab76ba72430dc7c11be15a2895e7e61f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_CONSTEXPR T glm::zero </td>
<td class="memname">genType glm::zero </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>

View File

@ -650,7 +650,7 @@ Functions</h2></td></tr>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
<tr><td class="paramname">T</td><td>Value type used to build the matrix. Supported: half, float or double. </td></tr>
</table>
</dd>
</dl>

View File

@ -89,6 +89,9 @@ Functions</h2></td></tr>
<tr class="memitem:ga60d5647f87c2c423497d0f3bf8c407b8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga60d5647f87c2c423497d0f3bf8c407b8"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga60d5647f87c2c423497d0f3bf8c407b8">length</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
<tr class="separator:ga60d5647f87c2c423497d0f3bf8c407b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91c6605e46a8c70c8e25bbc0f41da181"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga91c6605e46a8c70c8e25bbc0f41da181"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga91c6605e46a8c70c8e25bbc0f41da181">lerp</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
<tr class="separator:ga91c6605e46a8c70c8e25bbc0f41da181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae04ce320008c9bec0037b4ba21853cb5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gae04ce320008c9bec0037b4ba21853cb5"><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gae04ce320008c9bec0037b4ba21853cb5">mat3_cast</a> (detail::tquat&lt; T &gt; const &amp;x)</td></tr>
<tr class="separator:gae04ce320008c9bec0037b4ba21853cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -101,15 +104,27 @@ Functions</h2></td></tr>
<tr class="memitem:gabd269bb967469a6f1df5963455fee6be"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:gabd269bb967469a6f1df5963455fee6be"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gabd269bb967469a6f1df5963455fee6be">normalize</a> (detail::tquat&lt; T &gt; const &amp;q)</td></tr>
<tr class="separator:gabd269bb967469a6f1df5963455fee6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7">pitch</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d37447d81ceade1d10d68c995a4d881"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4d37447d81ceade1d10d68c995a4d881"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881">quat_cast</a> (detail::tmat3x3&lt; T &gt; const &amp;x)</td></tr>
<tr class="separator:ga4d37447d81ceade1d10d68c995a4d881"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24adafe33b0bcad906c8724a762e5299"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga24adafe33b0bcad906c8724a762e5299"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga24adafe33b0bcad906c8724a762e5299">quat_cast</a> (detail::tmat4x4&lt; T &gt; const &amp;x)</td></tr>
<tr class="separator:ga24adafe33b0bcad906c8724a762e5299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7ef4c8c1ce1ca988add2f73392db0a06">roll</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga297d6a9635153c76d7c011efa716b5da"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga297d6a9635153c76d7c011efa716b5da"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga297d6a9635153c76d7c011efa716b5da">rotate</a> (detail::tquat&lt; T &gt; const &amp;q, typename detail::tquat&lt; T &gt;::value_type const &amp;angle, detail::tvec3&lt; T &gt; const &amp;axis)</td></tr>
<tr class="separator:ga297d6a9635153c76d7c011efa716b5da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga4acb60c1b472fc6cb5322a63ca1cf9a4">slerp</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
<tr class="separator:ga4acb60c1b472fc6cb5322a63ca1cf9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaac012c1a6bc37ce07a87745d9c596eed">yaw</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Defines a templated quaternion type and several quaternion operations. </p>
@ -128,7 +143,7 @@ Functions</h2></td></tr>
<p>Quaternion of double-precision floating-point numbers. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00076_source.html#l00301">301</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00076_source.html#l00359">359</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
</div>
</div>
@ -145,7 +160,7 @@ Functions</h2></td></tr>
<p>Quaternion of single-precision floating-point numbers. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00076_source.html#l00296">296</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00076_source.html#l00354">354</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
</div>
</div>
@ -162,7 +177,7 @@ Functions</h2></td></tr>
<p>Quaternion of high precision floating-point numbers. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00076_source.html#l00316">316</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00076_source.html#l00374">374</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
</div>
</div>
@ -179,7 +194,7 @@ Functions</h2></td></tr>
<p>Quaternion of half-precision floating-point numbers. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00076_source.html#l00291">291</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00076_source.html#l00349">349</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
</div>
</div>
@ -196,7 +211,7 @@ Functions</h2></td></tr>
<p>Quaternion of low precision floating-point numbers. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00076_source.html#l00306">306</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00076_source.html#l00364">364</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
</div>
</div>
@ -213,7 +228,7 @@ Functions</h2></td></tr>
<p>Quaternion of medium precision floating-point numbers. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00076_source.html#l00311">311</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00076_source.html#l00369">369</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
</div>
</div>
@ -230,7 +245,7 @@ Functions</h2></td></tr>
<p>Quaternion of floating-point numbers. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00076_source.html#l00286">286</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00076_source.html#l00344">344</a> of file <a class="el" href="a00076_source.html">gtc/quaternion.hpp</a>.</p>
</div>
</div>
@ -462,6 +477,56 @@ Functions</h2></td></tr>
<p>Returns the length of the quaternion. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga91c6605e46a8c70c8e25bbc0f41da181"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">detail::tquat&lt;T&gt; glm::lerp </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const &amp;&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Linear interpolation of two quaternions. </p>
<p>The interpolation is oriented.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>A quaternion </td></tr>
<tr><td class="paramname">y</td><td>A quaternion </td></tr>
<tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined in the range [0, 1]. </td></tr>
</table>
</dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gae04ce320008c9bec0037b4ba21853cb5"></a>
@ -481,7 +546,7 @@ Functions</h2></td></tr>
<p>Converts a quaternion to a 3 * 3 matrix. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Referenced by <a class="el" href="a00077_source.html#l00177">glm::toMat3()</a>.</p>
<p>Referenced by <a class="el" href="a00077_source.html#l00149">glm::toMat3()</a>.</p>
</div>
</div>
@ -502,7 +567,7 @@ Functions</h2></td></tr>
<p>Converts a quaternion to a 4 * 4 matrix. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Referenced by <a class="el" href="a00077_source.html#l00184">glm::toMat4()</a>.</p>
<p>Referenced by <a class="el" href="a00077_source.html#l00156">glm::toMat4()</a>.</p>
</div>
</div>
@ -536,8 +601,25 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Returns a SLERP interpolated quaternion of x and y according a. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Spherical linear interpolation of two quaternions. </p>
<p>The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>A quaternion </td></tr>
<tr><td class="paramname">y</td><td>A quaternion </td></tr>
<tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
</table>
</dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd>
<dd>
- slerp(detail::tquat&lt;T&gt; const &amp; x, detail::tquat&lt;T&gt; const &amp; y, T const &amp; a) </dd></dl>
</div>
</div>
@ -558,6 +640,25 @@ Functions</h2></td></tr>
<p>Returns the normalized quaternion. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gaf2a0323dbf6c6fb3f37b445aa899c1c7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">valType glm::pitch </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga4d37447d81ceade1d10d68c995a4d881"></a>
@ -577,7 +678,7 @@ Functions</h2></td></tr>
<p>Converts a 3 * 3 matrix to a quaternion. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Referenced by <a class="el" href="a00077_source.html#l00191">glm::toQuat()</a>.</p>
<p>Referenced by <a class="el" href="a00077_source.html#l00163">glm::toQuat()</a>.</p>
</div>
</div>
@ -598,6 +699,25 @@ Functions</h2></td></tr>
<p>Converts a 4 * 4 matrix to a quaternion. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga7ef4c8c1ce1ca988add2f73392db0a06"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">valType glm::roll </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga297d6a9635153c76d7c011efa716b5da"></a>
@ -641,6 +761,80 @@ Functions</h2></td></tr>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga4acb60c1b472fc6cb5322a63ca1cf9a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLM_FUNC_QUALIFIER T slerp </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">detail::tquat&lt; T &gt; const &amp;&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const &amp;&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Spherical linear interpolation of two quaternions. </p>
<p>Returns the slurp interpolation between two quaternions.</p>
<p>The interpolation always take the short path and the rotation is performed at constant speed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>A quaternion </td></tr>
<tr><td class="paramname">y</td><td>A quaternion </td></tr>
<tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
</table>
</dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00153.html" title="Defines a templated quaternion type and several quaternion operations.">GLM_GTC_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00013_source.html#l00073">73</a> of file <a class="el" href="a00013_source.html">compatibility.hpp</a>.</p>
<p>References <a class="el" href="a00129.html#ga3f64b3986efe205cf30300700667e761">glm::mix()</a>.</p>
</div>
</div>
<a class="anchor" id="gaac012c1a6bc37ce07a87745d9c596eed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">valType glm::yaw </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
</div><!-- contents -->

View File

@ -355,10 +355,6 @@ template&lt;typename T &gt; </td></tr>
<tr class="memitem:ga71c18fe8bc1e69c2b3c11feb13cf6695"><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="a00166.html#ga71c18fe8bc1e69c2b3c11feb13cf6695">saturate</a> (const detail::tvec4&lt; T &gt; &amp;x)</td></tr>
<tr class="separator:ga71c18fe8bc1e69c2b3c11feb13cf6695"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa299989529dc364bf823ed340f92d1d0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa299989529dc364bf823ed340f92d1d0"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:gaa299989529dc364bf823ed340f92d1d0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaa299989529dc364bf823ed340f92d1d0">slerp</a> (detail::tquat&lt; T &gt; const &amp;x, detail::tquat&lt; T &gt; const &amp;y, T const &amp;a)</td></tr>
<tr class="separator:gaa299989529dc364bf823ed340f92d1d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>

View File

@ -76,7 +76,7 @@ Functions</h2></td></tr>
<tr class="separator:gaeab4d00cc31b8f48eae904db846eaf61"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Various way to compute vector norms. </p>
<p>Various ways to compute vector norms. </p>
<p>&lt;<a class="el" href="a00065.html" title="OpenGL Mathematics (glm.g-truc.net)">glm/gtx/norm.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga9affa2e0e963514b276b54b778986145"></a>

View File

@ -47,9 +47,6 @@ Functions</h2></td></tr>
<tr class="memitem:gacd88ee5f0938469119199bdb216c68a1"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gacd88ee5f0938469119199bdb216c68a1"><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gacd88ee5f0938469119199bdb216c68a1">cross</a> (detail::tvec3&lt; valType &gt; const &amp;v, detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
<tr class="separator:gacd88ee5f0938469119199bdb216c68a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf23d24e27b4e4954d6e0dcf8cc4451c"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaaf23d24e27b4e4954d6e0dcf8cc4451c"><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaaf23d24e27b4e4954d6e0dcf8cc4451c">eulerAngles</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaaf23d24e27b4e4954d6e0dcf8cc4451c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae94ef4f3c0dd37dd65a95de207d1a27a"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gae94ef4f3c0dd37dd65a95de207d1a27a"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gae94ef4f3c0dd37dd65a95de207d1a27a">exp</a> (detail::tquat&lt; valType &gt; const &amp;q, valType const &amp;exponent)</td></tr>
<tr class="separator:gae94ef4f3c0dd37dd65a95de207d1a27a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -65,15 +62,9 @@ Functions</h2></td></tr>
<tr class="memitem:ga68d8d03cc87b3980abec4d80534f3d8e"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga68d8d03cc87b3980abec4d80534f3d8e"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga68d8d03cc87b3980abec4d80534f3d8e">log</a> (detail::tquat&lt; valType &gt; const &amp;q)</td></tr>
<tr class="separator:ga68d8d03cc87b3980abec4d80534f3d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaf2a0323dbf6c6fb3f37b445aa899c1c7">pitch</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaf2a0323dbf6c6fb3f37b445aa899c1c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7765f7d8a3399af25f8bc7956a77c7b2"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga7765f7d8a3399af25f8bc7956a77c7b2"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga7765f7d8a3399af25f8bc7956a77c7b2">pow</a> (detail::tquat&lt; valType &gt; const &amp;x, valType const &amp;y)</td></tr>
<tr class="separator:ga7765f7d8a3399af25f8bc7956a77c7b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga7ef4c8c1ce1ca988add2f73392db0a06">roll</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:ga7ef4c8c1ce1ca988add2f73392db0a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1ada3be83514169fed6054b4e68b5ca"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gad1ada3be83514169fed6054b4e68b5ca"><td class="memTemplItemLeft" align="right" valign="top">detail::tvec3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gad1ada3be83514169fed6054b4e68b5ca">rotate</a> (detail::tquat&lt; valType &gt; const &amp;q, detail::tvec3&lt; valType &gt; const &amp;v)</td></tr>
<tr class="separator:gad1ada3be83514169fed6054b4e68b5ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -98,9 +89,6 @@ Functions</h2></td></tr>
<tr class="memitem:ga25b6237ccb6c4a69d57a181aac99aa43"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:ga25b6237ccb6c4a69d57a181aac99aa43"><td class="memTemplItemLeft" align="right" valign="top">detail::tquat&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga25b6237ccb6c4a69d57a181aac99aa43">toQuat</a> (detail::tmat4x4&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:ga25b6237ccb6c4a69d57a181aac99aa43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
<tr class="memitem:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memTemplItemLeft" align="right" valign="top">valType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaac012c1a6bc37ce07a87745d9c596eed">yaw</a> (detail::tquat&lt; valType &gt; const &amp;x)</td></tr>
<tr class="separator:gaac012c1a6bc37ce07a87745d9c596eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Extented quaternion types and functions. </p>
@ -162,25 +150,6 @@ Functions</h2></td></tr>
<p>Compute a cross product between a vector and a quaternion. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gaaf23d24e27b4e4954d6e0dcf8cc4451c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">detail::tvec3&lt;valType&gt; glm::eulerAngles </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns euler angles, yitch as x, yaw as y, roll as z. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gae94ef4f3c0dd37dd65a95de207d1a27a"></a>
@ -318,25 +287,6 @@ Functions</h2></td></tr>
<p>Returns a log of a quaternion. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gaf2a0323dbf6c6fb3f37b445aa899c1c7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">valType glm::pitch </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga7765f7d8a3399af25f8bc7956a77c7b2"></a>
@ -366,25 +316,6 @@ Functions</h2></td></tr>
<p>Returns x raised to the y power. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga7ef4c8c1ce1ca988add2f73392db0a06"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">valType glm::roll </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gad1ada3be83514169fed6054b4e68b5ca"></a>
@ -547,7 +478,7 @@ Functions</h2></td></tr>
<p>Converts a quaternion to a 3 * 3 matrix. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00077_source.html#l00177">177</a> of file <a class="el" href="a00077_source.html">gtx/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00077_source.html#l00149">149</a> of file <a class="el" href="a00077_source.html">gtx/quaternion.hpp</a>.</p>
<p>References <a class="el" href="a00153.html#gae04ce320008c9bec0037b4ba21853cb5">glm::mat3_cast()</a>.</p>
@ -570,7 +501,7 @@ Functions</h2></td></tr>
<p>Converts a quaternion to a 4 * 4 matrix. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00077_source.html#l00184">184</a> of file <a class="el" href="a00077_source.html">gtx/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00077_source.html#l00156">156</a> of file <a class="el" href="a00077_source.html">gtx/quaternion.hpp</a>.</p>
<p>References <a class="el" href="a00153.html#ga8c376eb15971eb52d85df5ee26825627">glm::mat4_cast()</a>.</p>
@ -593,7 +524,7 @@ Functions</h2></td></tr>
<p>Converts a 3 * 3 matrix to a quaternion. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00077_source.html#l00191">191</a> of file <a class="el" href="a00077_source.html">gtx/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00077_source.html#l00163">163</a> of file <a class="el" href="a00077_source.html">gtx/quaternion.hpp</a>.</p>
<p>References <a class="el" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881">glm::quat_cast()</a>.</p>
@ -616,29 +547,10 @@ Functions</h2></td></tr>
<p>Converts a 4 * 4 matrix to a quaternion. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
<p>Definition at line <a class="el" href="a00077_source.html#l00198">198</a> of file <a class="el" href="a00077_source.html">gtx/quaternion.hpp</a>.</p>
<p>Definition at line <a class="el" href="a00077_source.html#l00170">170</a> of file <a class="el" href="a00077_source.html">gtx/quaternion.hpp</a>.</p>
<p>References <a class="el" href="a00153.html#ga4d37447d81ceade1d10d68c995a4d881">glm::quat_cast()</a>.</p>
</div>
</div>
<a class="anchor" id="gaac012c1a6bc37ce07a87745d9c596eed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">valType glm::yaw </td>
<td>(</td>
<td class="paramtype">detail::tquat&lt; valType &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00198.html" title="Extented quaternion types and functions.">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
</div><!-- contents -->

View File

@ -39,7 +39,7 @@
<div class="textblock"><dl class="reflist">
<dt><a class="anchor" id="_todo000003"></a>Member <a class="el" href="a00132.html#ga5c4d37c42926b09be4384a9656f73ee4">glm::bitCount</a> (genIUType&lt; T &gt; const &amp;Value)</dt>
<dd>Clarify the declaration to specify that scalars are suported. </dd>
<dt><a class="anchor" id="_todo000007"></a>Member <a class="el" href="a00145.html#ga2b53267cfa3c8aa96c02cdba04c53ef5">glm::epsilon</a> ()</dt>
<dt><a class="anchor" id="_todo000007"></a>Member <a class="el" href="a00145.html#gaf38c4ec0213885e6692f206fe1408c71">glm::epsilon</a> ()</dt>
<dd>Implement epsilon for half-precision floating point type. </dd>
<dt><a class="anchor" id="_todo000004"></a>Member <a class="el" href="a00132.html#gaf921488d20990ec15f3fde3d1db919f0">glm::findLSB</a> (genIUType&lt; T &gt; const &amp;Value)</dt>
<dd>Clarify the declaration to specify that scalars are suported. </dd>

View File

@ -83,7 +83,7 @@
<tr id="row_1_25_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="a00185.html" target="_self">GLM_GTX_matrix_query</a></td><td class="desc">Query to evaluate matrix properties</td></tr>
<tr id="row_1_26_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="a00186.html" target="_self">GLM_GTX_mixed_producte</a></td><td class="desc">Mixed product of 3 vectors</td></tr>
<tr id="row_1_27_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="a00187.html" target="_self">GLM_GTX_multiple</a></td><td class="desc">Find the closest number of a number multiple of other number</td></tr>
<tr id="row_1_28_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="a00188.html" target="_self">GLM_GTX_norm</a></td><td class="desc">Various way to compute vector norms</td></tr>
<tr id="row_1_28_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="a00188.html" target="_self">GLM_GTX_norm</a></td><td class="desc">Various ways to compute vector norms</td></tr>
<tr id="row_1_29_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="a00189.html" target="_self">GLM_GTX_normal</a></td><td class="desc">Compute the normal of a triangle</td></tr>
<tr id="row_1_30_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="a00190.html" target="_self">GLM_GTX_normalize_dot</a></td><td class="desc">Dot product of vectors that need to be normalize with a single square root</td></tr>
<tr id="row_1_31_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="a00191.html" target="_self">GLM_GTX_number_precision</a></td><td class="desc">Defined size types</td></tr>

Binary file not shown.

View File

@ -445,6 +445,13 @@ namespace detail
# define GLM_RESTRICT __declspec(restrict)
# define GLM_RESTRICT_VAR __restrict
# define GLM_CONSTEXPR
#elif(GLM_COMPILER & GLM_COMPILER_INTEL)
# define GLM_DEPRECATED
# define GLM_ALIGN(x) __declspec(align(x))
# define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
# define GLM_RESTRICT
# define GLM_RESTRICT_VAR __restrict
# define GLM_CONSTEXPR
#elif((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31))
# define GLM_DEPRECATED __attribute__((__deprecated__))
# define GLM_ALIGN(x) __attribute__((aligned(x)))

View File

@ -278,8 +278,8 @@ namespace glm
/// you would want a threshold function with a smooth
/// transition. This is equivalent to:
/// genType t;
/// t = clamp ((x edge0) / (edge1 edge0), 0, 1);
/// return t * t * (3 2 * t);
/// t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
/// return t * t * (3 - 2 * t);
/// Results are undefined if edge0 >= edge1.
///
/// @tparam genType Floating-point scalar or vector types.

View File

@ -275,7 +275,7 @@ namespace detail
//// Only valid if (INT_MIN <= x-y <= INT_MAX)
//// min(x,y)
//r = y + ((x - y) & ((x - y) >> (sizeof(int) *
//CHAR_BIT 1)));
//CHAR_BIT - 1)));
//// max(x,y)
//r = x - ((x - y) & ((x - y) >> (sizeof(int) *
//CHAR_BIT - 1)));
@ -615,7 +615,7 @@ namespace detail
genType const & x
)
{
GLM_STATIC_ASSERT(detail::type<genType>::is_float, "'mix' only accept floating-point inputs");
GLM_STATIC_ASSERT(detail::type<genType>::is_float, "'step' only accept floating-point inputs");
return x < edge ? genType(0) : genType(1);
}
@ -707,7 +707,7 @@ namespace detail
genType const & x
)
{
GLM_STATIC_ASSERT(detail::type<genType>::is_float, "'mix' only accept floating-point inputs");
GLM_STATIC_ASSERT(detail::type<genType>::is_float, "'smoothstep' only accept floating-point inputs");
genType tmp = clamp((x - edge0) / (edge1 - edge0), genType(0), genType(1));
return tmp * tmp * (genType(3) - genType(2) * tmp);
@ -811,6 +811,8 @@ namespace detail
# else
return std::isnan(x);
# endif
# elif(GLM_COMPILER & GLM_COMPILER_CUDA)
return isnan(x) != 0;
# else
return std::isnan(x);
# endif
@ -866,6 +868,9 @@ namespace detail
# else
return std::isinf(x);
# endif
# elif(GLM_COMPILER & GLM_COMPILER_CUDA)
// http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/group__CUDA__MATH__DOUBLE_g13431dd2b40b51f9139cbb7f50c18fab.html#g13431dd2b40b51f9139cbb7f50c18fab
return isinf(double(x)) != 0;
# else
return std::isinf(x);
# endif

View File

@ -105,7 +105,7 @@ namespace glm
/// returning them in the least significant bits of the result.
/// For unsigned data types, the most significant bits of the
/// result will be set to zero. For signed data types, the
/// most significant bits will be set to the value of bit offset + base 1.
/// most significant bits will be set to the value of bit offset + base - 1.
///
/// If bits is zero, the result will be zero. The result will be
/// undefined if offset or bits is negative, or if the sum of
@ -125,7 +125,7 @@ namespace glm
/// Returns the insertion the bits least-significant bits of insert into base.
///
/// The result will have bits [offset, offset + bits - 1] taken
/// from bits [0, bits 1] of insert, and all other bits taken
/// from bits [0, bits - 1] of insert, and all other bits taken
/// directly from the corresponding bits of base. If bits is
/// zero, the result will simply be base. The result will be
/// undefined if offset or bits is negative, or if the sum of

View File

@ -136,12 +136,42 @@ namespace glm
GLM_FUNC_QUALIFIER double packDouble2x32(detail::tvec2<detail::uint32> const & v)
{
return *(double*)&v;
struct uint32_pair
{
detail::uint32 x;
detail::uint32 y;
};
union helper
{
uint32_pair input;
double output;
} Helper;
Helper.input.x = v.x;
Helper.input.y = v.y;
return Helper.output;
//return *(double*)&v;
}
GLM_FUNC_QUALIFIER detail::tvec2<uint> unpackDouble2x32(double const & v)
{
return *(detail::tvec2<uint>*)&v;
struct uint32_pair
{
detail::uint32 x;
detail::uint32 y;
};
union helper
{
double input;
uint32_pair output;
} Helper;
Helper.input = v;
return detail::tvec2<uint>(Helper.output.x, Helper.output.y);
}
GLM_FUNC_QUALIFIER uint packHalf2x16(detail::tvec2<float> const & v)

View File

@ -62,7 +62,7 @@ namespace detail{
static const ieee754_QNAN absMask;
static const __m128 GLM_VAR_USED abs4Mask = _mm_set_ps1(absMask.f);
static const __m128 GLM_VAR_USED _epi32_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(0x80000000));
static const __m128 GLM_VAR_USED _epi32_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(static_cast<int>(0x80000000)));
//static const __m128 GLM_VAR_USED _epi32_inv_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7FFFFFFF));
//static const __m128 GLM_VAR_USED _epi32_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000));
//static const __m128 GLM_VAR_USED _epi32_inv_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x807FFFFF));

View File

@ -46,7 +46,7 @@ GLM_FUNC_QUALIFIER matType sse_comp_mul_ps
out[3] = _mm_mul_ps(in1[3], in2[3]);
}
GLM_FUNC_QUALIFIER void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4])
GLM_FUNC_QUALIFIER void sse_add_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4])
{
{
out[0] = _mm_add_ps(in1[0], in2[0]);
@ -56,7 +56,7 @@ GLM_FUNC_QUALIFIER void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4])
}
}
GLM_FUNC_QUALIFIER void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4])
GLM_FUNC_QUALIFIER void sse_sub_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4])
{
{
out[0] = _mm_sub_ps(in1[0], in2[0]);
@ -66,7 +66,7 @@ GLM_FUNC_QUALIFIER void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4])
}
}
GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 m[4], __m128 v)
GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 const m[4], __m128 v)
{
__m128 v0 = _mm_shuffle_ps(v, v, _MM_SHUFFLE(0, 0, 0, 0));
__m128 v1 = _mm_shuffle_ps(v, v, _MM_SHUFFLE(1, 1, 1, 1));
@ -85,7 +85,7 @@ GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 m[4], __m128 v)
return a2;
}
GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 v, __m128 m[4])
GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 v, __m128 const m[4])
{
__m128 i0 = m[0];
__m128 i1 = m[1];

View File

@ -36,7 +36,7 @@
#define GLM_VERSION_MAJOR 0
#define GLM_VERSION_MINOR 9
#define GLM_VERSION_PATCH 4
#define GLM_VERSION_REVISION 0
#define GLM_VERSION_REVISION 2
///////////////////////////////////////////////////////////////////////////////////////////////////
// Platform
@ -536,6 +536,13 @@
# define GLM_ARCH GLM_ARCH_PURE
#endif
// With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is
// that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.
// To fix, we just explicitly include intrin.h here.
#if defined(__MINGW32__) && (GLM_ARCH != GLM_ARCH_PURE)
# include <intrin.h>
#endif
//#if(GLM_ARCH != GLM_ARCH_PURE)
#if(GLM_ARCH & GLM_ARCH_AVX2)
# include <immintrin.h>

View File

@ -155,7 +155,7 @@ namespace detail
// We convert f to a half zero.
//
return 0;
return hdata(s);
}
//

View File

@ -269,21 +269,6 @@ namespace glm
abs(x.w - y.w) < epsilon);
}
template <typename valType>
GLM_FUNC_QUALIFIER detail::tvec4<bool> epsilonEqual
(
detail::tquat<valType> const & x,
detail::tquat<valType> const & y,
detail::tquat<valType> const & epsilon
)
{
return detail::tvec4<bool>(
abs(x.x - y.x) < epsilon.x,
abs(x.y - y.y) < epsilon.y,
abs(x.z - y.z) < epsilon.z,
abs(x.w - y.w) < epsilon.w);
}
template <typename valType>
GLM_FUNC_QUALIFIER detail::tvec4<bool> epsilonNotEqual
(
@ -298,19 +283,4 @@ namespace glm
abs(x.z - y.z) >= epsilon,
abs(x.w - y.w) >= epsilon);
}
template <typename valType>
GLM_FUNC_QUALIFIER detail::tvec4<bool> epsilonNotEqual
(
detail::tquat<valType> const & x,
detail::tquat<valType> const & y,
detail::tquat<valType> const & epsilon
)
{
return detail::tvec4<bool>(
abs(x.x - y.x) >= epsilon.x,
abs(x.y - y.y) >= epsilon.y,
abs(x.z - y.z) >= epsilon.z,
abs(x.w - y.w) >= epsilon.w);
}
}//namespace glm

View File

@ -87,8 +87,8 @@ namespace glm
///
/// @param m Input matrix multiplied by this rotation matrix.
/// @param angle Rotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
/// @param axis Rotation axis.
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @param axis Rotation axis, recommanded to be normalized.
/// @tparam T Value type used to build the matrix. Supported: half, float or double.
/// @see gtc_matrix_transform
/// @see gtx_transform
/// @see - rotate(T angle, T x, T y, T z)

View File

@ -236,7 +236,13 @@ namespace glm
valType const & zFar
)
{
valType range = tan(radians(fovy / valType(2))) * zNear;
#ifdef GLM_FORCE_RADIANS
valType const rad = fovy;
#else
valType const rad = glm::radians(fovy);
#endif
valType range = tan(radians(rad / valType(2))) * zNear;
valType left = -range * aspect;
valType right = range * aspect;
valType bottom = -range;

View File

@ -22,11 +22,12 @@
///
/// @ref gtc_quaternion
/// @file glm/gtc/quaternion.hpp
/// @date 2009-05-21 / 2011-06-05
/// @date 2009-05-21 / 2012-12-20
/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
/// @see gtc_constants (dependence)
///
/// @defgroup gtc_quaternion GLM_GTC_quaternion
/// @ingroup gtc
@ -42,6 +43,7 @@
// Dependency:
#include "../glm.hpp"
#include "../gtc/half_float.hpp"
#include "../gtc/constants.hpp"
#if(defined(GLM_MESSAGES) && !defined(glm_ext))
# pragma message("GLM: GLM_GTC_quaternion extension included")
@ -169,15 +171,50 @@ namespace detail
detail::tquat<T> const & q1,
detail::tquat<T> const & q2);
/// Returns a SLERP interpolated quaternion of x and y according a.
/// Spherical linear interpolation of two quaternions.
/// The interpolation is oriented and the rotation is performed at constant speed.
/// For short path spherical linear interpolation, use the slerp function.
///
/// @param x A quaternion
/// @param y A quaternion
/// @param a Interpolation factor. The interpolation is defined beyond the range [0, 1].
/// @tparam T Value type used to build the quaternion. Supported: half, float or double.
/// @see gtc_quaternion
/// @see - slerp(detail::tquat<T> const & x, detail::tquat<T> const & y, T const & a)
template <typename T>
detail::tquat<T> mix(
detail::tquat<T> const & x,
detail::tquat<T> const & y,
T const & a);
/// Linear interpolation of two quaternions.
/// The interpolation is oriented.
///
/// @param x A quaternion
/// @param y A quaternion
/// @param a Interpolation factor. The interpolation is defined in the range [0, 1].
/// @tparam T Value type used to build the quaternion. Supported: half, float or double.
/// @see gtc_quaternion
template <typename T>
detail::tquat<T> lerp(
detail::tquat<T> const & x,
detail::tquat<T> const & y,
T const & a);
/// Spherical linear interpolation of two quaternions.
/// The interpolation always take the short path and the rotation is performed at constant speed.
///
/// @param x A quaternion
/// @param y A quaternion
/// @param a Interpolation factor. The interpolation is defined beyond the range [0, 1].
/// @tparam T Value type used to build the quaternion. Supported: half, float or double.
/// @see gtc_quaternion
template <typename T>
detail::tquat<T> slerp(
detail::tquat<T> const & x,
detail::tquat<T> const & y,
T const & a);
/// Returns the q conjugate.
///
/// @see gtc_quaternion

View File

@ -443,6 +443,7 @@ namespace detail
return normalize(beta * x + alpha * y);
}
*/
template <typename T>
GLM_FUNC_QUALIFIER detail::tquat<T> mix
(
@ -451,8 +452,77 @@ namespace detail
T const & a
)
{
T angle = acos(dot(x, y));
return (glm::sin((T(1) - a) * angle) * x + glm::sin(a * angle) * y) / glm::sin(angle);
T cosTheta = dot(x, y);
// Perform a linear interpolation when cosTheta is close to 1 to avoid side effect of sin(angle) becoming a zero denominator
if(cosTheta > T(1) - epsilon<T>())
{
// Linear interpolation
return detail::tquat<T>(
mix(x.w, y.w, a),
mix(x.x, y.x, a),
mix(x.y, y.y, a),
mix(x.z, y.z, a));
}
else
{
// Essential Mathematics, page 467
T angle = acos(cosTheta);
return (sin((T(1) - a) * angle) * x + sin(a * angle) * y) / sin(angle);
}
}
template <typename T>
GLM_FUNC_QUALIFIER detail::tquat<T> lerp
(
detail::tquat<T> const & x,
detail::tquat<T> const & y,
T const & a
)
{
// Lerp is only defined in [0, 1]
assert(a >= T(0));
assert(a <= T(1));
return x * (T(1) - a) + (y * a);
}
template <typename T>
GLM_FUNC_QUALIFIER detail::tquat<T> slerp
(
detail::tquat<T> const & x,
detail::tquat<T> const & y,
T const & a
)
{
detail::tquat<T> z = y;
T cosTheta = dot(x, y);
// If cosTheta < 0, the interpolation will take the long way around the sphere.
// To fix this, one quat must be negated.
if (cosTheta < T(0))
{
z = -y;
cosTheta = -cosTheta;
}
// Perform a linear interpolation when cosTheta is close to 1 to avoid side effect of sin(angle) becoming a zero denominator
if(cosTheta > T(1) - epsilon<T>())
{
// Linear interpolation
return detail::tquat<T>(
mix(x.w, y.w, a),
mix(x.x, y.x, a),
mix(x.y, y.y, a),
mix(x.z, y.z, a));
}
else
{
// Essential Mathematics, page 467
T angle = acos(cosTheta);
return (sin((T(1) - a) * angle) * x + sin(a * angle) * z) / sin(angle);
}
}
template <typename T>
@ -641,6 +711,10 @@ namespace detail
Result.y = (m[1][2] + m[2][1]) * mult;
Result.z = biggestVal;
break;
default: // Silence a -Wswitch-default warning in GCC. Should never actually get here. Assert is just for sanity.
assert(false);
break;
}
return Result;
}

View File

@ -36,8 +36,10 @@
#include <cmath>
#include <cfloat>
#if(GLM_COMPILER & GLM_COMPILER_VC)
# pragma warning(push)
# pragma warning(disable : 4127)
#endif
typedef union
{
@ -186,7 +188,9 @@ namespace detail
}//namespace detail
}//namespace glm
#if(GLM_COMPILER & GLM_COMPILER_VC)
# pragma warning(pop)
#endif
#if((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
# define GLM_NEXT_AFTER_FLT(x, toward) glm::detail::nextafterf((x), (toward))

View File

@ -12,7 +12,7 @@ namespace glm
template <typename genType>
GLM_FUNC_QUALIFIER typename genType::value_type compAdd(genType const & v)
{
typename genType::size_type result = typename genType::value_type(0);
typename genType::value_type result = typename genType::value_type(0);
for(typename genType::size_type i = 0; i < v.length(); ++i)
result += v[i];
return result;

View File

@ -31,7 +31,7 @@
/// @defgroup gtx_norm GLM_GTX_norm
/// @ingroup gtx
///
/// @brief Various way to compute vector norms.
/// @brief Various ways to compute vector norms.
///
/// <glm/gtx/norm.hpp> need to be included to use these functionalities.
///////////////////////////////////////////////////////////////////////////////////

View File

@ -91,6 +91,8 @@ namespace detail
fvec4SIMD const & v3);
explicit fmat4x4SIMD(
tmat4x4<float> const & m);
explicit fmat4x4SIMD(
__m128 const in[4]);
// Conversions
//template <typename U>

View File

@ -26,7 +26,14 @@ GLM_FUNC_QUALIFIER fmat4x4SIMD::size_type fmat4x4SIMD::row_size()
}
GLM_FUNC_QUALIFIER fmat4x4SIMD::fmat4x4SIMD()
{}
{
#ifndef GLM_SIMD_ENABLE_DEFAULT_INIT
this->Data[0] = fvec4SIMD(1.0f, 0, 0, 0);
this->Data[1] = fvec4SIMD(0, 1.0f, 0, 0);
this->Data[2] = fvec4SIMD(0, 0, 1.0f, 0);
this->Data[3] = fvec4SIMD(0, 0, 0, 1.0f);
#endif
}
GLM_FUNC_QUALIFIER fmat4x4SIMD::fmat4x4SIMD(float const & s)
{
@ -75,6 +82,17 @@ GLM_FUNC_QUALIFIER fmat4x4SIMD::fmat4x4SIMD
this->Data[3] = fvec4SIMD(m[3]);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD::fmat4x4SIMD
(
__m128 const in[4]
)
{
this->Data[0] = in[0];
this->Data[1] = in[1];
this->Data[2] = in[2];
this->Data[3] = in[3];
}
//////////////////////////////////////
// Accesses
@ -84,7 +102,7 @@ GLM_FUNC_QUALIFIER fvec4SIMD & fmat4x4SIMD::operator[]
)
{
assert(
i >= fmat4x4SIMD::size_type(0) &&
//i >= fmat4x4SIMD::size_type(0) &&
i < fmat4x4SIMD::col_size());
return this->Data[i];
@ -96,7 +114,7 @@ GLM_FUNC_QUALIFIER fvec4SIMD const & fmat4x4SIMD::operator[]
) const
{
assert(
i >= fmat4x4SIMD::size_type(0) &&
//i >= fmat4x4SIMD::size_type(0) &&
i < fmat4x4SIMD::col_size());
return this->Data[i];
@ -232,6 +250,274 @@ GLM_FUNC_QUALIFIER fmat4x4SIMD & fmat4x4SIMD::operator-- ()
return *this;
}
//////////////////////////////////////////////////////////////
// Binary operators
GLM_FUNC_QUALIFIER fmat4x4SIMD operator+
(
const fmat4x4SIMD &m,
float const & s
)
{
return detail::fmat4x4SIMD
(
m[0] + s,
m[1] + s,
m[2] + s,
m[3] + s
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator+
(
float const & s,
const fmat4x4SIMD &m
)
{
return detail::fmat4x4SIMD
(
m[0] + s,
m[1] + s,
m[2] + s,
m[3] + s
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator+
(
const fmat4x4SIMD &m1,
const fmat4x4SIMD &m2
)
{
return detail::fmat4x4SIMD
(
m1[0] + m2[0],
m1[1] + m2[1],
m1[2] + m2[2],
m1[3] + m2[3]
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator-
(
const fmat4x4SIMD &m,
float const & s
)
{
return detail::fmat4x4SIMD
(
m[0] - s,
m[1] - s,
m[2] - s,
m[3] - s
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator-
(
float const & s,
const fmat4x4SIMD &m
)
{
return detail::fmat4x4SIMD
(
s - m[0],
s - m[1],
s - m[2],
s - m[3]
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator-
(
const fmat4x4SIMD &m1,
const fmat4x4SIMD &m2
)
{
return detail::fmat4x4SIMD
(
m1[0] - m2[0],
m1[1] - m2[1],
m1[2] - m2[2],
m1[3] - m2[3]
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator*
(
const fmat4x4SIMD &m,
float const & s
)
{
return detail::fmat4x4SIMD
(
m[0] * s,
m[1] * s,
m[2] * s,
m[3] * s
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator*
(
float const & s,
const fmat4x4SIMD &m
)
{
return detail::fmat4x4SIMD
(
m[0] * s,
m[1] * s,
m[2] * s,
m[3] * s
);
}
GLM_FUNC_QUALIFIER fvec4SIMD operator*
(
const fmat4x4SIMD &m,
fvec4SIMD const & v
)
{
return sse_mul_ps(&m.Data[0].Data, v.Data);
}
GLM_FUNC_QUALIFIER fvec4SIMD operator*
(
fvec4SIMD const & v,
const fmat4x4SIMD &m
)
{
return sse_mul_ps(v.Data, &m.Data[0].Data);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator*
(
const fmat4x4SIMD &m1,
const fmat4x4SIMD &m2
)
{
fmat4x4SIMD result;
sse_mul_ps(&m1.Data[0].Data, &m2.Data[0].Data, &result.Data[0].Data);
return result;
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator/
(
const fmat4x4SIMD &m,
float const & s
)
{
return detail::fmat4x4SIMD
(
m[0] / s,
m[1] / s,
m[2] / s,
m[3] / s
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator/
(
float const & s,
const fmat4x4SIMD &m
)
{
return detail::fmat4x4SIMD
(
s / m[0],
s / m[1],
s / m[2],
s / m[3]
);
}
GLM_FUNC_QUALIFIER fvec4SIMD operator/
(
const fmat4x4SIMD &m,
fvec4SIMD const & v
)
{
return inverse(m) * v;
}
GLM_FUNC_QUALIFIER fvec4SIMD operator/
(
fvec4SIMD const & v,
const fmat4x4SIMD &m
)
{
return v * inverse(m);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD operator/
(
const fmat4x4SIMD &m1,
const fmat4x4SIMD &m2
)
{
__m128 result[4];
__m128 inv[4];
sse_inverse_ps(&m2.Data[0].Data, inv);
sse_mul_ps(&m1.Data[0].Data, inv, result);
return fmat4x4SIMD(result);
}
//////////////////////////////////////////////////////////////
// Unary constant operators
GLM_FUNC_QUALIFIER fmat4x4SIMD const operator-
(
fmat4x4SIMD const & m
)
{
return detail::fmat4x4SIMD
(
-m[0],
-m[1],
-m[2],
-m[3]
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD const operator--
(
fmat4x4SIMD const & m,
int
)
{
return detail::fmat4x4SIMD
(
m[0] - 1.0f,
m[1] - 1.0f,
m[2] - 1.0f,
m[3] - 1.0f
);
}
GLM_FUNC_QUALIFIER fmat4x4SIMD const operator++
(
fmat4x4SIMD const & m,
int
)
{
return detail::fmat4x4SIMD
(
m[0] + 1.0f,
m[1] + 1.0f,
m[2] + 1.0f,
m[3] + 1.0f
);
}
}//namespace detail
GLM_FUNC_QUALIFIER detail::tmat4x4<float> mat4_cast

View File

@ -54,6 +54,14 @@
# pragma message("GLM: GLM_GTX_simd_vec4 extension included")
#endif
// Warning silencer for nameless struct/union.
#if (GLM_COMPILER & GLM_COMPILER_VC)
# pragma warning(push)
# pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
#endif
namespace glm{
namespace detail
{
@ -69,7 +77,15 @@ namespace detail
typedef fvec4SIMD type;
typedef tvec4<bool> bool_type;
#ifdef GLM_SIMD_ENABLE_XYZW_UNION
union
{
__m128 Data;
struct {float x, y, z, w;};
};
#else
__m128 Data;
#endif
//////////////////////////////////////
// Implicit basic constructors
@ -289,8 +305,8 @@ namespace detail
//! you would want a threshold function with a smooth
//! transition. This is equivalent to:
//! genType t;
//! t = clamp ((x edge0) / (edge1 edge0), 0, 1);
//! return t * t * (3 2 * t);
//! t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
//! return t * t * (3 - 2 * t);
//! Results are undefined if edge0 >= edge1.
//! (From GLM_GTX_simd_vec4 extension, common function)
detail::fvec4SIMD smoothstep(
@ -490,6 +506,12 @@ namespace detail
#include "simd_vec4.inl"
#if (GLM_COMPILER & GLM_COMPILER_VC)
# pragma warning(pop)
#endif
#endif//(GLM_ARCH != GLM_ARCH_PURE)
#endif//GLM_GTX_simd_vec4

View File

@ -20,6 +20,9 @@ struct mask
// Implicit basic constructors
GLM_FUNC_QUALIFIER fvec4SIMD::fvec4SIMD()
#ifdef GLM_SIMD_ENABLE_DEFAULT_INIT
: Data(_mm_set_ps(0.0f, 0.0f, 0.0f, 0.0f))
#endif
{}
GLM_FUNC_QUALIFIER fvec4SIMD::fvec4SIMD(__m128 const & Data) :
@ -449,7 +452,7 @@ GLM_FUNC_QUALIFIER detail::fvec4SIMD mix
{
__m128 Sub0 = _mm_sub_ps(y.Data, x.Data);
__m128 Mul0 = _mm_mul_ps(a.Data, Sub0);
return _mm_mul_ps(x.Data, Mul0);
return _mm_add_ps(x.Data, Mul0);
}
GLM_FUNC_QUALIFIER detail::fvec4SIMD step

View File

@ -7,7 +7,7 @@ glm@g-truc.net
================================================================================
The MIT License
--------------------------------------------------------------------------------
Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -36,6 +36,32 @@ GLM is a header only library, there is nothing to build, just include it.
More informations in GLM manual:
http://glm.g-truc.net/glm.pdf
================================================================================
GLM 0.9.4.2: 2013-01-XX
--------------------------------------------------------------------------------
- Fixed compAdd from GTX_component_wise
- Fixed SIMD support for Intel compiler on Windows
- Fixed isnan and isinf for CUDA compiler
- Fixed GLM_FORCE_RADIANS on glm::perspective
- Fixed GCC warnings
- Fixed packDouble2x32 on XCode
- Fixed mix for vec4 SSE implementation
- Fixed 0x2013 dash character in comments that cause issue in Windows
Japanese mode
================================================================================
GLM 0.9.4.1: 2012-12-22
--------------------------------------------------------------------------------
- Improved half support: -0.0 case and implicit conversions
- Fixed Intel Composer Compiler support on Linux
- Fixed interaction between quaternion and euler angles
- Fixed GTC_constants build
- Fixed GTX_multiple
- Fixed quat slerp using mix function when cosTheta close to 1
- Improved fvec4SIMD and fmat4x4SIMD implementations
- Fixed assert messages
- Added slerp and lerp quaternion functions and tests
================================================================================
GLM 0.9.4.0: 2012-11-18
--------------------------------------------------------------------------------

View File

@ -17,13 +17,10 @@ int test_defined()
glm::epsilonEqual(glm::vec2(), glm::vec2(), glm::vec2());
glm::epsilonEqual(glm::vec3(), glm::vec3(), glm::vec3());
glm::epsilonEqual(glm::vec4(), glm::vec4(), glm::vec4());
glm::epsilonEqual(glm::quat(), glm::quat(), glm::quat());
glm::epsilonNotEqual(glm::vec2(), glm::vec2(), glm::vec2());
glm::epsilonNotEqual(glm::vec3(), glm::vec3(), glm::vec3());
glm::epsilonNotEqual(glm::vec4(), glm::vec4(), glm::vec4());
glm::epsilonNotEqual(glm::quat(), glm::quat(), glm::quat());
glm::epsilonEqual(glm::vec2(), glm::vec2(), 0.0f);
glm::epsilonEqual(glm::vec3(), glm::vec3(), 0.0f);

View File

@ -144,6 +144,67 @@ int test_quat_euler()
return Error;
}
int test_quat_slerp()
{
int Error(0);
float const Epsilon = 0.0001f;//glm::epsilon<float>();
float sqrt2 = sqrt(2.0f)/2.0f;
glm::quat id;
glm::quat Y90rot(sqrt2, 0.0f, sqrt2, 0.0f);
glm::quat Y180rot(0.0f, 0.0f, 1.0f, 0.0f);
// Testing a == 0
// Must be id
glm::quat id2 = glm::slerp(id, Y90rot, 0.0f);
Error += glm::all(glm::epsilonEqual(id, id2, Epsilon)) ? 0 : 1;
// Testing a == 1
// Must be 90° rotation on Y : 0 0.7 0 0.7
glm::quat Y90rot2 = glm::slerp(id, Y90rot, 1.0f);
Error += glm::all(glm::epsilonEqual(Y90rot, Y90rot2, Epsilon)) ? 0 : 1;
// Testing standard, easy case
// Must be 45° rotation on Y : 0 0.38 0 0.92
glm::quat Y45rot1 = glm::slerp(id, Y90rot, 0.5f);
// Testing reverse case
// Must be 45° rotation on Y : 0 0.38 0 0.92
glm::quat Ym45rot2 = glm::slerp(Y90rot, id, 0.5f);
// Testing against full circle around the sphere instead of shortest path
// Must be 45° rotation on Y
// certainly not a 135° rotation
glm::quat Y45rot3 = glm::slerp(id , -Y90rot, 0.5f);
float Y45angle3 = glm::angle(Y45rot3);
Error += glm::epsilonEqual(Y45angle3, 45.f, Epsilon) ? 0 : 1;
Error += glm::all(glm::epsilonEqual(Ym45rot2, Y45rot3, Epsilon)) ? 0 : 1;
// Same, but inverted
// Must also be 45° rotation on Y : 0 0.38 0 0.92
// -0 -0.38 -0 -0.92 is ok too
glm::quat Y45rot4 = glm::slerp(-Y90rot, id, 0.5f);
Error += glm::all(glm::epsilonEqual(Ym45rot2, -Y45rot4, Epsilon)) ? 0 : 1;
// Testing q1 = q2
// Must be 90° rotation on Y : 0 0.7 0 0.7
glm::quat Y90rot3 = glm::slerp(Y90rot, Y90rot, 0.5f);
Error += glm::all(glm::epsilonEqual(Y90rot, Y90rot3, Epsilon)) ? 0 : 1;
// Testing 180° rotation
// Must be 90° rotation on almost any axis that is on the XZ plane
glm::quat XZ90rot = glm::slerp(id, -Y90rot, 0.5f);
float XZ90angle = glm::angle(XZ90rot); // Must be PI/4 = 0.78;
Error += glm::epsilonEqual(XZ90angle, 45.f, Epsilon) ? 0 : 1;
// Testing almost equal quaternions (this test should pass through the linear interpolation)
// Must be 0 0.00X 0 0.99999
glm::quat almostid = glm::slerp(id, glm::angleAxis(0.1f, 0.0f, 1.0f, 0.0f), 0.5f);
return Error;
}
int test_quat_type()
{
glm::quat A;
@ -163,6 +224,7 @@ int main()
Error += test_quat_mix();
Error += test_quat_normalize();
Error += test_quat_euler();
Error += test_quat_slerp();
return Error;
}