Files
PhysX4.1/physx/documentation/PhysXAPI/files/PxQuat_8h_source.html
2025-11-28 23:13:44 +05:30

166 lines
89 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxQuat.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('PxQuat_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">PxQuat.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="PxQuat_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Redistribution and use in source and binary forms, with or without</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// modification, are permitted provided that the following conditions</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// are met:</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// * Redistributions of source code must retain the above copyright</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// notice, this list of conditions and the following disclaimer.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// * Redistributions in binary form must reproduce the above copyright</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// notice, this list of conditions and the following disclaimer in the</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// documentation and/or other materials provided with the distribution.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// * Neither the name of NVIDIA CORPORATION nor the names of its</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// contributors may be used to endorse or promote products derived</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// from this software without specific prior written permission.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS &#39;&#39;AS IS&#39;&#39; AND ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2021 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef PXFOUNDATION_PXQUAT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define PXFOUNDATION_PXQUAT_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PxVec3_8h.html">foundation/PxVec3.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#if !PX_DOXYGEN</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classPxQuat.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="classPxQuat.html">PxQuat</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classPxQuat.html#afac7f63b57840965157cf720bb6faddc"> 55</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html#afac7f63b57840965157cf720bb6faddc">PxQuat</a>()</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; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classPxQuat.html#a13d4cf835204d37e90fecef45659c790"> 60</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxQuat.html#a13d4cf835204d37e90fecef45659c790">PxQuat</a>(<a class="code" href="group__foundation.html#ga70160ca5bbafef277790b3e0f12baf38">PxIDENTITY</a> r) : x(0.0f), y(0.0f), z(0.0f), w(1.0f)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="group__foundation.html#ga9727af514012bc32f852e20278a7b04e">PX_UNUSED</a>(r);</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;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classPxQuat.html#ab364d7ce854065cd32b2dbbd8d30e279"> 68</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html#ab364d7ce854065cd32b2dbbd8d30e279">PxQuat</a>(<span class="keywordtype">float</span> r) : x(0.0f), y(0.0f), z(0.0f), w(r)</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; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classPxQuat.html#affc77743ed2c2cd3a90749de917187b0"> 75</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html#affc77743ed2c2cd3a90749de917187b0">PxQuat</a>(<span class="keywordtype">float</span> nx, <span class="keywordtype">float</span> ny, <span class="keywordtype">float</span> nz, <span class="keywordtype">float</span> nw) : x(nx), y(ny), z(nz), w(nw)</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; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classPxQuat.html#a96cdb8dff7a2ed40a71912edf19dd812"> 88</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxQuat.html#a96cdb8dff7a2ed40a71912edf19dd812">PxQuat</a>(<span class="keywordtype">float</span> angleRadians, <span class="keyword">const</span> <a class="code" href="classPxVec3.html">PxVec3</a>&amp; unitAxis)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="group__foundation.html#ga07ffc52cd4afa8e797a5fe6e1cb7e17a">PX_SHARED_ASSERT</a>(<a class="code" href="group__foundation.html#gaf72e1dce9e874da7b92cbc0ea5e4e30d">PxAbs</a>(1.0f - unitAxis.<a class="code" href="classPxVec3.html#a5f7512ff35bdf6f8f5cff4dbdd1bcdd0">magnitude</a>()) &lt; 1e-3f);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> a = angleRadians * 0.5f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> s = <a class="code" href="group__foundation.html#ga98f571cc01fc3aa0e73e215c27ab8069">PxSin</a>(a);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; w = <a class="code" href="group__foundation.html#gacc501523ad3ab46c5a061c4442d10fcf">PxCos</a>(a);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; x = unitAxis.<a class="code" href="classPxVec3.html#a391194bca8291161c06254f4ac2b6ada">x</a> * s;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; y = unitAxis.<a class="code" href="classPxVec3.html#a29958700f50da2204edc519b47706a05">y</a> * s;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; z = unitAxis.<a class="code" href="classPxVec3.html#a50d67b162b99b904c3f362ad0415dbca">z</a> * s;</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;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classPxQuat.html#ae12a02d9cb43b5e2c7dc083563cf1586"> 102</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html#ae12a02d9cb43b5e2c7dc083563cf1586">PxQuat</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; v) : x(v.x), y(v.y), z(v.z), w(v.w)</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; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keyword">explicit</span> <a class="code" href="classPxQuat.html">PxQuat</a>(<span class="keyword">const</span> <a class="code" href="classPxMat33.html">PxMat33</a>&amp; m); <span class="comment">/* defined in PxMat33.h */</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classPxQuat.html#a50b0642427a4315f14657d15094d35b2"> 116</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="classPxQuat.html#a50b0642427a4315f14657d15094d35b2">isIdentity</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> x==0.0f &amp;&amp; y==0.0f &amp;&amp; z==0.0f &amp;&amp; w==1.0f;</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;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classPxQuat.html#a1c665c57310b414f973f7d90d6b89c2a"> 124</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <span class="keywordtype">bool</span> <a class="code" href="classPxQuat.html#a1c665c57310b414f973f7d90d6b89c2a">isFinite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__foundation.html#gad6de0f4af98c5c5280b8fe695dc87318">PxIsFinite</a>(x) &amp;&amp; <a class="code" href="group__foundation.html#gad6de0f4af98c5c5280b8fe695dc87318">PxIsFinite</a>(y) &amp;&amp; <a class="code" href="group__foundation.html#gad6de0f4af98c5c5280b8fe695dc87318">PxIsFinite</a>(z) &amp;&amp; <a class="code" href="group__foundation.html#gad6de0f4af98c5c5280b8fe695dc87318">PxIsFinite</a>(w);</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;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classPxQuat.html#a35ac53818eeab314fc2888542b969544"> 132</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <span class="keywordtype">bool</span> <a class="code" href="classPxQuat.html#a35ac53818eeab314fc2888542b969544">isUnit</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> unitTolerance = 1e-4f;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacephysx_1_1intrinsics.html#a28bd12477f3ca0b092c0b9b61bdfaf04">isFinite</a>() &amp;&amp; <a class="code" href="group__foundation.html#gaf72e1dce9e874da7b92cbc0ea5e4e30d">PxAbs</a>(magnitude() - 1) &lt; unitTolerance;</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;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classPxQuat.html#a9ae073fbc5614a4698087370ce591567"> 142</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <span class="keywordtype">bool</span> <a class="code" href="classPxQuat.html#a9ae073fbc5614a4698087370ce591567">isSane</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> unitTolerance = 1e-2f;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacephysx_1_1intrinsics.html#a28bd12477f3ca0b092c0b9b61bdfaf04">isFinite</a>() &amp;&amp; <a class="code" href="group__foundation.html#gaf72e1dce9e874da7b92cbc0ea5e4e30d">PxAbs</a>(magnitude() - 1) &lt; unitTolerance;</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;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classPxQuat.html#af03e9e7917ffe907effa610f7d314fa5"> 151</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="classPxQuat.html#af03e9e7917ffe907effa610f7d314fa5">operator==</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; q)<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> x == q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> &amp;&amp; y == q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> &amp;&amp; z == q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> &amp;&amp; w == q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a>;</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;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classPxQuat.html#a89bd359f188b7d164be0d5f1caf0745f"> 159</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="classPxQuat.html#a89bd359f188b7d164be0d5f1caf0745f">toRadiansAndUnitAxis</a>(<span class="keywordtype">float</span>&amp; angle, <a class="code" href="classPxVec3.html">PxVec3</a>&amp; axis)<span class="keyword"> const</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> quatEpsilon = 1.0e-8f;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> s2 = x * x + y * y + z * z;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(s2 &lt; quatEpsilon * quatEpsilon) <span class="comment">// can&#39;t extract a sensible axis</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; angle = 0.0f;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; axis = <a class="code" href="classPxVec3.html">PxVec3</a>(1.0f, 0.0f, 0.0f);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> s = <a class="code" href="group__foundation.html#gacd945627f345ba03e83a30387ab99dea">PxRecipSqrt</a>(s2);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; axis = <a class="code" href="classPxVec3.html">PxVec3</a>(x, y, z) * s;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; angle = <a class="code" href="group__foundation.html#gaf72e1dce9e874da7b92cbc0ea5e4e30d">PxAbs</a>(w) &lt; quatEpsilon ? <a class="code" href="group__foundation.html#gabcd49a429b8119de54375b3538ae8a8d">PxPi</a> : <a class="code" href="group__foundation.html#ga3b820cf45fee058a4083d955daa02154">PxAtan2</a>(s2 * s, w) * 2.0f;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classPxQuat.html#ae3b0197aa605d5eca6c0d8af9ad4a473"> 181</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="classPxQuat.html#ae3b0197aa605d5eca6c0d8af9ad4a473">getAngle</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__foundation.html#ga0953977efc7599071aefadc35e842f97">PxAcos</a>(w) * 2.0f;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classPxQuat.html#a39039c4e100d0a1f928a8b9cd806df0c"> 191</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="classPxQuat.html#a39039c4e100d0a1f928a8b9cd806df0c">getAngle</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; q)<span class="keyword"> const</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__foundation.html#ga0953977efc7599071aefadc35e842f97">PxAcos</a>(dot(q)) * 2.0f;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classPxQuat.html#a74371f064482934e99ed623e7279d927"> 199</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="classPxQuat.html#a74371f064482934e99ed623e7279d927">magnitudeSquared</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> x * x + y * y + z * z + w * w;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classPxQuat.html#a35d16e1cc27f7dbf1de1910bc846d5e4"> 207</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="classPxQuat.html#a35d16e1cc27f7dbf1de1910bc846d5e4">dot</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; v)<span class="keyword"> const</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> x * v.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> + y * v.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> + z * v.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> + w * v.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classPxQuat.html#a8ba7d546fb84bd2628887c998bcadf9d"> 212</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a> <a class="code" href="classPxQuat.html#a8ba7d546fb84bd2628887c998bcadf9d">getNormalized</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> s = 1.0f / magnitude();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxQuat.html">PxQuat</a>(x * s, y * s, z * s, w * s);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classPxQuat.html#a604f79ac9821d365d601242331a80e11"> 218</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="classPxQuat.html#a604f79ac9821d365d601242331a80e11">magnitude</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__foundation.html#ga11d5e4e77acad728886b380b5f3806f0">PxSqrt</a>(magnitudeSquared());</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;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// modifiers:</span></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classPxQuat.html#a77a42662202126a13f2f9fc12013fe70"> 227</a></span>&#160;<span class="comment"></span> <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="classPxQuat.html#a77a42662202126a13f2f9fc12013fe70">normalize</a>() <span class="comment">// convert this PxQuat to a unit quaternion</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; <span class="keyword">const</span> <span class="keywordtype">float</span> mag = magnitude();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span>(mag != 0.0f)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> imag = 1.0f / mag;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; x *= imag;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; y *= imag;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; z *= imag;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; w *= imag;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> mag;</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;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"> \brief returns the conjugate.</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> \note for unit quaternions, this is the inverse.</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classPxQuat.html#a955317d16f9eeb450c4d37d3d8a3f638"> 247</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a> <a class="code" href="classPxQuat.html#a955317d16f9eeb450c4d37d3d8a3f638">getConjugate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxQuat.html">PxQuat</a>(-x, -y, -z, w);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"> \brief returns imaginary part.</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classPxQuat.html#a84fc51682333705ddf6b604727a84289"> 255</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxVec3.html">PxVec3</a> <a class="code" href="classPxQuat.html#a84fc51682333705ddf6b604727a84289">getImaginaryPart</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxVec3.html">PxVec3</a>(x, y, z);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classPxQuat.html#aa471a180b8a6cd36272d6af18a0da8bc"> 261</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html">PxVec3</a> <a class="code" href="classPxQuat.html#aa471a180b8a6cd36272d6af18a0da8bc">getBasisVector0</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> x2 = x * 2.0f;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w2 = w * 2.0f;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxVec3.html">PxVec3</a>((w * w2) - 1.0f + x * x2, (z * w2) + y * x2, (-y * w2) + z * x2);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classPxQuat.html#a896c206afb4301300e5361a1cc2a3b24"> 269</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html">PxVec3</a> <a class="code" href="classPxQuat.html#a896c206afb4301300e5361a1cc2a3b24">getBasisVector1</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> y2 = y * 2.0f;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w2 = w * 2.0f;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxVec3.html">PxVec3</a>((-z * w2) + x * y2, (w * w2) - 1.0f + y * y2, (x * w2) + z * y2);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classPxQuat.html#a5bf50eefab13fb4b9a3967324d688636"> 277</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxVec3.html">PxVec3</a> <a class="code" href="classPxQuat.html#a5bf50eefab13fb4b9a3967324d688636">getBasisVector2</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> z2 = z * 2.0f;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w2 = w * 2.0f;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxVec3.html">PxVec3</a>((y * w2) + x * z2, (-x * w2) + y * z2, (w * w2) - 1.0f + z * z2);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classPxQuat.html#a2bafc323c17556f69e17ffccdd127dd1"> 287</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keyword">const</span> <a class="code" href="classPxVec3.html">PxVec3</a> <a class="code" href="classPxQuat.html#a2bafc323c17556f69e17ffccdd127dd1">rotate</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html">PxVec3</a>&amp; v)<span class="keyword"> const</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> vx = 2.0f * v.<a class="code" href="classPxVec3.html#a391194bca8291161c06254f4ac2b6ada">x</a>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> vy = 2.0f * v.<a class="code" href="classPxVec3.html#a29958700f50da2204edc519b47706a05">y</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> vz = 2.0f * v.<a class="code" href="classPxVec3.html#a50d67b162b99b904c3f362ad0415dbca">z</a>;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w2 = w * w - 0.5f;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dot2 = (x * vx + y * vy + z * vz);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxVec3.html">PxVec3</a>((vx * w2 + (y * vz - z * vy) * w + x * dot2), (vy * w2 + (z * vx - x * vz) * w + y * dot2),</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; (vz * w2 + (x * vy - y * vx) * w + z * dot2));</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</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="line" href="classPxQuat.html#a3f2432f5a2682489eb889ea178f364be"> 301</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keyword">const</span> <a class="code" href="classPxVec3.html">PxVec3</a> <a class="code" href="classPxQuat.html#a3f2432f5a2682489eb889ea178f364be">rotateInv</a>(<span class="keyword">const</span> <a class="code" href="classPxVec3.html">PxVec3</a>&amp; v)<span class="keyword"> const</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> vx = 2.0f * v.<a class="code" href="classPxVec3.html#a391194bca8291161c06254f4ac2b6ada">x</a>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> vy = 2.0f * v.<a class="code" href="classPxVec3.html#a29958700f50da2204edc519b47706a05">y</a>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> vz = 2.0f * v.<a class="code" href="classPxVec3.html#a50d67b162b99b904c3f362ad0415dbca">z</a>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w2 = w * w - 0.5f;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dot2 = (x * vx + y * vy + z * vz);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxVec3.html">PxVec3</a>((vx * w2 - (y * vz - z * vy) * w + x * dot2), (vy * w2 - (z * vx - x * vz) * w + y * dot2),</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; (vz * w2 - (x * vy - y * vx) * w + z * dot2));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classPxQuat.html#a4f3ea9ae559903398b3c973458a6aa11"> 315</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; <a class="code" href="classPxQuat.html#a4f3ea9ae559903398b3c973458a6aa11">operator=</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; p)</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; x = p.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; y = p.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; z = p.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; w = p.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</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;</div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="classPxQuat.html#a06c67f76789048d93e5119e2ef7b9451"> 324</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; <a class="code" href="classPxQuat.html#a06c67f76789048d93e5119e2ef7b9451">operator*=</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; q)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> tx = w * q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> + q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a> * x + y * q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> - q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> * z;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> ty = w * q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> + q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a> * y + z * q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> - q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> * x;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> tz = w * q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> + q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a> * z + x * q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> - q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> * y;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; w = w * q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a> - q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> * x - y * q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> - q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> * z;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; x = tx;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; y = ty;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; z = tz;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classPxQuat.html#a2ab2f7c410b2dfeedf984d9c29264c10"> 338</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; <a class="code" href="classPxQuat.html#a2ab2f7c410b2dfeedf984d9c29264c10">operator+=</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; q)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; x += q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; y += q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; z += q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; w += q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="classPxQuat.html#a00e4863332f965bb73a8849718062677"> 347</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; <a class="code" href="classPxQuat.html#a00e4863332f965bb73a8849718062677">operator-=</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; q)</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; x -= q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; y -= q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; z -= q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; w -= q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="classPxQuat.html#a293e12f666d5877f0de4b230f119a125"> 356</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; <a class="code" href="classPxQuat.html#a293e12f666d5877f0de4b230f119a125">operator*=</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> s)</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; x *= s;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; y *= s;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; z *= s;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; w *= s;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classPxQuat.html#a82d800b83a6071b68603a2ec0927f4d7"> 366</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a> <a class="code" href="classPxQuat.html#a82d800b83a6071b68603a2ec0927f4d7">operator*</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; q)<span class="keyword"> const</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxQuat.html">PxQuat</a>(w * q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> + q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a> * x + y * q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> - q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> * z, w * q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> + q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a> * y + z * q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> - q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> * x,</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; w * q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a> + q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a> * z + x * q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> - q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> * y, w * q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a> - x * q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a> - y * q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a> - z * q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a>);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classPxQuat.html#a57313933342c7d62c53ae48543d8c1e3"> 373</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a> <a class="code" href="classPxQuat.html#a57313933342c7d62c53ae48543d8c1e3">operator+</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; q)<span class="keyword"> const</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxQuat.html">PxQuat</a>(x + q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a>, y + q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a>, z + q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a>, w + q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classPxQuat.html#af0c6a6ccadc858a504d9efb9d516ddbc"> 379</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a> <a class="code" href="classPxQuat.html#af0c6a6ccadc858a504d9efb9d516ddbc">operator-</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxQuat.html">PxQuat</a>(-x, -y, -z, -w);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classPxQuat.html#a728c5347a5b1ac288bc35c412fe825c6"> 384</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a> <a class="code" href="classPxQuat.html#a728c5347a5b1ac288bc35c412fe825c6">operator-</a>(<span class="keyword">const</span> <a class="code" href="classPxQuat.html">PxQuat</a>&amp; q)<span class="keyword"> const</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxQuat.html">PxQuat</a>(x - q.<a class="code" href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">x</a>, y - q.<a class="code" href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">y</a>, z - q.<a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a>, w - q.<a class="code" href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">w</a>);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classPxQuat.html#a76203602f99b2d3cac069e2fe239daff"> 389</a></span>&#160; <a class="code" href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="classPxQuat.html">PxQuat</a> <a class="code" href="classPxQuat.html#a76203602f99b2d3cac069e2fe239daff">operator*</a>(<span class="keywordtype">float</span> r)<span class="keyword"> const</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classPxQuat.html">PxQuat</a>(x * r, y * r, z * r, w * r);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06"> 395</a></span>&#160; <span class="keywordtype">float</span> x, y, <a class="code" href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">z</a>, w;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;};</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor">#if !PX_DOXYGEN</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#endif // #ifndef PXFOUNDATION_PXQUAT_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> GuContactBuffer.h:37</div></div>
<div class="ttc" id="classPxQuat_html_a74371f064482934e99ed623e7279d927"><div class="ttname"><a href="classPxQuat.html#a74371f064482934e99ed623e7279d927">PxQuat::magnitudeSquared</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float magnitudeSquared() const</div><div class="ttdoc">This is the squared 4D vector length, should be 1 for unit quaternions. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:199</div></div>
<div class="ttc" id="classPxQuat_html_a9ae073fbc5614a4698087370ce591567"><div class="ttname"><a href="classPxQuat.html#a9ae073fbc5614a4698087370ce591567">PxQuat::isSane</a></div><div class="ttdeci">PX_CUDA_CALLABLE bool isSane() const</div><div class="ttdoc">returns true if finite and magnitude is reasonably close to unit to allow for some accumulation of er...</div><div class="ttdef"><b>Definition:</b> PxQuat.h:142</div></div>
<div class="ttc" id="classPxQuat_html_a955317d16f9eeb450c4d37d3d8a3f638"><div class="ttname"><a href="classPxQuat.html#a955317d16f9eeb450c4d37d3d8a3f638">PxQuat::getConjugate</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE PxQuat getConjugate() const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:247</div></div>
<div class="ttc" id="classPxQuat_html_a06c67f76789048d93e5119e2ef7b9451"><div class="ttname"><a href="classPxQuat.html#a06c67f76789048d93e5119e2ef7b9451">PxQuat::operator*=</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat &amp; operator*=(const PxQuat &amp;q)</div><div class="ttdef"><b>Definition:</b> PxQuat.h:324</div></div>
<div class="ttc" id="classPxQuat_html_a35d16e1cc27f7dbf1de1910bc846d5e4"><div class="ttname"><a href="classPxQuat.html#a35d16e1cc27f7dbf1de1910bc846d5e4">PxQuat::dot</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float dot(const PxQuat &amp;v) const</div><div class="ttdoc">returns the scalar product of this and other. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:207</div></div>
<div class="ttc" id="classPxQuat_html_ae3b0197aa605d5eca6c0d8af9ad4a473"><div class="ttname"><a href="classPxQuat.html#ae3b0197aa605d5eca6c0d8af9ad4a473">PxQuat::getAngle</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE float getAngle() const</div><div class="ttdoc">Gets the angle between this quat and the identity quaternion. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:181</div></div>
<div class="ttc" id="classPxQuat_html_a293e12f666d5877f0de4b230f119a125"><div class="ttname"><a href="classPxQuat.html#a293e12f666d5877f0de4b230f119a125">PxQuat::operator*=</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat &amp; operator*=(const float s)</div><div class="ttdef"><b>Definition:</b> PxQuat.h:356</div></div>
<div class="ttc" id="group__foundation_html_ga3b820cf45fee058a4083d955daa02154"><div class="ttname"><a href="group__foundation.html#ga3b820cf45fee058a4083d955daa02154">PxAtan2</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAtan2(float x, float y)</div><div class="ttdoc">Arctangent of (x/y) with correct sign. Returns angle between -PI and PI in radians Unit: Radians...</div><div class="ttdef"><b>Definition:</b> PxMath.h:276</div></div>
<div class="ttc" id="classPxQuat_html_a00e4863332f965bb73a8849718062677"><div class="ttname"><a href="classPxQuat.html#a00e4863332f965bb73a8849718062677">PxQuat::operator-=</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat &amp; operator-=(const PxQuat &amp;q)</div><div class="ttdef"><b>Definition:</b> PxQuat.h:347</div></div>
<div class="ttc" id="classPxQuat_html_aa471a180b8a6cd36272d6af18a0da8bc"><div class="ttname"><a href="classPxQuat.html#aa471a180b8a6cd36272d6af18a0da8bc">PxQuat::getBasisVector0</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 getBasisVector0() const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:261</div></div>
<div class="ttc" id="classPxQuat_html_a82d800b83a6071b68603a2ec0927f4d7"><div class="ttname"><a href="classPxQuat.html#a82d800b83a6071b68603a2ec0927f4d7">PxQuat::operator*</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE PxQuat operator*(const PxQuat &amp;q) const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:366</div></div>
<div class="ttc" id="group__foundation_html_gabcd49a429b8119de54375b3538ae8a8d"><div class="ttname"><a href="group__foundation.html#gabcd49a429b8119de54375b3538ae8a8d">PxPi</a></div><div class="ttdeci">static const float PxPi</div><div class="ttdef"><b>Definition:</b> PxMath.h:58</div></div>
<div class="ttc" id="classPxQuat_html_a57313933342c7d62c53ae48543d8c1e3"><div class="ttname"><a href="classPxQuat.html#a57313933342c7d62c53ae48543d8c1e3">PxQuat::operator+</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat operator+(const PxQuat &amp;q) const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:373</div></div>
<div class="ttc" id="classPxQuat_html_a604f79ac9821d365d601242331a80e11"><div class="ttname"><a href="classPxQuat.html#a604f79ac9821d365d601242331a80e11">PxQuat::magnitude</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE float magnitude() const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:218</div></div>
<div class="ttc" id="group__foundation_html_ga6a774eed3cad34b0f636332a3d28c6bb"><div class="ttname"><a href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a></div><div class="ttdeci">#define PX_FORCE_INLINE</div><div class="ttdef"><b>Definition:</b> PxPreprocessor.h:351</div></div>
<div class="ttc" id="classPxQuat_html"><div class="ttname"><a href="classPxQuat.html">PxQuat</a></div><div class="ttdoc">This is a quaternion class. For more information on quaternion mathematics consult a mathematics sour...</div><div class="ttdef"><b>Definition:</b> PxQuat.h:49</div></div>
<div class="ttc" id="group__foundation_html_ga98f571cc01fc3aa0e73e215c27ab8069"><div class="ttname"><a href="group__foundation.html#ga98f571cc01fc3aa0e73e215c27ab8069">PxSin</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float PxSin(float a)</div><div class="ttdoc">trigonometry all angles are in radians. </div><div class="ttdef"><b>Definition:</b> PxMath.h:170</div></div>
<div class="ttc" id="classPxQuat_html_a5bf50eefab13fb4b9a3967324d688636"><div class="ttname"><a href="classPxQuat.html#a5bf50eefab13fb4b9a3967324d688636">PxQuat::getBasisVector2</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 getBasisVector2() const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:277</div></div>
<div class="ttc" id="group__foundation_html_ga07ffc52cd4afa8e797a5fe6e1cb7e17a"><div class="ttname"><a href="group__foundation.html#ga07ffc52cd4afa8e797a5fe6e1cb7e17a">PX_SHARED_ASSERT</a></div><div class="ttdeci">#define PX_SHARED_ASSERT(exp)</div><div class="ttdef"><b>Definition:</b> PxSharedAssert.h:39</div></div>
<div class="ttc" id="classPxQuat_html_a6773bfd82393a8dde22ddef5f0900d06"><div class="ttname"><a href="classPxQuat.html#a6773bfd82393a8dde22ddef5f0900d06">PxQuat::z</a></div><div class="ttdeci">float z</div><div class="ttdef"><b>Definition:</b> PxQuat.h:395</div></div>
<div class="ttc" id="namespacephysx_1_1intrinsics_html_a28bd12477f3ca0b092c0b9b61bdfaf04"><div class="ttname"><a href="namespacephysx_1_1intrinsics.html#a28bd12477f3ca0b092c0b9b61bdfaf04">physx::intrinsics::isFinite</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE bool isFinite(float a)</div><div class="ttdoc">platform-specific finiteness check (not INF or NAN) </div><div class="ttdef"><b>Definition:</b> PxUnixIntrinsics.h:127</div></div>
<div class="ttc" id="classPxQuat_html_a896c206afb4301300e5361a1cc2a3b24"><div class="ttname"><a href="classPxQuat.html#a896c206afb4301300e5361a1cc2a3b24">PxQuat::getBasisVector1</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 getBasisVector1() const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:269</div></div>
<div class="ttc" id="group__foundation_html_ga11d5e4e77acad728886b380b5f3806f0"><div class="ttname"><a href="group__foundation.html#ga11d5e4e77acad728886b380b5f3806f0">PxSqrt</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float PxSqrt(float a)</div><div class="ttdoc">Square root. </div><div class="ttdef"><b>Definition:</b> PxMath.h:144</div></div>
<div class="ttc" id="classPxQuat_html_a77a42662202126a13f2f9fc12013fe70"><div class="ttname"><a href="classPxQuat.html#a77a42662202126a13f2f9fc12013fe70">PxQuat::normalize</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE float normalize()</div><div class="ttdoc">maps to the closest unit quaternion. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:227</div></div>
<div class="ttc" id="classPxVec3_html_a29958700f50da2204edc519b47706a05"><div class="ttname"><a href="classPxVec3.html#a29958700f50da2204edc519b47706a05">PxVec3::y</a></div><div class="ttdeci">float y</div><div class="ttdef"><b>Definition:</b> PxVec3.h:381</div></div>
<div class="ttc" id="classPxQuat_html_a84fb33d995ed4e6a26ac3f22523f0b54"><div class="ttname"><a href="classPxQuat.html#a84fb33d995ed4e6a26ac3f22523f0b54">PxQuat::w</a></div><div class="ttdeci">float w</div><div class="ttdef"><b>Definition:</b> PxQuat.h:395</div></div>
<div class="ttc" id="classPxQuat_html_ac7275be0f2d9162cff34b2d43f2ab179"><div class="ttname"><a href="classPxQuat.html#ac7275be0f2d9162cff34b2d43f2ab179">PxQuat::x</a></div><div class="ttdeci">float x</div><div class="ttdef"><b>Definition:</b> PxQuat.h:395</div></div>
<div class="ttc" id="classPxQuat_html_a76203602f99b2d3cac069e2fe239daff"><div class="ttname"><a href="classPxQuat.html#a76203602f99b2d3cac069e2fe239daff">PxQuat::operator*</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat operator*(float r) const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:389</div></div>
<div class="ttc" id="group__foundation_html_gacd945627f345ba03e83a30387ab99dea"><div class="ttname"><a href="group__foundation.html#gacd945627f345ba03e83a30387ab99dea">PxRecipSqrt</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float PxRecipSqrt(float a)</div><div class="ttdoc">reciprocal square root. </div><div class="ttdef"><b>Definition:</b> PxMath.h:156</div></div>
<div class="ttc" id="group__foundation_html_gacc501523ad3ab46c5a061c4442d10fcf"><div class="ttname"><a href="group__foundation.html#gacc501523ad3ab46c5a061c4442d10fcf">PxCos</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float PxCos(float a)</div><div class="ttdoc">Cosine of an angle (Unit: Radians) </div><div class="ttdef"><b>Definition:</b> PxMath.h:182</div></div>
<div class="ttc" id="classPxQuat_html_affc77743ed2c2cd3a90749de917187b0"><div class="ttname"><a href="classPxQuat.html#affc77743ed2c2cd3a90749de917187b0">PxQuat::PxQuat</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat(float nx, float ny, float nz, float nw)</div><div class="ttdoc">Constructor. Take note of the order of the elements! </div><div class="ttdef"><b>Definition:</b> PxQuat.h:75</div></div>
<div class="ttc" id="classPxQuat_html_ab364d7ce854065cd32b2dbbd8d30e279"><div class="ttname"><a href="classPxQuat.html#ab364d7ce854065cd32b2dbbd8d30e279">PxQuat::PxQuat</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat(float r)</div><div class="ttdoc">Constructor from a scalar: sets the real part w to the scalar value, and the imaginary parts (x...</div><div class="ttdef"><b>Definition:</b> PxQuat.h:68</div></div>
<div class="ttc" id="classPxQuat_html_a89bd359f188b7d164be0d5f1caf0745f"><div class="ttname"><a href="classPxQuat.html#a89bd359f188b7d164be0d5f1caf0745f">PxQuat::toRadiansAndUnitAxis</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE void toRadiansAndUnitAxis(float &amp;angle, PxVec3 &amp;axis) const</div><div class="ttdoc">converts this quaternion to angle-axis representation </div><div class="ttdef"><b>Definition:</b> PxQuat.h:159</div></div>
<div class="ttc" id="classPxVec3_html_a5f7512ff35bdf6f8f5cff4dbdd1bcdd0"><div class="ttname"><a href="classPxVec3.html#a5f7512ff35bdf6f8f5cff4dbdd1bcdd0">PxVec3::magnitude</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float magnitude() const</div><div class="ttdoc">returns the magnitude </div><div class="ttdef"><b>Definition:</b> PxVec3.h:183</div></div>
<div class="ttc" id="group__foundation_html_gaf72e1dce9e874da7b92cbc0ea5e4e30d"><div class="ttname"><a href="group__foundation.html#gaf72e1dce9e874da7b92cbc0ea5e4e30d">PxAbs</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAbs(float a)</div><div class="ttdoc">abs returns the absolute value of its argument. </div><div class="ttdef"><b>Definition:</b> PxMath.h:107</div></div>
<div class="ttc" id="classPxQuat_html_afac7f63b57840965157cf720bb6faddc"><div class="ttname"><a href="classPxQuat.html#afac7f63b57840965157cf720bb6faddc">PxQuat::PxQuat</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat()</div><div class="ttdoc">Default constructor, does not do any initialization. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:55</div></div>
<div class="ttc" id="classPxQuat_html_a35ac53818eeab314fc2888542b969544"><div class="ttname"><a href="classPxQuat.html#a35ac53818eeab314fc2888542b969544">PxQuat::isUnit</a></div><div class="ttdeci">PX_CUDA_CALLABLE bool isUnit() const</div><div class="ttdoc">returns true if finite and magnitude is close to unit </div><div class="ttdef"><b>Definition:</b> PxQuat.h:132</div></div>
<div class="ttc" id="classPxQuat_html_a8ba7d546fb84bd2628887c998bcadf9d"><div class="ttname"><a href="classPxQuat.html#a8ba7d546fb84bd2628887c998bcadf9d">PxQuat::getNormalized</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE PxQuat getNormalized() const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:212</div></div>
<div class="ttc" id="classPxQuat_html_a39039c4e100d0a1f928a8b9cd806df0c"><div class="ttname"><a href="classPxQuat.html#a39039c4e100d0a1f928a8b9cd806df0c">PxQuat::getAngle</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE float getAngle(const PxQuat &amp;q) const</div><div class="ttdoc">Gets the angle between this quat and the argument. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:191</div></div>
<div class="ttc" id="classPxQuat_html_a84fc51682333705ddf6b604727a84289"><div class="ttname"><a href="classPxQuat.html#a84fc51682333705ddf6b604727a84289">PxQuat::getImaginaryPart</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE PxVec3 getImaginaryPart() const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:255</div></div>
<div class="ttc" id="classPxMat33_html"><div class="ttname"><a href="classPxMat33.html">PxMat33</a></div><div class="ttdoc">3x3 matrix class </div><div class="ttdef"><b>Definition:</b> PxMat33.h:90</div></div>
<div class="ttc" id="group__foundation_html_ga9727af514012bc32f852e20278a7b04e"><div class="ttname"><a href="group__foundation.html#ga9727af514012bc32f852e20278a7b04e">PX_UNUSED</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE void PX_UNUSED(T const &amp;)</div><div class="ttdef"><b>Definition:</b> PxPreprocessor.h:466</div></div>
<div class="ttc" id="PxVec3_8h_html"><div class="ttname"><a href="PxVec3_8h.html">PxVec3.h</a></div></div>
<div class="ttc" id="group__foundation_html_gad6de0f4af98c5c5280b8fe695dc87318"><div class="ttname"><a href="group__foundation.html#gad6de0f4af98c5c5280b8fe695dc87318">PxIsFinite</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxIsFinite(float f)</div><div class="ttdoc">returns true if the passed number is a finite floating point number as opposed to INF...</div><div class="ttdef"><b>Definition:</b> PxMath.h:292</div></div>
<div class="ttc" id="classPxQuat_html_af03e9e7917ffe907effa610f7d314fa5"><div class="ttname"><a href="classPxQuat.html#af03e9e7917ffe907effa610f7d314fa5">PxQuat::operator==</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE bool operator==(const PxQuat &amp;q) const</div><div class="ttdoc">returns true if the two quaternions are exactly equal </div><div class="ttdef"><b>Definition:</b> PxQuat.h:151</div></div>
<div class="ttc" id="classPxQuat_html_ae12a02d9cb43b5e2c7dc083563cf1586"><div class="ttname"><a href="classPxQuat.html#ae12a02d9cb43b5e2c7dc083563cf1586">PxQuat::PxQuat</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat(const PxQuat &amp;v)</div><div class="ttdoc">Copy ctor. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:102</div></div>
<div class="ttc" id="classPxQuat_html_a0988cef7bc3fbdcd8cf37974c5edd611"><div class="ttname"><a href="classPxQuat.html#a0988cef7bc3fbdcd8cf37974c5edd611">PxQuat::y</a></div><div class="ttdeci">float y</div><div class="ttdef"><b>Definition:</b> PxQuat.h:395</div></div>
<div class="ttc" id="classPxQuat_html_a96cdb8dff7a2ed40a71912edf19dd812"><div class="ttname"><a href="classPxQuat.html#a96cdb8dff7a2ed40a71912edf19dd812">PxQuat::PxQuat</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE PxQuat(float angleRadians, const PxVec3 &amp;unitAxis)</div><div class="ttdoc">Creates from angle-axis representation. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:88</div></div>
<div class="ttc" id="classPxQuat_html_a2bafc323c17556f69e17ffccdd127dd1"><div class="ttname"><a href="classPxQuat.html#a2bafc323c17556f69e17ffccdd127dd1">PxQuat::rotate</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 rotate(const PxVec3 &amp;v) const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:287</div></div>
<div class="ttc" id="classPxQuat_html_a728c5347a5b1ac288bc35c412fe825c6"><div class="ttname"><a href="classPxQuat.html#a728c5347a5b1ac288bc35c412fe825c6">PxQuat::operator-</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat operator-(const PxQuat &amp;q) const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:384</div></div>
<div class="ttc" id="classPxQuat_html_a2ab2f7c410b2dfeedf984d9c29264c10"><div class="ttname"><a href="classPxQuat.html#a2ab2f7c410b2dfeedf984d9c29264c10">PxQuat::operator+=</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat &amp; operator+=(const PxQuat &amp;q)</div><div class="ttdef"><b>Definition:</b> PxQuat.h:338</div></div>
<div class="ttc" id="group__foundation_html_ga70160ca5bbafef277790b3e0f12baf38"><div class="ttname"><a href="group__foundation.html#ga70160ca5bbafef277790b3e0f12baf38">PxIDENTITY</a></div><div class="ttdeci">PxIDENTITY</div><div class="ttdef"><b>Definition:</b> Px.h:82</div></div>
<div class="ttc" id="classPxQuat_html_a13d4cf835204d37e90fecef45659c790"><div class="ttname"><a href="classPxQuat.html#a13d4cf835204d37e90fecef45659c790">PxQuat::PxQuat</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_INLINE PxQuat(PxIDENTITY r)</div><div class="ttdoc">identity constructor </div><div class="ttdef"><b>Definition:</b> PxQuat.h:60</div></div>
<div class="ttc" id="classPxQuat_html_a1c665c57310b414f973f7d90d6b89c2a"><div class="ttname"><a href="classPxQuat.html#a1c665c57310b414f973f7d90d6b89c2a">PxQuat::isFinite</a></div><div class="ttdeci">PX_CUDA_CALLABLE bool isFinite() const</div><div class="ttdoc">returns true if all elements are finite (not NAN or INF, etc.) </div><div class="ttdef"><b>Definition:</b> PxQuat.h:124</div></div>
<div class="ttc" id="classPxQuat_html_a50b0642427a4315f14657d15094d35b2"><div class="ttname"><a href="classPxQuat.html#a50b0642427a4315f14657d15094d35b2">PxQuat::isIdentity</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE bool isIdentity() const</div><div class="ttdoc">returns true if quat is identity </div><div class="ttdef"><b>Definition:</b> PxQuat.h:116</div></div>
<div class="ttc" id="classPxQuat_html_a3f2432f5a2682489eb889ea178f364be"><div class="ttname"><a href="classPxQuat.html#a3f2432f5a2682489eb889ea178f364be">PxQuat::rotateInv</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 rotateInv(const PxVec3 &amp;v) const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:301</div></div>
<div class="ttc" id="group__foundation_html_ga0953977efc7599071aefadc35e842f97"><div class="ttname"><a href="group__foundation.html#ga0953977efc7599071aefadc35e842f97">PxAcos</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAcos(float f)</div><div class="ttdoc">Arccosine. Returns angle between 0 and PI in radians Unit: Radians. </div><div class="ttdef"><b>Definition:</b> PxMath.h:236</div></div>
<div class="ttc" id="classPxVec3_html_a50d67b162b99b904c3f362ad0415dbca"><div class="ttname"><a href="classPxVec3.html#a50d67b162b99b904c3f362ad0415dbca">PxVec3::z</a></div><div class="ttdeci">float z</div><div class="ttdef"><b>Definition:</b> PxVec3.h:381</div></div>
<div class="ttc" id="classPxQuat_html_a4f3ea9ae559903398b3c973458a6aa11"><div class="ttname"><a href="classPxQuat.html#a4f3ea9ae559903398b3c973458a6aa11">PxQuat::operator=</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat &amp; operator=(const PxQuat &amp;p)</div><div class="ttdoc">Assignment operator. </div><div class="ttdef"><b>Definition:</b> PxQuat.h:315</div></div>
<div class="ttc" id="group__foundation_html_gacb03347b642a2a5bdea1f9b305a6fbec"><div class="ttname"><a href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a></div><div class="ttdeci">#define PX_INLINE</div><div class="ttdef"><b>Definition:</b> PxPreprocessor.h:336</div></div>
<div class="ttc" id="classPxQuat_html_af0c6a6ccadc858a504d9efb9d516ddbc"><div class="ttname"><a href="classPxQuat.html#af0c6a6ccadc858a504d9efb9d516ddbc">PxQuat::operator-</a></div><div class="ttdeci">PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat operator-() const</div><div class="ttdef"><b>Definition:</b> PxQuat.h:379</div></div>
<div class="ttc" id="group__foundation_html_ga6e444d58dbf1459261fadc9b79594f63"><div class="ttname"><a href="group__foundation.html#ga6e444d58dbf1459261fadc9b79594f63">PX_CUDA_CALLABLE</a></div><div class="ttdeci">#define PX_CUDA_CALLABLE</div><div class="ttdef"><b>Definition:</b> PxPreprocessor.h:460</div></div>
<div class="ttc" id="classPxVec3_html"><div class="ttname"><a href="classPxVec3.html">PxVec3</a></div><div class="ttdoc">3 Element vector class. </div><div class="ttdef"><b>Definition:</b> PxVec3.h:49</div></div>
<div class="ttc" id="classPxVec3_html_a391194bca8291161c06254f4ac2b6ada"><div class="ttname"><a href="classPxVec3.html#a391194bca8291161c06254f4ac2b6ada">PxVec3::x</a></div><div class="ttdeci">float x</div><div class="ttdef"><b>Definition:</b> PxVec3.h:381</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_266c30cc99b40eba7d94345de82f8db9.html">packman-repo</a></li><li class="navelem"><a class="el" href="dir_44fe44e2771711da9c667697b685dcda.html">PxShared-public</a></li><li class="navelem"><a class="el" href="dir_e1dbf85b29c2f923267acb78e2c299dd.html">1.1.trunk.29467035</a></li><li class="navelem"><a class="el" href="dir_67f783feb5a64e036eee501a17b4317a.html">include</a></li><li class="navelem"><a class="el" href="dir_d5f223569182be7fb9b876919d20e64f.html">foundation</a></li><li class="navelem"><a class="el" href="PxQuat_8h.html">PxQuat.h</a></li>
<li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
</ul>
</div>
</body>
</html>