class_quat.html 108 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.12.0"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Jolt Physics: Quat Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <script type="text/javascript" src="clipboard.js"></script>
  13. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript" src="resize.js"></script>
  17. <script type="text/javascript" src="cookie.js"></script>
  18. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  19. <script type="text/javascript" src="search/searchdata.js"></script>
  20. <script type="text/javascript" src="search/search.js"></script>
  21. <script type="text/x-mathjax-config">
  22. MathJax.Hub.Config({
  23. extensions: ["tex2jax.js"],
  24. jax: ["input/TeX","output/HTML-CSS"],
  25. });
  26. </script>
  27. <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
  28. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  29. </head>
  30. <body>
  31. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  32. <div id="titlearea">
  33. <table cellspacing="0" cellpadding="0">
  34. <tbody>
  35. <tr id="projectrow">
  36. <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
  37. <td id="projectalign">
  38. <div id="projectname">Jolt Physics
  39. </div>
  40. <div id="projectbrief">A multi core friendly Game Physics Engine</div>
  41. </td>
  42. </tr>
  43. </tbody>
  44. </table>
  45. </div>
  46. <!-- end header part -->
  47. <!-- Generated by Doxygen 1.12.0 -->
  48. <script type="text/javascript">
  49. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  50. var searchBox = new SearchBox("searchBox", "search/",'.html');
  51. /* @license-end */
  52. </script>
  53. <script type="text/javascript">
  54. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  55. $(function() { codefold.init(0); });
  56. /* @license-end */
  57. </script>
  58. <script type="text/javascript" src="menudata.js"></script>
  59. <script type="text/javascript" src="menu.js"></script>
  60. <script type="text/javascript">
  61. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  62. $(function() {
  63. initMenu('',true,false,'search.php','Search',true);
  64. $(function() { init_search(); });
  65. });
  66. /* @license-end */
  67. </script>
  68. <div id="main-nav"></div>
  69. </div><!-- top -->
  70. <div id="side-nav" class="ui-resizable side-nav-resizable">
  71. <div id="nav-tree">
  72. <div id="nav-tree-contents">
  73. <div id="nav-sync" class="sync"></div>
  74. </div>
  75. </div>
  76. <div id="splitbar" style="-moz-user-select:none;"
  77. class="ui-resizable-handle">
  78. </div>
  79. </div>
  80. <script type="text/javascript">
  81. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  82. $(function(){initNavTree('class_quat.html',''); initResizable(true); });
  83. /* @license-end */
  84. </script>
  85. <div id="doc-content">
  86. <!-- window showing the filter options -->
  87. <div id="MSearchSelectWindow"
  88. onmouseover="return searchBox.OnSearchSelectShow()"
  89. onmouseout="return searchBox.OnSearchSelectHide()"
  90. onkeydown="return searchBox.OnSearchSelectKey(event)">
  91. </div>
  92. <!-- iframe showing the search results (closed by default) -->
  93. <div id="MSearchResultsWindow">
  94. <div id="MSearchResults">
  95. <div class="SRPage">
  96. <div id="SRIndex">
  97. <div id="SRResults"></div>
  98. <div class="SRStatus" id="Loading">Loading...</div>
  99. <div class="SRStatus" id="Searching">Searching...</div>
  100. <div class="SRStatus" id="NoMatches">No Matches</div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="header">
  106. <div class="summary">
  107. <a href="#pub-methods">Public Member Functions</a> &#124;
  108. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  109. <a href="#pub-attribs">Public Attributes</a> &#124;
  110. <a href="#friends">Friends</a> &#124;
  111. <a href="class_quat-members.html">List of all members</a> </div>
  112. <div class="headertitle"><div class="title">Quat Class Reference</div></div>
  113. </div><!--header-->
  114. <div class="contents">
  115. <p><code>#include &lt;<a class="el" href="_quat_8h_source.html">Quat.h</a>&gt;</code></p>
  116. <table class="memberdecls">
  117. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  118. Public Member Functions</h2></td></tr>
  119. <tr class="memitem:a618a8eb64122263b8c64109f03ac47b5" id="r_a618a8eb64122263b8c64109f03ac47b5"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a618a8eb64122263b8c64109f03ac47b5">GetAxisAngle</a> (<a class="el" href="class_vec3.html">Vec3</a> &amp;outAxis, float &amp;outAngle) const</td></tr>
  120. <tr class="memdesc:a618a8eb64122263b8c64109f03ac47b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get axis and angle that represents this quaternion, outAngle will always be in the range \([0, \pi]\). <br /></td></tr>
  121. <tr class="separator:a618a8eb64122263b8c64109f03ac47b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:ae0e71415ee746c38c27b04e7dbc9b4ed" id="r_ae0e71415ee746c38c27b04e7dbc9b4ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae0e71415ee746c38c27b04e7dbc9b4ed">GetEulerAngles</a> () const</td></tr>
  123. <tr class="memdesc:ae0e71415ee746c38c27b04e7dbc9b4ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Conversion to Euler angles. Rotation order is X then Y then Z (RotZ * RotY * RotX). Angles in radians. <br /></td></tr>
  124. <tr class="separator:ae0e71415ee746c38c27b04e7dbc9b4ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:a646b3edebee182d86159eed987ba91a0" id="r_a646b3edebee182d86159eed987ba91a0"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a646b3edebee182d86159eed987ba91a0">operator*</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inValue) const</td></tr>
  126. <tr class="memdesc:a646b3edebee182d86159eed987ba91a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a vector by this quaternion. <br /></td></tr>
  127. <tr class="separator:a646b3edebee182d86159eed987ba91a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:a108350bfce9aa53b1af87fbe2698f6f4" id="r_a108350bfce9aa53b1af87fbe2698f6f4"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a108350bfce9aa53b1af87fbe2698f6f4">InverseRotate</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inValue) const</td></tr>
  129. <tr class="memdesc:a108350bfce9aa53b1af87fbe2698f6f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a vector by the inverse of this quaternion. <br /></td></tr>
  130. <tr class="separator:a108350bfce9aa53b1af87fbe2698f6f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:ad591c3ca827733b3be275ffaf808e838" id="r_ad591c3ca827733b3be275ffaf808e838"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad591c3ca827733b3be275ffaf808e838">RotateAxisX</a> () const</td></tr>
  132. <tr class="memdesc:ad591c3ca827733b3be275ffaf808e838"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a the vector (1, 0, 0) with this quaternion. <br /></td></tr>
  133. <tr class="separator:ad591c3ca827733b3be275ffaf808e838"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:adb1d1a70ed64c0a6fadc849126306706" id="r_adb1d1a70ed64c0a6fadc849126306706"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adb1d1a70ed64c0a6fadc849126306706">RotateAxisY</a> () const</td></tr>
  135. <tr class="memdesc:adb1d1a70ed64c0a6fadc849126306706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a the vector (0, 1, 0) with this quaternion. <br /></td></tr>
  136. <tr class="separator:adb1d1a70ed64c0a6fadc849126306706"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="memitem:ab226b2147a748e53008556bcf1a3cd76" id="r_ab226b2147a748e53008556bcf1a3cd76"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab226b2147a748e53008556bcf1a3cd76">RotateAxisZ</a> () const</td></tr>
  138. <tr class="memdesc:ab226b2147a748e53008556bcf1a3cd76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a the vector (0, 0, 1) with this quaternion. <br /></td></tr>
  139. <tr class="separator:ab226b2147a748e53008556bcf1a3cd76"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:aa95ff0fd4a249749b023c32a5be3a44f" id="r_aa95ff0fd4a249749b023c32a5be3a44f"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa95ff0fd4a249749b023c32a5be3a44f">Dot</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS) const</td></tr>
  141. <tr class="memdesc:aa95ff0fd4a249749b023c32a5be3a44f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dot product. <br /></td></tr>
  142. <tr class="separator:aa95ff0fd4a249749b023c32a5be3a44f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  143. <tr class="memitem:ac69dfd8cdf79a19b8c3f385125ff5ddc" id="r_ac69dfd8cdf79a19b8c3f385125ff5ddc"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac69dfd8cdf79a19b8c3f385125ff5ddc">Conjugated</a> () const</td></tr>
  144. <tr class="memdesc:ac69dfd8cdf79a19b8c3f385125ff5ddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The conjugate [w, -x, -y, -z] is the same as the inverse for unit quaternions. <br /></td></tr>
  145. <tr class="separator:ac69dfd8cdf79a19b8c3f385125ff5ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. <tr class="memitem:ac04a00570e1a5e96d49398d40d493bf3" id="r_ac04a00570e1a5e96d49398d40d493bf3"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac04a00570e1a5e96d49398d40d493bf3">Inversed</a> () const</td></tr>
  147. <tr class="memdesc:ac04a00570e1a5e96d49398d40d493bf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get inverse quaternion. <br /></td></tr>
  148. <tr class="separator:ac04a00570e1a5e96d49398d40d493bf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  149. <tr class="memitem:a9f563ca8c8a8b71a0aa340d12080c2ef" id="r_a9f563ca8c8a8b71a0aa340d12080c2ef"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9f563ca8c8a8b71a0aa340d12080c2ef">EnsureWPositive</a> () const</td></tr>
  150. <tr class="memdesc:a9f563ca8c8a8b71a0aa340d12080c2ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that the W component is positive by negating the entire quaternion if it is not. This is useful when you want to store a quaternion as a 3 vector by discarding W and reconstructing it as sqrt(1 - x^2 - y^2 - z^2). <br /></td></tr>
  151. <tr class="separator:a9f563ca8c8a8b71a0aa340d12080c2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:abba5ae611cba89b67e967945ffe32c8f" id="r_abba5ae611cba89b67e967945ffe32c8f"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abba5ae611cba89b67e967945ffe32c8f">GetPerpendicular</a> () const</td></tr>
  153. <tr class="memdesc:abba5ae611cba89b67e967945ffe32c8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a quaternion that is perpendicular to this quaternion. <br /></td></tr>
  154. <tr class="separator:abba5ae611cba89b67e967945ffe32c8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  155. <tr class="memitem:ac72ff53fa4780399aa0755e2ca31b450" id="r_ac72ff53fa4780399aa0755e2ca31b450"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac72ff53fa4780399aa0755e2ca31b450">GetRotationAngle</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inAxis) const</td></tr>
  156. <tr class="memdesc:ac72ff53fa4780399aa0755e2ca31b450"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get rotation angle around inAxis (uses Swing Twist Decomposition to get the twist quaternion and uses q(axis, angle) = [cos(angle / 2), axis * sin(angle / 2)]) <br /></td></tr>
  157. <tr class="separator:ac72ff53fa4780399aa0755e2ca31b450"><td class="memSeparator" colspan="2">&#160;</td></tr>
  158. <tr class="memitem:aa30f29eff5df0de717de979bf3aae295" id="r_aa30f29eff5df0de717de979bf3aae295"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa30f29eff5df0de717de979bf3aae295">GetTwist</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inAxis) const</td></tr>
  159. <tr class="separator:aa30f29eff5df0de717de979bf3aae295"><td class="memSeparator" colspan="2">&#160;</td></tr>
  160. <tr class="memitem:a7bb8b016622e5ad8f361c52f9037f1aa" id="r_a7bb8b016622e5ad8f361c52f9037f1aa"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7bb8b016622e5ad8f361c52f9037f1aa">GetSwingTwist</a> (<a class="el" href="class_quat.html">Quat</a> &amp;outSwing, <a class="el" href="class_quat.html">Quat</a> &amp;outTwist) const</td></tr>
  161. <tr class="separator:a7bb8b016622e5ad8f361c52f9037f1aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:a54dc8061046dd6ba3fb3a1965cf7319c" id="r_a54dc8061046dd6ba3fb3a1965cf7319c"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a54dc8061046dd6ba3fb3a1965cf7319c">LERP</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inDestination, float inFraction) const</td></tr>
  163. <tr class="separator:a54dc8061046dd6ba3fb3a1965cf7319c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. <tr class="memitem:afc3276d69ac8713afddf3cf970c27371" id="r_afc3276d69ac8713afddf3cf970c27371"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afc3276d69ac8713afddf3cf970c27371">SLERP</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inDestination, float inFraction) const</td></tr>
  165. <tr class="separator:afc3276d69ac8713afddf3cf970c27371"><td class="memSeparator" colspan="2">&#160;</td></tr>
  166. <tr class="memitem:ae95e7b6c9f4167b91b674a696c681c6e" id="r_ae95e7b6c9f4167b91b674a696c681c6e"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae95e7b6c9f4167b91b674a696c681c6e">StoreFloat3</a> (<a class="el" href="class_float3.html">Float3</a> *outV) const</td></tr>
  167. <tr class="memdesc:ae95e7b6c9f4167b91b674a696c681c6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store as 3 floats to memory (X, Y and Z component). Ensures that W is positive before storing. <br /></td></tr>
  168. <tr class="separator:ae95e7b6c9f4167b91b674a696c681c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. <tr class="memitem:a7c1fba108633b262e9011b39a92b490b" id="r_a7c1fba108633b262e9011b39a92b490b"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7c1fba108633b262e9011b39a92b490b">StoreFloat4</a> (<a class="el" href="class_float4.html">Float4</a> *outV) const</td></tr>
  170. <tr class="memdesc:a7c1fba108633b262e9011b39a92b490b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store as 4 floats. <br /></td></tr>
  171. <tr class="separator:a7c1fba108633b262e9011b39a92b490b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. <tr class="memitem:a5e844d3510c68831f222de05d92669b2" id="r_a5e844d3510c68831f222de05d92669b2"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5e844d3510c68831f222de05d92669b2">CompressUnitQuat</a> () const</td></tr>
  173. <tr class="memdesc:a5e844d3510c68831f222de05d92669b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a unit quaternion to a 32 bit value, precision is around 0.5 degree. <br /></td></tr>
  174. <tr class="separator:a5e844d3510c68831f222de05d92669b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  175. <tr><td colspan="2"><div class="groupHeader">Constructors</div></td></tr>
  176. <tr class="memitem:aab09b7638f6936a9ad7a1e4ffce606e8" id="r_aab09b7638f6936a9ad7a1e4ffce606e8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aab09b7638f6936a9ad7a1e4ffce606e8">Quat</a> ()=default</td></tr>
  177. <tr class="memdesc:aab09b7638f6936a9ad7a1e4ffce606e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Intentionally not initialized for performance reasons. <br /></td></tr>
  178. <tr class="separator:aab09b7638f6936a9ad7a1e4ffce606e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. <tr class="memitem:a0657861b58c5638d657b9232d0872789" id="r_a0657861b58c5638d657b9232d0872789"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0657861b58c5638d657b9232d0872789">Quat</a> (const <a class="el" href="class_quat.html">Quat</a> &amp;inRHS)=default</td></tr>
  180. <tr class="separator:a0657861b58c5638d657b9232d0872789"><td class="memSeparator" colspan="2">&#160;</td></tr>
  181. <tr class="memitem:a4a0da4e3fde81586973da99956f7d51c" id="r_a4a0da4e3fde81586973da99956f7d51c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_quat.html">Quat</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4a0da4e3fde81586973da99956f7d51c">operator=</a> (const <a class="el" href="class_quat.html">Quat</a> &amp;inRHS)=default</td></tr>
  182. <tr class="separator:a4a0da4e3fde81586973da99956f7d51c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  183. <tr class="memitem:add07307f26b40e8ad4dc1bad89e837b9" id="r_add07307f26b40e8ad4dc1bad89e837b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#add07307f26b40e8ad4dc1bad89e837b9">Quat</a> (float inX, float inY, float inZ, float inW)</td></tr>
  184. <tr class="separator:add07307f26b40e8ad4dc1bad89e837b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  185. <tr class="memitem:a9b178bf2445e7c1e97e2fdf02c919554" id="r_a9b178bf2445e7c1e97e2fdf02c919554"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9b178bf2445e7c1e97e2fdf02c919554">Quat</a> (const <a class="el" href="class_float4.html">Float4</a> &amp;inV)</td></tr>
  186. <tr class="separator:a9b178bf2445e7c1e97e2fdf02c919554"><td class="memSeparator" colspan="2">&#160;</td></tr>
  187. <tr class="memitem:aa27e46b0f37c06e419e552ec8473abd1" id="r_aa27e46b0f37c06e419e552ec8473abd1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa27e46b0f37c06e419e552ec8473abd1">Quat</a> (<a class="el" href="_math_types_8h.html#a2f6a6bbc069039fb4bc5813de8e77aa1">Vec4Arg</a> inV)</td></tr>
  188. <tr class="separator:aa27e46b0f37c06e419e552ec8473abd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  189. <tr><td colspan="2"><div class="groupHeader">Tests</div></td></tr>
  190. <tr class="memitem:a55ec695a492daa028921cca4740db11b" id="r_a55ec695a492daa028921cca4740db11b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a55ec695a492daa028921cca4740db11b">operator==</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS) const</td></tr>
  191. <tr class="memdesc:a55ec695a492daa028921cca4740db11b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if two quaternions are exactly equal. <br /></td></tr>
  192. <tr class="separator:a55ec695a492daa028921cca4740db11b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  193. <tr class="memitem:a23c4e00d9d6905c284c728cf3e184934" id="r_a23c4e00d9d6905c284c728cf3e184934"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a23c4e00d9d6905c284c728cf3e184934">operator!=</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS) const</td></tr>
  194. <tr class="memdesc:a23c4e00d9d6905c284c728cf3e184934"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if two quaternions are different. <br /></td></tr>
  195. <tr class="separator:a23c4e00d9d6905c284c728cf3e184934"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:a9c0afa78ae80b13a6c8adf1240a7c95e" id="r_a9c0afa78ae80b13a6c8adf1240a7c95e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9c0afa78ae80b13a6c8adf1240a7c95e">IsClose</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS, float inMaxDistSq=1.0e-12f) const</td></tr>
  197. <tr class="memdesc:a9c0afa78ae80b13a6c8adf1240a7c95e"><td class="mdescLeft">&#160;</td><td class="mdescRight">If this quaternion is close to inRHS. Note that q and -q represent the same rotation, this is not checked here. <br /></td></tr>
  198. <tr class="separator:a9c0afa78ae80b13a6c8adf1240a7c95e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  199. <tr class="memitem:ae628a9685f0be008f18752ea9302b4e4" id="r_ae628a9685f0be008f18752ea9302b4e4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae628a9685f0be008f18752ea9302b4e4">IsNormalized</a> (float inTolerance=1.0e-5f) const</td></tr>
  200. <tr class="memdesc:ae628a9685f0be008f18752ea9302b4e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the length of this quaternion is 1 +/- inTolerance. <br /></td></tr>
  201. <tr class="separator:ae628a9685f0be008f18752ea9302b4e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  202. <tr class="memitem:a62b95b1c1d36ecbd6f9732ca4789a7bf" id="r_a62b95b1c1d36ecbd6f9732ca4789a7bf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a62b95b1c1d36ecbd6f9732ca4789a7bf">IsNaN</a> () const</td></tr>
  203. <tr class="memdesc:a62b95b1c1d36ecbd6f9732ca4789a7bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">If any component of this quaternion is a NaN (not a number) <br /></td></tr>
  204. <tr class="separator:a62b95b1c1d36ecbd6f9732ca4789a7bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  205. <tr><td colspan="2"><div class="groupHeader">Get components</div></td></tr>
  206. <tr class="memitem:a3fb43a7bca4b20ce7573030fd826aa96" id="r_a3fb43a7bca4b20ce7573030fd826aa96"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3fb43a7bca4b20ce7573030fd826aa96">GetX</a> () const</td></tr>
  207. <tr class="memdesc:a3fb43a7bca4b20ce7573030fd826aa96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get X component (imaginary part i) <br /></td></tr>
  208. <tr class="separator:a3fb43a7bca4b20ce7573030fd826aa96"><td class="memSeparator" colspan="2">&#160;</td></tr>
  209. <tr class="memitem:a21f44684684b475d9f5d02ed9c580def" id="r_a21f44684684b475d9f5d02ed9c580def"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a21f44684684b475d9f5d02ed9c580def">GetY</a> () const</td></tr>
  210. <tr class="memdesc:a21f44684684b475d9f5d02ed9c580def"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Y component (imaginary part j) <br /></td></tr>
  211. <tr class="separator:a21f44684684b475d9f5d02ed9c580def"><td class="memSeparator" colspan="2">&#160;</td></tr>
  212. <tr class="memitem:a38dfc20f7628eee4492125a41ad91764" id="r_a38dfc20f7628eee4492125a41ad91764"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a38dfc20f7628eee4492125a41ad91764">GetZ</a> () const</td></tr>
  213. <tr class="memdesc:a38dfc20f7628eee4492125a41ad91764"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Z component (imaginary part k) <br /></td></tr>
  214. <tr class="separator:a38dfc20f7628eee4492125a41ad91764"><td class="memSeparator" colspan="2">&#160;</td></tr>
  215. <tr class="memitem:a13d0159a54a94e6a90dc5952f454b09e" id="r_a13d0159a54a94e6a90dc5952f454b09e"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a13d0159a54a94e6a90dc5952f454b09e">GetW</a> () const</td></tr>
  216. <tr class="memdesc:a13d0159a54a94e6a90dc5952f454b09e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get W component (real part) <br /></td></tr>
  217. <tr class="separator:a13d0159a54a94e6a90dc5952f454b09e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  218. <tr class="memitem:afa7fe10bf8a457fb2d524791ccd79ec4" id="r_afa7fe10bf8a457fb2d524791ccd79ec4"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afa7fe10bf8a457fb2d524791ccd79ec4">GetXYZ</a> () const</td></tr>
  219. <tr class="memdesc:afa7fe10bf8a457fb2d524791ccd79ec4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the imaginary part of the quaternion. <br /></td></tr>
  220. <tr class="separator:afa7fe10bf8a457fb2d524791ccd79ec4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  221. <tr class="memitem:a7800c0c4cb017273d86793d8a09bf136" id="r_a7800c0c4cb017273d86793d8a09bf136"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_vec4.html">Vec4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7800c0c4cb017273d86793d8a09bf136">GetXYZW</a> () const</td></tr>
  222. <tr class="memdesc:a7800c0c4cb017273d86793d8a09bf136"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the quaternion as a <a class="el" href="class_vec4.html">Vec4</a>. <br /></td></tr>
  223. <tr class="separator:a7800c0c4cb017273d86793d8a09bf136"><td class="memSeparator" colspan="2">&#160;</td></tr>
  224. <tr class="memitem:ae53457812ce9ffa5fb7b6b8a3c5c97e5" id="r_ae53457812ce9ffa5fb7b6b8a3c5c97e5"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae53457812ce9ffa5fb7b6b8a3c5c97e5">SetX</a> (float inX)</td></tr>
  225. <tr class="memdesc:ae53457812ce9ffa5fb7b6b8a3c5c97e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set individual components. <br /></td></tr>
  226. <tr class="separator:ae53457812ce9ffa5fb7b6b8a3c5c97e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  227. <tr class="memitem:a4a4db6760750a34c25199455c07b6bb9" id="r_a4a4db6760750a34c25199455c07b6bb9"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4a4db6760750a34c25199455c07b6bb9">SetY</a> (float inY)</td></tr>
  228. <tr class="separator:a4a4db6760750a34c25199455c07b6bb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  229. <tr class="memitem:a3f494dde1e2e0bc50dbc2abd13210b23" id="r_a3f494dde1e2e0bc50dbc2abd13210b23"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3f494dde1e2e0bc50dbc2abd13210b23">SetZ</a> (float inZ)</td></tr>
  230. <tr class="separator:a3f494dde1e2e0bc50dbc2abd13210b23"><td class="memSeparator" colspan="2">&#160;</td></tr>
  231. <tr class="memitem:ae32d59954e6b05258af7123c00141654" id="r_ae32d59954e6b05258af7123c00141654"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae32d59954e6b05258af7123c00141654">SetW</a> (float inW)</td></tr>
  232. <tr class="separator:ae32d59954e6b05258af7123c00141654"><td class="memSeparator" colspan="2">&#160;</td></tr>
  233. <tr class="memitem:a9fb5be70301ba85a3292119d71a5e9c4" id="r_a9fb5be70301ba85a3292119d71a5e9c4"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9fb5be70301ba85a3292119d71a5e9c4">Set</a> (float inX, float inY, float inZ, float inW)</td></tr>
  234. <tr class="memdesc:a9fb5be70301ba85a3292119d71a5e9c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all components. <br /></td></tr>
  235. <tr class="separator:a9fb5be70301ba85a3292119d71a5e9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  236. <tr><td colspan="2"><div class="groupHeader">Length / normalization operations</div></td></tr>
  237. <tr class="memitem:a60f30c650e027a892e699c156c7eca67" id="r_a60f30c650e027a892e699c156c7eca67"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a60f30c650e027a892e699c156c7eca67">LengthSq</a> () const</td></tr>
  238. <tr class="separator:a60f30c650e027a892e699c156c7eca67"><td class="memSeparator" colspan="2">&#160;</td></tr>
  239. <tr class="memitem:ab93ff288ad62172d343e11ce4fbf07d0" id="r_ab93ff288ad62172d343e11ce4fbf07d0"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab93ff288ad62172d343e11ce4fbf07d0">Length</a> () const</td></tr>
  240. <tr class="separator:ab93ff288ad62172d343e11ce4fbf07d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  241. <tr class="memitem:a9d4b1ee8c4685a4589766e1c8cacc268" id="r_a9d4b1ee8c4685a4589766e1c8cacc268"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9d4b1ee8c4685a4589766e1c8cacc268">Normalized</a> () const</td></tr>
  242. <tr class="memdesc:a9d4b1ee8c4685a4589766e1c8cacc268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalize the quaternion (make it length 1) <br /></td></tr>
  243. <tr class="separator:a9d4b1ee8c4685a4589766e1c8cacc268"><td class="memSeparator" colspan="2">&#160;</td></tr>
  244. </table><table class="memberdecls">
  245. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  246. Static Public Member Functions</h2></td></tr>
  247. <tr class="memitem:a3ac594bf7be610138e90735ae99ff8e9" id="r_a3ac594bf7be610138e90735ae99ff8e9"><td class="memItemLeft" align="right" valign="top">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3ac594bf7be610138e90735ae99ff8e9">sRotation</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inAxis, float inAngle)</td></tr>
  248. <tr class="memdesc:a3ac594bf7be610138e90735ae99ff8e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotation from axis and angle. <br /></td></tr>
  249. <tr class="separator:a3ac594bf7be610138e90735ae99ff8e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  250. <tr class="memitem:a7e32ae62e2b33bf30ba3c40f9e66bfed" id="r_a7e32ae62e2b33bf30ba3c40f9e66bfed"><td class="memItemLeft" align="right" valign="top">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7e32ae62e2b33bf30ba3c40f9e66bfed">sFromTo</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inFrom, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inTo)</td></tr>
  251. <tr class="separator:a7e32ae62e2b33bf30ba3c40f9e66bfed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  252. <tr class="memitem:a0686810998da92e9ab857b314b282d91" id="r_a0686810998da92e9ab857b314b282d91"><td class="memTemplParams" colspan="2">template&lt;class Random &gt; </td></tr>
  253. <tr class="memitem:a0686810998da92e9ab857b314b282d91"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a0686810998da92e9ab857b314b282d91">sRandom</a> (Random &amp;inRandom)</td></tr>
  254. <tr class="memdesc:a0686810998da92e9ab857b314b282d91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Random unit quaternion. <br /></td></tr>
  255. <tr class="separator:a0686810998da92e9ab857b314b282d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
  256. <tr class="memitem:a1ef2428c09a41f3d0549d216ecfca710" id="r_a1ef2428c09a41f3d0549d216ecfca710"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1ef2428c09a41f3d0549d216ecfca710">sEulerAngles</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inAngles)</td></tr>
  257. <tr class="memdesc:a1ef2428c09a41f3d0549d216ecfca710"><td class="mdescLeft">&#160;</td><td class="mdescRight">Conversion from Euler angles. Rotation order is X then Y then Z (RotZ * RotY * RotX). Angles in radians. <br /></td></tr>
  258. <tr class="separator:a1ef2428c09a41f3d0549d216ecfca710"><td class="memSeparator" colspan="2">&#160;</td></tr>
  259. <tr class="memitem:a192ad561dca0797134dab8f8c2e59e29" id="r_a192ad561dca0797134dab8f8c2e59e29"><td class="memItemLeft" align="right" valign="top">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a192ad561dca0797134dab8f8c2e59e29">sMultiplyImaginary</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inLHS, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS)</td></tr>
  260. <tr class="memdesc:a192ad561dca0797134dab8f8c2e59e29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply a quaternion with imaginary components and no real component (x, y, z, 0) with a quaternion. <br /></td></tr>
  261. <tr class="separator:a192ad561dca0797134dab8f8c2e59e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
  262. <tr class="memitem:a60c11537faec1e7517a957f02afc4b6d" id="r_a60c11537faec1e7517a957f02afc4b6d"><td class="memItemLeft" align="right" valign="top">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a60c11537faec1e7517a957f02afc4b6d">sLoadFloat3Unsafe</a> (const <a class="el" href="class_float3.html">Float3</a> &amp;inV)</td></tr>
  263. <tr class="memdesc:a60c11537faec1e7517a957f02afc4b6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load 3 floats from memory (X, Y and Z component and then calculates W) reads 32 bits extra which it doesn't use. <br /></td></tr>
  264. <tr class="separator:a60c11537faec1e7517a957f02afc4b6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  265. <tr class="memitem:a820cff433aae6ef61bc681c942602a78" id="r_a820cff433aae6ef61bc681c942602a78"><td class="memItemLeft" align="right" valign="top">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a820cff433aae6ef61bc681c942602a78">sDecompressUnitQuat</a> (<a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> inValue)</td></tr>
  266. <tr class="memdesc:a820cff433aae6ef61bc681c942602a78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress a unit quaternion from a 32 bit value. <br /></td></tr>
  267. <tr class="separator:a820cff433aae6ef61bc681c942602a78"><td class="memSeparator" colspan="2">&#160;</td></tr>
  268. <tr><td colspan="2"><div class="groupHeader">Default quaternions</div></td></tr>
  269. <tr class="memitem:aed30764b796cee2d0169b126c3839bc1" id="r_aed30764b796cee2d0169b126c3839bc1"><td class="memItemLeft" align="right" valign="top">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aed30764b796cee2d0169b126c3839bc1">sZero</a> ()</td></tr>
  270. <tr class="separator:aed30764b796cee2d0169b126c3839bc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  271. <tr class="memitem:a73a43fe262fbbbc0b1872d238b972794" id="r_a73a43fe262fbbbc0b1872d238b972794"><td class="memItemLeft" align="right" valign="top">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a73a43fe262fbbbc0b1872d238b972794">sIdentity</a> ()</td></tr>
  272. <tr class="separator:a73a43fe262fbbbc0b1872d238b972794"><td class="memSeparator" colspan="2">&#160;</td></tr>
  273. </table><table class="memberdecls">
  274. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
  275. Public Attributes</h2></td></tr>
  276. <tr class="memitem:afad087a5997d1318f544b5c9819c4d9b" id="r_afad087a5997d1318f544b5c9819c4d9b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_vec4.html">Vec4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afad087a5997d1318f544b5c9819c4d9b">mValue</a></td></tr>
  277. <tr class="memdesc:afad087a5997d1318f544b5c9819c4d9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 vector that stores [x, y, z, w] parts of the quaternion <br /></td></tr>
  278. <tr class="separator:afad087a5997d1318f544b5c9819c4d9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  279. </table><table class="memberdecls">
  280. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
  281. Friends</h2></td></tr>
  282. <tr class="memitem:add2e8fbe3d49728e6cd82834f0f2ef3c" id="r_add2e8fbe3d49728e6cd82834f0f2ef3c"><td class="memItemLeft" align="right" valign="top">ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#add2e8fbe3d49728e6cd82834f0f2ef3c">operator&lt;&lt;</a> (ostream &amp;inStream, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inQ)</td></tr>
  283. <tr class="memdesc:add2e8fbe3d49728e6cd82834f0f2ef3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">To String. <br /></td></tr>
  284. <tr class="separator:add2e8fbe3d49728e6cd82834f0f2ef3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  285. </table><table class="memberdecls">
  286. <tr class="heading"><td colspan="2"><h2 class="groupheader">Additions / multiplications</h2></td></tr>
  287. <tr class="memitem:a581ca135acfa86ebf00bb6e1636aef29" id="r_a581ca135acfa86ebf00bb6e1636aef29"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a581ca135acfa86ebf00bb6e1636aef29">operator+=</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS)</td></tr>
  288. <tr class="separator:a581ca135acfa86ebf00bb6e1636aef29"><td class="memSeparator" colspan="2">&#160;</td></tr>
  289. <tr class="memitem:a8297012460ea2f4851ed1f0f80eeddb9" id="r_a8297012460ea2f4851ed1f0f80eeddb9"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8297012460ea2f4851ed1f0f80eeddb9">operator-=</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS)</td></tr>
  290. <tr class="separator:a8297012460ea2f4851ed1f0f80eeddb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  291. <tr class="memitem:ada769d2a82345ec6a2abd706216d46e2" id="r_ada769d2a82345ec6a2abd706216d46e2"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ada769d2a82345ec6a2abd706216d46e2">operator*=</a> (float inValue)</td></tr>
  292. <tr class="separator:ada769d2a82345ec6a2abd706216d46e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  293. <tr class="memitem:afc3765d179c478cf2c08d76bd9391bfa" id="r_afc3765d179c478cf2c08d76bd9391bfa"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afc3765d179c478cf2c08d76bd9391bfa">operator/=</a> (float inValue)</td></tr>
  294. <tr class="separator:afc3765d179c478cf2c08d76bd9391bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  295. <tr class="memitem:abdb3a55008ba319143df69f97b94d7e5" id="r_abdb3a55008ba319143df69f97b94d7e5"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abdb3a55008ba319143df69f97b94d7e5">operator-</a> () const</td></tr>
  296. <tr class="separator:abdb3a55008ba319143df69f97b94d7e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  297. <tr class="memitem:a05bb92518353f7309399282af7e906e3" id="r_a05bb92518353f7309399282af7e906e3"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a05bb92518353f7309399282af7e906e3">operator+</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS) const</td></tr>
  298. <tr class="separator:a05bb92518353f7309399282af7e906e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  299. <tr class="memitem:a7c2cc189b41905f2d02154a2d4863e19" id="r_a7c2cc189b41905f2d02154a2d4863e19"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7c2cc189b41905f2d02154a2d4863e19">operator-</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS) const</td></tr>
  300. <tr class="separator:a7c2cc189b41905f2d02154a2d4863e19"><td class="memSeparator" colspan="2">&#160;</td></tr>
  301. <tr class="memitem:a4e344b30517b4411443b17078e5bb218" id="r_a4e344b30517b4411443b17078e5bb218"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4e344b30517b4411443b17078e5bb218">operator*</a> (<a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS) const</td></tr>
  302. <tr class="separator:a4e344b30517b4411443b17078e5bb218"><td class="memSeparator" colspan="2">&#160;</td></tr>
  303. <tr class="memitem:ae6b513e0018c4191b92eee8fb4594a5e" id="r_ae6b513e0018c4191b92eee8fb4594a5e"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae6b513e0018c4191b92eee8fb4594a5e">operator*</a> (float inValue) const</td></tr>
  304. <tr class="separator:ae6b513e0018c4191b92eee8fb4594a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  305. <tr class="memitem:a022e859768c59cdbdef45cdacada80d2" id="r_a022e859768c59cdbdef45cdacada80d2"><td class="memItemLeft" align="right" valign="top">JPH_INLINE <a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a022e859768c59cdbdef45cdacada80d2">operator/</a> (float inValue) const</td></tr>
  306. <tr class="separator:a022e859768c59cdbdef45cdacada80d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  307. <tr class="memitem:a889abe46c8a28cfafa2a20492ecb9b3a" id="r_a889abe46c8a28cfafa2a20492ecb9b3a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a889abe46c8a28cfafa2a20492ecb9b3a">operator*</a> (float inValue, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRHS)</td></tr>
  308. <tr class="separator:a889abe46c8a28cfafa2a20492ecb9b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  309. </table>
  310. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  311. <div class="textblock"><p>Quaternion class, quaternions are 4 dimensional vectors which can describe rotations in 3 dimensional space if their length is 1.</p>
  312. <p>They are written as:</p>
  313. <p>\(q = w + x \: i + y \: j + z \: k\)</p>
  314. <p>or in vector notation:</p>
  315. <p>\(q = [w, v] = [w, x, y, z]\)</p>
  316. <p>Where:</p>
  317. <p>w = the real part v = the imaginary part, (x, y, z)</p>
  318. <p>Note that we store the quaternion in a <a class="el" href="class_vec4.html">Vec4</a> as [x, y, z, w] because that makes it easy to extract the rotation axis of the quaternion:</p>
  319. <p>q = [cos(angle / 2), sin(angle / 2) * rotation_axis] </p>
  320. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  321. <a id="aab09b7638f6936a9ad7a1e4ffce606e8" name="aab09b7638f6936a9ad7a1e4ffce606e8"></a>
  322. <h2 class="memtitle"><span class="permalink"><a href="#aab09b7638f6936a9ad7a1e4ffce606e8">&#9670;&#160;</a></span>Quat() <span class="overload">[1/5]</span></h2>
  323. <div class="memitem">
  324. <div class="memproto">
  325. <table class="mlabels">
  326. <tr>
  327. <td class="mlabels-left">
  328. <table class="memname">
  329. <tr>
  330. <td class="memname">Quat::Quat </td>
  331. <td>(</td>
  332. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  333. <td></td>
  334. </tr>
  335. </table>
  336. </td>
  337. <td class="mlabels-right">
  338. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">default</span></span> </td>
  339. </tr>
  340. </table>
  341. </div><div class="memdoc">
  342. <p>Intentionally not initialized for performance reasons. </p>
  343. </div>
  344. </div>
  345. <a id="a0657861b58c5638d657b9232d0872789" name="a0657861b58c5638d657b9232d0872789"></a>
  346. <h2 class="memtitle"><span class="permalink"><a href="#a0657861b58c5638d657b9232d0872789">&#9670;&#160;</a></span>Quat() <span class="overload">[2/5]</span></h2>
  347. <div class="memitem">
  348. <div class="memproto">
  349. <table class="mlabels">
  350. <tr>
  351. <td class="mlabels-left">
  352. <table class="memname">
  353. <tr>
  354. <td class="memname">Quat::Quat </td>
  355. <td>(</td>
  356. <td class="paramtype">const <a class="el" href="class_quat.html">Quat</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  357. <td></td>
  358. </tr>
  359. </table>
  360. </td>
  361. <td class="mlabels-right">
  362. <span class="mlabels"><span class="mlabel">default</span></span> </td>
  363. </tr>
  364. </table>
  365. </div><div class="memdoc">
  366. </div>
  367. </div>
  368. <a id="add07307f26b40e8ad4dc1bad89e837b9" name="add07307f26b40e8ad4dc1bad89e837b9"></a>
  369. <h2 class="memtitle"><span class="permalink"><a href="#add07307f26b40e8ad4dc1bad89e837b9">&#9670;&#160;</a></span>Quat() <span class="overload">[3/5]</span></h2>
  370. <div class="memitem">
  371. <div class="memproto">
  372. <table class="mlabels">
  373. <tr>
  374. <td class="mlabels-left">
  375. <table class="memname">
  376. <tr>
  377. <td class="memname">Quat::Quat </td>
  378. <td>(</td>
  379. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inX</em></span>, </td>
  380. </tr>
  381. <tr>
  382. <td class="paramkey"></td>
  383. <td></td>
  384. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inY</em></span>, </td>
  385. </tr>
  386. <tr>
  387. <td class="paramkey"></td>
  388. <td></td>
  389. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inZ</em></span>, </td>
  390. </tr>
  391. <tr>
  392. <td class="paramkey"></td>
  393. <td></td>
  394. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inW</em></span>&#160;)</td>
  395. </tr>
  396. </table>
  397. </td>
  398. <td class="mlabels-right">
  399. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  400. </tr>
  401. </table>
  402. </div><div class="memdoc">
  403. </div>
  404. </div>
  405. <a id="a9b178bf2445e7c1e97e2fdf02c919554" name="a9b178bf2445e7c1e97e2fdf02c919554"></a>
  406. <h2 class="memtitle"><span class="permalink"><a href="#a9b178bf2445e7c1e97e2fdf02c919554">&#9670;&#160;</a></span>Quat() <span class="overload">[4/5]</span></h2>
  407. <div class="memitem">
  408. <div class="memproto">
  409. <table class="mlabels">
  410. <tr>
  411. <td class="mlabels-left">
  412. <table class="memname">
  413. <tr>
  414. <td class="memname">Quat::Quat </td>
  415. <td>(</td>
  416. <td class="paramtype">const <a class="el" href="class_float4.html">Float4</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inV</em></span></td><td>)</td>
  417. <td></td>
  418. </tr>
  419. </table>
  420. </td>
  421. <td class="mlabels-right">
  422. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
  423. </tr>
  424. </table>
  425. </div><div class="memdoc">
  426. </div>
  427. </div>
  428. <a id="aa27e46b0f37c06e419e552ec8473abd1" name="aa27e46b0f37c06e419e552ec8473abd1"></a>
  429. <h2 class="memtitle"><span class="permalink"><a href="#aa27e46b0f37c06e419e552ec8473abd1">&#9670;&#160;</a></span>Quat() <span class="overload">[5/5]</span></h2>
  430. <div class="memitem">
  431. <div class="memproto">
  432. <table class="mlabels">
  433. <tr>
  434. <td class="mlabels-left">
  435. <table class="memname">
  436. <tr>
  437. <td class="memname">Quat::Quat </td>
  438. <td>(</td>
  439. <td class="paramtype"><a class="el" href="_math_types_8h.html#a2f6a6bbc069039fb4bc5813de8e77aa1">Vec4Arg</a></td> <td class="paramname"><span class="paramname"><em>inV</em></span></td><td>)</td>
  440. <td></td>
  441. </tr>
  442. </table>
  443. </td>
  444. <td class="mlabels-right">
  445. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
  446. </tr>
  447. </table>
  448. </div><div class="memdoc">
  449. </div>
  450. </div>
  451. <h2 class="groupheader">Member Function Documentation</h2>
  452. <a id="a5e844d3510c68831f222de05d92669b2" name="a5e844d3510c68831f222de05d92669b2"></a>
  453. <h2 class="memtitle"><span class="permalink"><a href="#a5e844d3510c68831f222de05d92669b2">&#9670;&#160;</a></span>CompressUnitQuat()</h2>
  454. <div class="memitem">
  455. <div class="memproto">
  456. <table class="mlabels">
  457. <tr>
  458. <td class="mlabels-left">
  459. <table class="memname">
  460. <tr>
  461. <td class="memname">JPH_INLINE <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> Quat::CompressUnitQuat </td>
  462. <td>(</td>
  463. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  464. <td> const</td>
  465. </tr>
  466. </table>
  467. </td>
  468. <td class="mlabels-right">
  469. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  470. </tr>
  471. </table>
  472. </div><div class="memdoc">
  473. <p>Compress a unit quaternion to a 32 bit value, precision is around 0.5 degree. </p>
  474. </div>
  475. </div>
  476. <a id="ac69dfd8cdf79a19b8c3f385125ff5ddc" name="ac69dfd8cdf79a19b8c3f385125ff5ddc"></a>
  477. <h2 class="memtitle"><span class="permalink"><a href="#ac69dfd8cdf79a19b8c3f385125ff5ddc">&#9670;&#160;</a></span>Conjugated()</h2>
  478. <div class="memitem">
  479. <div class="memproto">
  480. <table class="mlabels">
  481. <tr>
  482. <td class="mlabels-left">
  483. <table class="memname">
  484. <tr>
  485. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::Conjugated </td>
  486. <td>(</td>
  487. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  488. <td> const</td>
  489. </tr>
  490. </table>
  491. </td>
  492. <td class="mlabels-right">
  493. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  494. </tr>
  495. </table>
  496. </div><div class="memdoc">
  497. <p>The conjugate [w, -x, -y, -z] is the same as the inverse for unit quaternions. </p>
  498. </div>
  499. </div>
  500. <a id="aa95ff0fd4a249749b023c32a5be3a44f" name="aa95ff0fd4a249749b023c32a5be3a44f"></a>
  501. <h2 class="memtitle"><span class="permalink"><a href="#aa95ff0fd4a249749b023c32a5be3a44f">&#9670;&#160;</a></span>Dot()</h2>
  502. <div class="memitem">
  503. <div class="memproto">
  504. <table class="mlabels">
  505. <tr>
  506. <td class="mlabels-left">
  507. <table class="memname">
  508. <tr>
  509. <td class="memname">JPH_INLINE float Quat::Dot </td>
  510. <td>(</td>
  511. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  512. <td> const</td>
  513. </tr>
  514. </table>
  515. </td>
  516. <td class="mlabels-right">
  517. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  518. </tr>
  519. </table>
  520. </div><div class="memdoc">
  521. <p>Dot product. </p>
  522. </div>
  523. </div>
  524. <a id="a9f563ca8c8a8b71a0aa340d12080c2ef" name="a9f563ca8c8a8b71a0aa340d12080c2ef"></a>
  525. <h2 class="memtitle"><span class="permalink"><a href="#a9f563ca8c8a8b71a0aa340d12080c2ef">&#9670;&#160;</a></span>EnsureWPositive()</h2>
  526. <div class="memitem">
  527. <div class="memproto">
  528. <table class="mlabels">
  529. <tr>
  530. <td class="mlabels-left">
  531. <table class="memname">
  532. <tr>
  533. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::EnsureWPositive </td>
  534. <td>(</td>
  535. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  536. <td> const</td>
  537. </tr>
  538. </table>
  539. </td>
  540. <td class="mlabels-right">
  541. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  542. </tr>
  543. </table>
  544. </div><div class="memdoc">
  545. <p>Ensures that the W component is positive by negating the entire quaternion if it is not. This is useful when you want to store a quaternion as a 3 vector by discarding W and reconstructing it as sqrt(1 - x^2 - y^2 - z^2). </p>
  546. </div>
  547. </div>
  548. <a id="a618a8eb64122263b8c64109f03ac47b5" name="a618a8eb64122263b8c64109f03ac47b5"></a>
  549. <h2 class="memtitle"><span class="permalink"><a href="#a618a8eb64122263b8c64109f03ac47b5">&#9670;&#160;</a></span>GetAxisAngle()</h2>
  550. <div class="memitem">
  551. <div class="memproto">
  552. <table class="memname">
  553. <tr>
  554. <td class="memname">void Quat::GetAxisAngle </td>
  555. <td>(</td>
  556. <td class="paramtype"><a class="el" href="class_vec3.html">Vec3</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outAxis</em></span>, </td>
  557. </tr>
  558. <tr>
  559. <td class="paramkey"></td>
  560. <td></td>
  561. <td class="paramtype">float &amp;</td> <td class="paramname"><span class="paramname"><em>outAngle</em></span>&#160;) const</td>
  562. </tr>
  563. </table>
  564. </div><div class="memdoc">
  565. <p>Get axis and angle that represents this quaternion, outAngle will always be in the range \([0, \pi]\). </p>
  566. </div>
  567. </div>
  568. <a id="ae0e71415ee746c38c27b04e7dbc9b4ed" name="ae0e71415ee746c38c27b04e7dbc9b4ed"></a>
  569. <h2 class="memtitle"><span class="permalink"><a href="#ae0e71415ee746c38c27b04e7dbc9b4ed">&#9670;&#160;</a></span>GetEulerAngles()</h2>
  570. <div class="memitem">
  571. <div class="memproto">
  572. <table class="mlabels">
  573. <tr>
  574. <td class="mlabels-left">
  575. <table class="memname">
  576. <tr>
  577. <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::GetEulerAngles </td>
  578. <td>(</td>
  579. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  580. <td> const</td>
  581. </tr>
  582. </table>
  583. </td>
  584. <td class="mlabels-right">
  585. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  586. </tr>
  587. </table>
  588. </div><div class="memdoc">
  589. <p>Conversion to Euler angles. Rotation order is X then Y then Z (RotZ * RotY * RotX). Angles in radians. </p>
  590. </div>
  591. </div>
  592. <a id="abba5ae611cba89b67e967945ffe32c8f" name="abba5ae611cba89b67e967945ffe32c8f"></a>
  593. <h2 class="memtitle"><span class="permalink"><a href="#abba5ae611cba89b67e967945ffe32c8f">&#9670;&#160;</a></span>GetPerpendicular()</h2>
  594. <div class="memitem">
  595. <div class="memproto">
  596. <table class="mlabels">
  597. <tr>
  598. <td class="mlabels-left">
  599. <table class="memname">
  600. <tr>
  601. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::GetPerpendicular </td>
  602. <td>(</td>
  603. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  604. <td> const</td>
  605. </tr>
  606. </table>
  607. </td>
  608. <td class="mlabels-right">
  609. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  610. </tr>
  611. </table>
  612. </div><div class="memdoc">
  613. <p>Get a quaternion that is perpendicular to this quaternion. </p>
  614. </div>
  615. </div>
  616. <a id="ac72ff53fa4780399aa0755e2ca31b450" name="ac72ff53fa4780399aa0755e2ca31b450"></a>
  617. <h2 class="memtitle"><span class="permalink"><a href="#ac72ff53fa4780399aa0755e2ca31b450">&#9670;&#160;</a></span>GetRotationAngle()</h2>
  618. <div class="memitem">
  619. <div class="memproto">
  620. <table class="mlabels">
  621. <tr>
  622. <td class="mlabels-left">
  623. <table class="memname">
  624. <tr>
  625. <td class="memname">JPH_INLINE float Quat::GetRotationAngle </td>
  626. <td>(</td>
  627. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inAxis</em></span></td><td>)</td>
  628. <td> const</td>
  629. </tr>
  630. </table>
  631. </td>
  632. <td class="mlabels-right">
  633. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  634. </tr>
  635. </table>
  636. </div><div class="memdoc">
  637. <p>Get rotation angle around inAxis (uses Swing Twist Decomposition to get the twist quaternion and uses q(axis, angle) = [cos(angle / 2), axis * sin(angle / 2)]) </p>
  638. </div>
  639. </div>
  640. <a id="a7bb8b016622e5ad8f361c52f9037f1aa" name="a7bb8b016622e5ad8f361c52f9037f1aa"></a>
  641. <h2 class="memtitle"><span class="permalink"><a href="#a7bb8b016622e5ad8f361c52f9037f1aa">&#9670;&#160;</a></span>GetSwingTwist()</h2>
  642. <div class="memitem">
  643. <div class="memproto">
  644. <table class="memname">
  645. <tr>
  646. <td class="memname">void Quat::GetSwingTwist </td>
  647. <td>(</td>
  648. <td class="paramtype"><a class="el" href="class_quat.html">Quat</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outSwing</em></span>, </td>
  649. </tr>
  650. <tr>
  651. <td class="paramkey"></td>
  652. <td></td>
  653. <td class="paramtype"><a class="el" href="class_quat.html">Quat</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outTwist</em></span>&#160;) const</td>
  654. </tr>
  655. </table>
  656. </div><div class="memdoc">
  657. <p>Decomposes quaternion into swing and twist component:</p>
  658. <p>\(q = q_{swing} \: q_{twist}\)</p>
  659. <p>where \(q_{swing} \: \hat{x} = q_{twist} \: \hat{y} = q_{twist} \: \hat{z} = 0\)</p>
  660. <p>In other words:</p>
  661. <ul>
  662. <li>\(q_{twist}\) only rotates around the X-axis.</li>
  663. <li>\(q_{swing}\) only rotates around the Y and Z-axis.</li>
  664. </ul>
  665. <dl class="section see"><dt>See also</dt><dd>Gino van den Bergen - Rotational Joint Limits in Quaternion Space - GDC 2016 </dd></dl>
  666. </div>
  667. </div>
  668. <a id="aa30f29eff5df0de717de979bf3aae295" name="aa30f29eff5df0de717de979bf3aae295"></a>
  669. <h2 class="memtitle"><span class="permalink"><a href="#aa30f29eff5df0de717de979bf3aae295">&#9670;&#160;</a></span>GetTwist()</h2>
  670. <div class="memitem">
  671. <div class="memproto">
  672. <table class="memname">
  673. <tr>
  674. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::GetTwist </td>
  675. <td>(</td>
  676. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inAxis</em></span></td><td>)</td>
  677. <td> const</td>
  678. </tr>
  679. </table>
  680. </div><div class="memdoc">
  681. <p>Swing Twist Decomposition: any quaternion can be split up as:</p>
  682. <p class="formulaDsp">
  683. \[q = q_{swing} \: q_{twist}\]
  684. </p>
  685. <p>where \(q_{twist}\) rotates only around axis v.</p>
  686. <p>\(q_{twist}\) is:</p>
  687. <p class="formulaDsp">
  688. \[q_{twist} = \frac{[q_w, q_{ijk} \cdot v \: v]}{\left|[q_w, q_{ijk} \cdot v \: v]\right|}\]
  689. </p>
  690. <p>where q_w is the real part of the quaternion and q_i the imaginary part (a 3 vector).</p>
  691. <p>The swing can then be calculated as:</p>
  692. <p class="formulaDsp">
  693. \[q_{swing} = q \: q_{twist}^* \]
  694. </p>
  695. <p>Where \(q_{twist}^*\) = complex conjugate of \(q_{twist}\) </p>
  696. </div>
  697. </div>
  698. <a id="a13d0159a54a94e6a90dc5952f454b09e" name="a13d0159a54a94e6a90dc5952f454b09e"></a>
  699. <h2 class="memtitle"><span class="permalink"><a href="#a13d0159a54a94e6a90dc5952f454b09e">&#9670;&#160;</a></span>GetW()</h2>
  700. <div class="memitem">
  701. <div class="memproto">
  702. <table class="mlabels">
  703. <tr>
  704. <td class="mlabels-left">
  705. <table class="memname">
  706. <tr>
  707. <td class="memname">JPH_INLINE float Quat::GetW </td>
  708. <td>(</td>
  709. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  710. <td> const</td>
  711. </tr>
  712. </table>
  713. </td>
  714. <td class="mlabels-right">
  715. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  716. </tr>
  717. </table>
  718. </div><div class="memdoc">
  719. <p>Get W component (real part) </p>
  720. </div>
  721. </div>
  722. <a id="a3fb43a7bca4b20ce7573030fd826aa96" name="a3fb43a7bca4b20ce7573030fd826aa96"></a>
  723. <h2 class="memtitle"><span class="permalink"><a href="#a3fb43a7bca4b20ce7573030fd826aa96">&#9670;&#160;</a></span>GetX()</h2>
  724. <div class="memitem">
  725. <div class="memproto">
  726. <table class="mlabels">
  727. <tr>
  728. <td class="mlabels-left">
  729. <table class="memname">
  730. <tr>
  731. <td class="memname">JPH_INLINE float Quat::GetX </td>
  732. <td>(</td>
  733. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  734. <td> const</td>
  735. </tr>
  736. </table>
  737. </td>
  738. <td class="mlabels-right">
  739. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  740. </tr>
  741. </table>
  742. </div><div class="memdoc">
  743. <p>Get X component (imaginary part i) </p>
  744. </div>
  745. </div>
  746. <a id="afa7fe10bf8a457fb2d524791ccd79ec4" name="afa7fe10bf8a457fb2d524791ccd79ec4"></a>
  747. <h2 class="memtitle"><span class="permalink"><a href="#afa7fe10bf8a457fb2d524791ccd79ec4">&#9670;&#160;</a></span>GetXYZ()</h2>
  748. <div class="memitem">
  749. <div class="memproto">
  750. <table class="mlabels">
  751. <tr>
  752. <td class="mlabels-left">
  753. <table class="memname">
  754. <tr>
  755. <td class="memname">JPH_INLINE <a class="el" href="class_vec3.html">Vec3</a> Quat::GetXYZ </td>
  756. <td>(</td>
  757. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  758. <td> const</td>
  759. </tr>
  760. </table>
  761. </td>
  762. <td class="mlabels-right">
  763. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  764. </tr>
  765. </table>
  766. </div><div class="memdoc">
  767. <p>Get the imaginary part of the quaternion. </p>
  768. </div>
  769. </div>
  770. <a id="a7800c0c4cb017273d86793d8a09bf136" name="a7800c0c4cb017273d86793d8a09bf136"></a>
  771. <h2 class="memtitle"><span class="permalink"><a href="#a7800c0c4cb017273d86793d8a09bf136">&#9670;&#160;</a></span>GetXYZW()</h2>
  772. <div class="memitem">
  773. <div class="memproto">
  774. <table class="mlabels">
  775. <tr>
  776. <td class="mlabels-left">
  777. <table class="memname">
  778. <tr>
  779. <td class="memname">JPH_INLINE <a class="el" href="class_vec4.html">Vec4</a> Quat::GetXYZW </td>
  780. <td>(</td>
  781. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  782. <td> const</td>
  783. </tr>
  784. </table>
  785. </td>
  786. <td class="mlabels-right">
  787. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  788. </tr>
  789. </table>
  790. </div><div class="memdoc">
  791. <p>Get the quaternion as a <a class="el" href="class_vec4.html">Vec4</a>. </p>
  792. </div>
  793. </div>
  794. <a id="a21f44684684b475d9f5d02ed9c580def" name="a21f44684684b475d9f5d02ed9c580def"></a>
  795. <h2 class="memtitle"><span class="permalink"><a href="#a21f44684684b475d9f5d02ed9c580def">&#9670;&#160;</a></span>GetY()</h2>
  796. <div class="memitem">
  797. <div class="memproto">
  798. <table class="mlabels">
  799. <tr>
  800. <td class="mlabels-left">
  801. <table class="memname">
  802. <tr>
  803. <td class="memname">JPH_INLINE float Quat::GetY </td>
  804. <td>(</td>
  805. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  806. <td> const</td>
  807. </tr>
  808. </table>
  809. </td>
  810. <td class="mlabels-right">
  811. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  812. </tr>
  813. </table>
  814. </div><div class="memdoc">
  815. <p>Get Y component (imaginary part j) </p>
  816. </div>
  817. </div>
  818. <a id="a38dfc20f7628eee4492125a41ad91764" name="a38dfc20f7628eee4492125a41ad91764"></a>
  819. <h2 class="memtitle"><span class="permalink"><a href="#a38dfc20f7628eee4492125a41ad91764">&#9670;&#160;</a></span>GetZ()</h2>
  820. <div class="memitem">
  821. <div class="memproto">
  822. <table class="mlabels">
  823. <tr>
  824. <td class="mlabels-left">
  825. <table class="memname">
  826. <tr>
  827. <td class="memname">JPH_INLINE float Quat::GetZ </td>
  828. <td>(</td>
  829. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  830. <td> const</td>
  831. </tr>
  832. </table>
  833. </td>
  834. <td class="mlabels-right">
  835. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  836. </tr>
  837. </table>
  838. </div><div class="memdoc">
  839. <p>Get Z component (imaginary part k) </p>
  840. </div>
  841. </div>
  842. <a id="ac04a00570e1a5e96d49398d40d493bf3" name="ac04a00570e1a5e96d49398d40d493bf3"></a>
  843. <h2 class="memtitle"><span class="permalink"><a href="#ac04a00570e1a5e96d49398d40d493bf3">&#9670;&#160;</a></span>Inversed()</h2>
  844. <div class="memitem">
  845. <div class="memproto">
  846. <table class="mlabels">
  847. <tr>
  848. <td class="mlabels-left">
  849. <table class="memname">
  850. <tr>
  851. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::Inversed </td>
  852. <td>(</td>
  853. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  854. <td> const</td>
  855. </tr>
  856. </table>
  857. </td>
  858. <td class="mlabels-right">
  859. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  860. </tr>
  861. </table>
  862. </div><div class="memdoc">
  863. <p>Get inverse quaternion. </p>
  864. </div>
  865. </div>
  866. <a id="a108350bfce9aa53b1af87fbe2698f6f4" name="a108350bfce9aa53b1af87fbe2698f6f4"></a>
  867. <h2 class="memtitle"><span class="permalink"><a href="#a108350bfce9aa53b1af87fbe2698f6f4">&#9670;&#160;</a></span>InverseRotate()</h2>
  868. <div class="memitem">
  869. <div class="memproto">
  870. <table class="memname">
  871. <tr>
  872. <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::InverseRotate </td>
  873. <td>(</td>
  874. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
  875. <td> const</td>
  876. </tr>
  877. </table>
  878. </div><div class="memdoc">
  879. <p>Rotate a vector by the inverse of this quaternion. </p>
  880. </div>
  881. </div>
  882. <a id="a9c0afa78ae80b13a6c8adf1240a7c95e" name="a9c0afa78ae80b13a6c8adf1240a7c95e"></a>
  883. <h2 class="memtitle"><span class="permalink"><a href="#a9c0afa78ae80b13a6c8adf1240a7c95e">&#9670;&#160;</a></span>IsClose()</h2>
  884. <div class="memitem">
  885. <div class="memproto">
  886. <table class="mlabels">
  887. <tr>
  888. <td class="mlabels-left">
  889. <table class="memname">
  890. <tr>
  891. <td class="memname">bool Quat::IsClose </td>
  892. <td>(</td>
  893. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span>, </td>
  894. </tr>
  895. <tr>
  896. <td class="paramkey"></td>
  897. <td></td>
  898. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inMaxDistSq</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1.0e-12f</span>&#160;) const</td>
  899. </tr>
  900. </table>
  901. </td>
  902. <td class="mlabels-right">
  903. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  904. </tr>
  905. </table>
  906. </div><div class="memdoc">
  907. <p>If this quaternion is close to inRHS. Note that q and -q represent the same rotation, this is not checked here. </p>
  908. </div>
  909. </div>
  910. <a id="a62b95b1c1d36ecbd6f9732ca4789a7bf" name="a62b95b1c1d36ecbd6f9732ca4789a7bf"></a>
  911. <h2 class="memtitle"><span class="permalink"><a href="#a62b95b1c1d36ecbd6f9732ca4789a7bf">&#9670;&#160;</a></span>IsNaN()</h2>
  912. <div class="memitem">
  913. <div class="memproto">
  914. <table class="mlabels">
  915. <tr>
  916. <td class="mlabels-left">
  917. <table class="memname">
  918. <tr>
  919. <td class="memname">bool Quat::IsNaN </td>
  920. <td>(</td>
  921. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  922. <td> const</td>
  923. </tr>
  924. </table>
  925. </td>
  926. <td class="mlabels-right">
  927. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  928. </tr>
  929. </table>
  930. </div><div class="memdoc">
  931. <p>If any component of this quaternion is a NaN (not a number) </p>
  932. </div>
  933. </div>
  934. <a id="ae628a9685f0be008f18752ea9302b4e4" name="ae628a9685f0be008f18752ea9302b4e4"></a>
  935. <h2 class="memtitle"><span class="permalink"><a href="#ae628a9685f0be008f18752ea9302b4e4">&#9670;&#160;</a></span>IsNormalized()</h2>
  936. <div class="memitem">
  937. <div class="memproto">
  938. <table class="mlabels">
  939. <tr>
  940. <td class="mlabels-left">
  941. <table class="memname">
  942. <tr>
  943. <td class="memname">bool Quat::IsNormalized </td>
  944. <td>(</td>
  945. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inTolerance</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1.0e-5f</span></td><td>)</td>
  946. <td> const</td>
  947. </tr>
  948. </table>
  949. </td>
  950. <td class="mlabels-right">
  951. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  952. </tr>
  953. </table>
  954. </div><div class="memdoc">
  955. <p>If the length of this quaternion is 1 +/- inTolerance. </p>
  956. </div>
  957. </div>
  958. <a id="ab93ff288ad62172d343e11ce4fbf07d0" name="ab93ff288ad62172d343e11ce4fbf07d0"></a>
  959. <h2 class="memtitle"><span class="permalink"><a href="#ab93ff288ad62172d343e11ce4fbf07d0">&#9670;&#160;</a></span>Length()</h2>
  960. <div class="memitem">
  961. <div class="memproto">
  962. <table class="mlabels">
  963. <tr>
  964. <td class="mlabels-left">
  965. <table class="memname">
  966. <tr>
  967. <td class="memname">JPH_INLINE float Quat::Length </td>
  968. <td>(</td>
  969. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  970. <td> const</td>
  971. </tr>
  972. </table>
  973. </td>
  974. <td class="mlabels-right">
  975. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  976. </tr>
  977. </table>
  978. </div><div class="memdoc">
  979. <p>Length of quaternion. </p><dl class="section return"><dt>Returns</dt><dd>Length of quaternion ( \(|v|\)) </dd></dl>
  980. </div>
  981. </div>
  982. <a id="a60f30c650e027a892e699c156c7eca67" name="a60f30c650e027a892e699c156c7eca67"></a>
  983. <h2 class="memtitle"><span class="permalink"><a href="#a60f30c650e027a892e699c156c7eca67">&#9670;&#160;</a></span>LengthSq()</h2>
  984. <div class="memitem">
  985. <div class="memproto">
  986. <table class="mlabels">
  987. <tr>
  988. <td class="mlabels-left">
  989. <table class="memname">
  990. <tr>
  991. <td class="memname">JPH_INLINE float Quat::LengthSq </td>
  992. <td>(</td>
  993. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  994. <td> const</td>
  995. </tr>
  996. </table>
  997. </td>
  998. <td class="mlabels-right">
  999. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1000. </tr>
  1001. </table>
  1002. </div><div class="memdoc">
  1003. <p>Squared length of quaternion. </p><dl class="section return"><dt>Returns</dt><dd>Squared length of quaternion ( \(|v|^2\)) </dd></dl>
  1004. </div>
  1005. </div>
  1006. <a id="a54dc8061046dd6ba3fb3a1965cf7319c" name="a54dc8061046dd6ba3fb3a1965cf7319c"></a>
  1007. <h2 class="memtitle"><span class="permalink"><a href="#a54dc8061046dd6ba3fb3a1965cf7319c">&#9670;&#160;</a></span>LERP()</h2>
  1008. <div class="memitem">
  1009. <div class="memproto">
  1010. <table class="memname">
  1011. <tr>
  1012. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::LERP </td>
  1013. <td>(</td>
  1014. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inDestination</em></span>, </td>
  1015. </tr>
  1016. <tr>
  1017. <td class="paramkey"></td>
  1018. <td></td>
  1019. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inFraction</em></span>&#160;) const</td>
  1020. </tr>
  1021. </table>
  1022. </div><div class="memdoc">
  1023. <p>Linear interpolation between two quaternions (for small steps). </p><dl class="params"><dt>Parameters</dt><dd>
  1024. <table class="params">
  1025. <tr><td class="paramname">inFraction</td><td>is in the range [0, 1] </td></tr>
  1026. <tr><td class="paramname">inDestination</td><td>The destination quaternion </td></tr>
  1027. </table>
  1028. </dd>
  1029. </dl>
  1030. <dl class="section return"><dt>Returns</dt><dd>(1 - inFraction) * this + fraction * inDestination </dd></dl>
  1031. </div>
  1032. </div>
  1033. <a id="a9d4b1ee8c4685a4589766e1c8cacc268" name="a9d4b1ee8c4685a4589766e1c8cacc268"></a>
  1034. <h2 class="memtitle"><span class="permalink"><a href="#a9d4b1ee8c4685a4589766e1c8cacc268">&#9670;&#160;</a></span>Normalized()</h2>
  1035. <div class="memitem">
  1036. <div class="memproto">
  1037. <table class="mlabels">
  1038. <tr>
  1039. <td class="mlabels-left">
  1040. <table class="memname">
  1041. <tr>
  1042. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::Normalized </td>
  1043. <td>(</td>
  1044. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1045. <td> const</td>
  1046. </tr>
  1047. </table>
  1048. </td>
  1049. <td class="mlabels-right">
  1050. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1051. </tr>
  1052. </table>
  1053. </div><div class="memdoc">
  1054. <p>Normalize the quaternion (make it length 1) </p>
  1055. </div>
  1056. </div>
  1057. <a id="a23c4e00d9d6905c284c728cf3e184934" name="a23c4e00d9d6905c284c728cf3e184934"></a>
  1058. <h2 class="memtitle"><span class="permalink"><a href="#a23c4e00d9d6905c284c728cf3e184934">&#9670;&#160;</a></span>operator!=()</h2>
  1059. <div class="memitem">
  1060. <div class="memproto">
  1061. <table class="mlabels">
  1062. <tr>
  1063. <td class="mlabels-left">
  1064. <table class="memname">
  1065. <tr>
  1066. <td class="memname">bool Quat::operator!= </td>
  1067. <td>(</td>
  1068. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  1069. <td> const</td>
  1070. </tr>
  1071. </table>
  1072. </td>
  1073. <td class="mlabels-right">
  1074. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1075. </tr>
  1076. </table>
  1077. </div><div class="memdoc">
  1078. <p>Check if two quaternions are different. </p>
  1079. </div>
  1080. </div>
  1081. <a id="ae6b513e0018c4191b92eee8fb4594a5e" name="ae6b513e0018c4191b92eee8fb4594a5e"></a>
  1082. <h2 class="memtitle"><span class="permalink"><a href="#ae6b513e0018c4191b92eee8fb4594a5e">&#9670;&#160;</a></span>operator*() <span class="overload">[1/3]</span></h2>
  1083. <div class="memitem">
  1084. <div class="memproto">
  1085. <table class="mlabels">
  1086. <tr>
  1087. <td class="mlabels-left">
  1088. <table class="memname">
  1089. <tr>
  1090. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator* </td>
  1091. <td>(</td>
  1092. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
  1093. <td> const</td>
  1094. </tr>
  1095. </table>
  1096. </td>
  1097. <td class="mlabels-right">
  1098. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1099. </tr>
  1100. </table>
  1101. </div><div class="memdoc">
  1102. </div>
  1103. </div>
  1104. <a id="a4e344b30517b4411443b17078e5bb218" name="a4e344b30517b4411443b17078e5bb218"></a>
  1105. <h2 class="memtitle"><span class="permalink"><a href="#a4e344b30517b4411443b17078e5bb218">&#9670;&#160;</a></span>operator*() <span class="overload">[2/3]</span></h2>
  1106. <div class="memitem">
  1107. <div class="memproto">
  1108. <table class="memname">
  1109. <tr>
  1110. <td class="memname"><a class="el" href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a> <a class="el" href="class_quat.html">Quat</a> Quat::operator* </td>
  1111. <td>(</td>
  1112. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  1113. <td> const</td>
  1114. </tr>
  1115. </table>
  1116. </div><div class="memdoc">
  1117. </div>
  1118. </div>
  1119. <a id="a646b3edebee182d86159eed987ba91a0" name="a646b3edebee182d86159eed987ba91a0"></a>
  1120. <h2 class="memtitle"><span class="permalink"><a href="#a646b3edebee182d86159eed987ba91a0">&#9670;&#160;</a></span>operator*() <span class="overload">[3/3]</span></h2>
  1121. <div class="memitem">
  1122. <div class="memproto">
  1123. <table class="memname">
  1124. <tr>
  1125. <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::operator* </td>
  1126. <td>(</td>
  1127. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
  1128. <td> const</td>
  1129. </tr>
  1130. </table>
  1131. </div><div class="memdoc">
  1132. <p>Rotate a vector by this quaternion. </p>
  1133. </div>
  1134. </div>
  1135. <a id="ada769d2a82345ec6a2abd706216d46e2" name="ada769d2a82345ec6a2abd706216d46e2"></a>
  1136. <h2 class="memtitle"><span class="permalink"><a href="#ada769d2a82345ec6a2abd706216d46e2">&#9670;&#160;</a></span>operator*=()</h2>
  1137. <div class="memitem">
  1138. <div class="memproto">
  1139. <table class="mlabels">
  1140. <tr>
  1141. <td class="mlabels-left">
  1142. <table class="memname">
  1143. <tr>
  1144. <td class="memname">JPH_INLINE void Quat::operator*= </td>
  1145. <td>(</td>
  1146. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
  1147. <td></td>
  1148. </tr>
  1149. </table>
  1150. </td>
  1151. <td class="mlabels-right">
  1152. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1153. </tr>
  1154. </table>
  1155. </div><div class="memdoc">
  1156. </div>
  1157. </div>
  1158. <a id="a05bb92518353f7309399282af7e906e3" name="a05bb92518353f7309399282af7e906e3"></a>
  1159. <h2 class="memtitle"><span class="permalink"><a href="#a05bb92518353f7309399282af7e906e3">&#9670;&#160;</a></span>operator+()</h2>
  1160. <div class="memitem">
  1161. <div class="memproto">
  1162. <table class="mlabels">
  1163. <tr>
  1164. <td class="mlabels-left">
  1165. <table class="memname">
  1166. <tr>
  1167. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator+ </td>
  1168. <td>(</td>
  1169. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  1170. <td> const</td>
  1171. </tr>
  1172. </table>
  1173. </td>
  1174. <td class="mlabels-right">
  1175. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1176. </tr>
  1177. </table>
  1178. </div><div class="memdoc">
  1179. </div>
  1180. </div>
  1181. <a id="a581ca135acfa86ebf00bb6e1636aef29" name="a581ca135acfa86ebf00bb6e1636aef29"></a>
  1182. <h2 class="memtitle"><span class="permalink"><a href="#a581ca135acfa86ebf00bb6e1636aef29">&#9670;&#160;</a></span>operator+=()</h2>
  1183. <div class="memitem">
  1184. <div class="memproto">
  1185. <table class="mlabels">
  1186. <tr>
  1187. <td class="mlabels-left">
  1188. <table class="memname">
  1189. <tr>
  1190. <td class="memname">JPH_INLINE void Quat::operator+= </td>
  1191. <td>(</td>
  1192. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  1193. <td></td>
  1194. </tr>
  1195. </table>
  1196. </td>
  1197. <td class="mlabels-right">
  1198. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1199. </tr>
  1200. </table>
  1201. </div><div class="memdoc">
  1202. </div>
  1203. </div>
  1204. <a id="abdb3a55008ba319143df69f97b94d7e5" name="abdb3a55008ba319143df69f97b94d7e5"></a>
  1205. <h2 class="memtitle"><span class="permalink"><a href="#abdb3a55008ba319143df69f97b94d7e5">&#9670;&#160;</a></span>operator-() <span class="overload">[1/2]</span></h2>
  1206. <div class="memitem">
  1207. <div class="memproto">
  1208. <table class="mlabels">
  1209. <tr>
  1210. <td class="mlabels-left">
  1211. <table class="memname">
  1212. <tr>
  1213. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator- </td>
  1214. <td>(</td>
  1215. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1216. <td> const</td>
  1217. </tr>
  1218. </table>
  1219. </td>
  1220. <td class="mlabels-right">
  1221. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1222. </tr>
  1223. </table>
  1224. </div><div class="memdoc">
  1225. </div>
  1226. </div>
  1227. <a id="a7c2cc189b41905f2d02154a2d4863e19" name="a7c2cc189b41905f2d02154a2d4863e19"></a>
  1228. <h2 class="memtitle"><span class="permalink"><a href="#a7c2cc189b41905f2d02154a2d4863e19">&#9670;&#160;</a></span>operator-() <span class="overload">[2/2]</span></h2>
  1229. <div class="memitem">
  1230. <div class="memproto">
  1231. <table class="mlabels">
  1232. <tr>
  1233. <td class="mlabels-left">
  1234. <table class="memname">
  1235. <tr>
  1236. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator- </td>
  1237. <td>(</td>
  1238. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  1239. <td> const</td>
  1240. </tr>
  1241. </table>
  1242. </td>
  1243. <td class="mlabels-right">
  1244. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1245. </tr>
  1246. </table>
  1247. </div><div class="memdoc">
  1248. </div>
  1249. </div>
  1250. <a id="a8297012460ea2f4851ed1f0f80eeddb9" name="a8297012460ea2f4851ed1f0f80eeddb9"></a>
  1251. <h2 class="memtitle"><span class="permalink"><a href="#a8297012460ea2f4851ed1f0f80eeddb9">&#9670;&#160;</a></span>operator-=()</h2>
  1252. <div class="memitem">
  1253. <div class="memproto">
  1254. <table class="mlabels">
  1255. <tr>
  1256. <td class="mlabels-left">
  1257. <table class="memname">
  1258. <tr>
  1259. <td class="memname">JPH_INLINE void Quat::operator-= </td>
  1260. <td>(</td>
  1261. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  1262. <td></td>
  1263. </tr>
  1264. </table>
  1265. </td>
  1266. <td class="mlabels-right">
  1267. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1268. </tr>
  1269. </table>
  1270. </div><div class="memdoc">
  1271. </div>
  1272. </div>
  1273. <a id="a022e859768c59cdbdef45cdacada80d2" name="a022e859768c59cdbdef45cdacada80d2"></a>
  1274. <h2 class="memtitle"><span class="permalink"><a href="#a022e859768c59cdbdef45cdacada80d2">&#9670;&#160;</a></span>operator/()</h2>
  1275. <div class="memitem">
  1276. <div class="memproto">
  1277. <table class="mlabels">
  1278. <tr>
  1279. <td class="mlabels-left">
  1280. <table class="memname">
  1281. <tr>
  1282. <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator/ </td>
  1283. <td>(</td>
  1284. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
  1285. <td> const</td>
  1286. </tr>
  1287. </table>
  1288. </td>
  1289. <td class="mlabels-right">
  1290. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1291. </tr>
  1292. </table>
  1293. </div><div class="memdoc">
  1294. </div>
  1295. </div>
  1296. <a id="afc3765d179c478cf2c08d76bd9391bfa" name="afc3765d179c478cf2c08d76bd9391bfa"></a>
  1297. <h2 class="memtitle"><span class="permalink"><a href="#afc3765d179c478cf2c08d76bd9391bfa">&#9670;&#160;</a></span>operator/=()</h2>
  1298. <div class="memitem">
  1299. <div class="memproto">
  1300. <table class="mlabels">
  1301. <tr>
  1302. <td class="mlabels-left">
  1303. <table class="memname">
  1304. <tr>
  1305. <td class="memname">JPH_INLINE void Quat::operator/= </td>
  1306. <td>(</td>
  1307. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
  1308. <td></td>
  1309. </tr>
  1310. </table>
  1311. </td>
  1312. <td class="mlabels-right">
  1313. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1314. </tr>
  1315. </table>
  1316. </div><div class="memdoc">
  1317. </div>
  1318. </div>
  1319. <a id="a4a0da4e3fde81586973da99956f7d51c" name="a4a0da4e3fde81586973da99956f7d51c"></a>
  1320. <h2 class="memtitle"><span class="permalink"><a href="#a4a0da4e3fde81586973da99956f7d51c">&#9670;&#160;</a></span>operator=()</h2>
  1321. <div class="memitem">
  1322. <div class="memproto">
  1323. <table class="mlabels">
  1324. <tr>
  1325. <td class="mlabels-left">
  1326. <table class="memname">
  1327. <tr>
  1328. <td class="memname"><a class="el" href="class_quat.html">Quat</a> &amp; Quat::operator= </td>
  1329. <td>(</td>
  1330. <td class="paramtype">const <a class="el" href="class_quat.html">Quat</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  1331. <td></td>
  1332. </tr>
  1333. </table>
  1334. </td>
  1335. <td class="mlabels-right">
  1336. <span class="mlabels"><span class="mlabel">default</span></span> </td>
  1337. </tr>
  1338. </table>
  1339. </div><div class="memdoc">
  1340. </div>
  1341. </div>
  1342. <a id="a55ec695a492daa028921cca4740db11b" name="a55ec695a492daa028921cca4740db11b"></a>
  1343. <h2 class="memtitle"><span class="permalink"><a href="#a55ec695a492daa028921cca4740db11b">&#9670;&#160;</a></span>operator==()</h2>
  1344. <div class="memitem">
  1345. <div class="memproto">
  1346. <table class="mlabels">
  1347. <tr>
  1348. <td class="mlabels-left">
  1349. <table class="memname">
  1350. <tr>
  1351. <td class="memname">bool Quat::operator== </td>
  1352. <td>(</td>
  1353. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  1354. <td> const</td>
  1355. </tr>
  1356. </table>
  1357. </td>
  1358. <td class="mlabels-right">
  1359. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1360. </tr>
  1361. </table>
  1362. </div><div class="memdoc">
  1363. <p>Check if two quaternions are exactly equal. </p>
  1364. </div>
  1365. </div>
  1366. <a id="ad591c3ca827733b3be275ffaf808e838" name="ad591c3ca827733b3be275ffaf808e838"></a>
  1367. <h2 class="memtitle"><span class="permalink"><a href="#ad591c3ca827733b3be275ffaf808e838">&#9670;&#160;</a></span>RotateAxisX()</h2>
  1368. <div class="memitem">
  1369. <div class="memproto">
  1370. <table class="memname">
  1371. <tr>
  1372. <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::RotateAxisX </td>
  1373. <td>(</td>
  1374. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1375. <td> const</td>
  1376. </tr>
  1377. </table>
  1378. </div><div class="memdoc">
  1379. <p>Rotate a the vector (1, 0, 0) with this quaternion. </p>
  1380. </div>
  1381. </div>
  1382. <a id="adb1d1a70ed64c0a6fadc849126306706" name="adb1d1a70ed64c0a6fadc849126306706"></a>
  1383. <h2 class="memtitle"><span class="permalink"><a href="#adb1d1a70ed64c0a6fadc849126306706">&#9670;&#160;</a></span>RotateAxisY()</h2>
  1384. <div class="memitem">
  1385. <div class="memproto">
  1386. <table class="memname">
  1387. <tr>
  1388. <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::RotateAxisY </td>
  1389. <td>(</td>
  1390. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1391. <td> const</td>
  1392. </tr>
  1393. </table>
  1394. </div><div class="memdoc">
  1395. <p>Rotate a the vector (0, 1, 0) with this quaternion. </p>
  1396. </div>
  1397. </div>
  1398. <a id="ab226b2147a748e53008556bcf1a3cd76" name="ab226b2147a748e53008556bcf1a3cd76"></a>
  1399. <h2 class="memtitle"><span class="permalink"><a href="#ab226b2147a748e53008556bcf1a3cd76">&#9670;&#160;</a></span>RotateAxisZ()</h2>
  1400. <div class="memitem">
  1401. <div class="memproto">
  1402. <table class="memname">
  1403. <tr>
  1404. <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::RotateAxisZ </td>
  1405. <td>(</td>
  1406. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1407. <td> const</td>
  1408. </tr>
  1409. </table>
  1410. </div><div class="memdoc">
  1411. <p>Rotate a the vector (0, 0, 1) with this quaternion. </p>
  1412. </div>
  1413. </div>
  1414. <a id="a820cff433aae6ef61bc681c942602a78" name="a820cff433aae6ef61bc681c942602a78"></a>
  1415. <h2 class="memtitle"><span class="permalink"><a href="#a820cff433aae6ef61bc681c942602a78">&#9670;&#160;</a></span>sDecompressUnitQuat()</h2>
  1416. <div class="memitem">
  1417. <div class="memproto">
  1418. <table class="mlabels">
  1419. <tr>
  1420. <td class="mlabels-left">
  1421. <table class="memname">
  1422. <tr>
  1423. <td class="memname">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::sDecompressUnitQuat </td>
  1424. <td>(</td>
  1425. <td class="paramtype"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a></td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
  1426. <td></td>
  1427. </tr>
  1428. </table>
  1429. </td>
  1430. <td class="mlabels-right">
  1431. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  1432. </tr>
  1433. </table>
  1434. </div><div class="memdoc">
  1435. <p>Decompress a unit quaternion from a 32 bit value. </p>
  1436. </div>
  1437. </div>
  1438. <a id="a9fb5be70301ba85a3292119d71a5e9c4" name="a9fb5be70301ba85a3292119d71a5e9c4"></a>
  1439. <h2 class="memtitle"><span class="permalink"><a href="#a9fb5be70301ba85a3292119d71a5e9c4">&#9670;&#160;</a></span>Set()</h2>
  1440. <div class="memitem">
  1441. <div class="memproto">
  1442. <table class="mlabels">
  1443. <tr>
  1444. <td class="mlabels-left">
  1445. <table class="memname">
  1446. <tr>
  1447. <td class="memname">JPH_INLINE void Quat::Set </td>
  1448. <td>(</td>
  1449. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inX</em></span>, </td>
  1450. </tr>
  1451. <tr>
  1452. <td class="paramkey"></td>
  1453. <td></td>
  1454. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inY</em></span>, </td>
  1455. </tr>
  1456. <tr>
  1457. <td class="paramkey"></td>
  1458. <td></td>
  1459. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inZ</em></span>, </td>
  1460. </tr>
  1461. <tr>
  1462. <td class="paramkey"></td>
  1463. <td></td>
  1464. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inW</em></span>&#160;)</td>
  1465. </tr>
  1466. </table>
  1467. </td>
  1468. <td class="mlabels-right">
  1469. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1470. </tr>
  1471. </table>
  1472. </div><div class="memdoc">
  1473. <p>Set all components. </p>
  1474. </div>
  1475. </div>
  1476. <a id="ae32d59954e6b05258af7123c00141654" name="ae32d59954e6b05258af7123c00141654"></a>
  1477. <h2 class="memtitle"><span class="permalink"><a href="#ae32d59954e6b05258af7123c00141654">&#9670;&#160;</a></span>SetW()</h2>
  1478. <div class="memitem">
  1479. <div class="memproto">
  1480. <table class="mlabels">
  1481. <tr>
  1482. <td class="mlabels-left">
  1483. <table class="memname">
  1484. <tr>
  1485. <td class="memname">JPH_INLINE void Quat::SetW </td>
  1486. <td>(</td>
  1487. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inW</em></span></td><td>)</td>
  1488. <td></td>
  1489. </tr>
  1490. </table>
  1491. </td>
  1492. <td class="mlabels-right">
  1493. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1494. </tr>
  1495. </table>
  1496. </div><div class="memdoc">
  1497. </div>
  1498. </div>
  1499. <a id="ae53457812ce9ffa5fb7b6b8a3c5c97e5" name="ae53457812ce9ffa5fb7b6b8a3c5c97e5"></a>
  1500. <h2 class="memtitle"><span class="permalink"><a href="#ae53457812ce9ffa5fb7b6b8a3c5c97e5">&#9670;&#160;</a></span>SetX()</h2>
  1501. <div class="memitem">
  1502. <div class="memproto">
  1503. <table class="mlabels">
  1504. <tr>
  1505. <td class="mlabels-left">
  1506. <table class="memname">
  1507. <tr>
  1508. <td class="memname">JPH_INLINE void Quat::SetX </td>
  1509. <td>(</td>
  1510. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inX</em></span></td><td>)</td>
  1511. <td></td>
  1512. </tr>
  1513. </table>
  1514. </td>
  1515. <td class="mlabels-right">
  1516. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1517. </tr>
  1518. </table>
  1519. </div><div class="memdoc">
  1520. <p>Set individual components. </p>
  1521. </div>
  1522. </div>
  1523. <a id="a4a4db6760750a34c25199455c07b6bb9" name="a4a4db6760750a34c25199455c07b6bb9"></a>
  1524. <h2 class="memtitle"><span class="permalink"><a href="#a4a4db6760750a34c25199455c07b6bb9">&#9670;&#160;</a></span>SetY()</h2>
  1525. <div class="memitem">
  1526. <div class="memproto">
  1527. <table class="mlabels">
  1528. <tr>
  1529. <td class="mlabels-left">
  1530. <table class="memname">
  1531. <tr>
  1532. <td class="memname">JPH_INLINE void Quat::SetY </td>
  1533. <td>(</td>
  1534. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inY</em></span></td><td>)</td>
  1535. <td></td>
  1536. </tr>
  1537. </table>
  1538. </td>
  1539. <td class="mlabels-right">
  1540. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1541. </tr>
  1542. </table>
  1543. </div><div class="memdoc">
  1544. </div>
  1545. </div>
  1546. <a id="a3f494dde1e2e0bc50dbc2abd13210b23" name="a3f494dde1e2e0bc50dbc2abd13210b23"></a>
  1547. <h2 class="memtitle"><span class="permalink"><a href="#a3f494dde1e2e0bc50dbc2abd13210b23">&#9670;&#160;</a></span>SetZ()</h2>
  1548. <div class="memitem">
  1549. <div class="memproto">
  1550. <table class="mlabels">
  1551. <tr>
  1552. <td class="mlabels-left">
  1553. <table class="memname">
  1554. <tr>
  1555. <td class="memname">JPH_INLINE void Quat::SetZ </td>
  1556. <td>(</td>
  1557. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inZ</em></span></td><td>)</td>
  1558. <td></td>
  1559. </tr>
  1560. </table>
  1561. </td>
  1562. <td class="mlabels-right">
  1563. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1564. </tr>
  1565. </table>
  1566. </div><div class="memdoc">
  1567. </div>
  1568. </div>
  1569. <a id="a1ef2428c09a41f3d0549d216ecfca710" name="a1ef2428c09a41f3d0549d216ecfca710"></a>
  1570. <h2 class="memtitle"><span class="permalink"><a href="#a1ef2428c09a41f3d0549d216ecfca710">&#9670;&#160;</a></span>sEulerAngles()</h2>
  1571. <div class="memitem">
  1572. <div class="memproto">
  1573. <table class="mlabels">
  1574. <tr>
  1575. <td class="mlabels-left">
  1576. <table class="memname">
  1577. <tr>
  1578. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sEulerAngles </td>
  1579. <td>(</td>
  1580. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inAngles</em></span></td><td>)</td>
  1581. <td></td>
  1582. </tr>
  1583. </table>
  1584. </td>
  1585. <td class="mlabels-right">
  1586. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  1587. </tr>
  1588. </table>
  1589. </div><div class="memdoc">
  1590. <p>Conversion from Euler angles. Rotation order is X then Y then Z (RotZ * RotY * RotX). Angles in radians. </p>
  1591. </div>
  1592. </div>
  1593. <a id="a7e32ae62e2b33bf30ba3c40f9e66bfed" name="a7e32ae62e2b33bf30ba3c40f9e66bfed"></a>
  1594. <h2 class="memtitle"><span class="permalink"><a href="#a7e32ae62e2b33bf30ba3c40f9e66bfed">&#9670;&#160;</a></span>sFromTo()</h2>
  1595. <div class="memitem">
  1596. <div class="memproto">
  1597. <table class="mlabels">
  1598. <tr>
  1599. <td class="mlabels-left">
  1600. <table class="memname">
  1601. <tr>
  1602. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sFromTo </td>
  1603. <td>(</td>
  1604. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inFrom</em></span>, </td>
  1605. </tr>
  1606. <tr>
  1607. <td class="paramkey"></td>
  1608. <td></td>
  1609. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inTo</em></span>&#160;)</td>
  1610. </tr>
  1611. </table>
  1612. </td>
  1613. <td class="mlabels-right">
  1614. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  1615. </tr>
  1616. </table>
  1617. </div><div class="memdoc">
  1618. <p>Create quaternion that rotates a vector from the direction of inFrom to the direction of inTo along the shortest path </p><dl class="section see"><dt>See also</dt><dd><a href="https://www.euclideanspace.com/maths/algebra/vectors/angleBetween/index.htm">https://www.euclideanspace.com/maths/algebra/vectors/angleBetween/index.htm</a> </dd></dl>
  1619. </div>
  1620. </div>
  1621. <a id="a73a43fe262fbbbc0b1872d238b972794" name="a73a43fe262fbbbc0b1872d238b972794"></a>
  1622. <h2 class="memtitle"><span class="permalink"><a href="#a73a43fe262fbbbc0b1872d238b972794">&#9670;&#160;</a></span>sIdentity()</h2>
  1623. <div class="memitem">
  1624. <div class="memproto">
  1625. <table class="mlabels">
  1626. <tr>
  1627. <td class="mlabels-left">
  1628. <table class="memname">
  1629. <tr>
  1630. <td class="memname">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::sIdentity </td>
  1631. <td>(</td>
  1632. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1633. <td></td>
  1634. </tr>
  1635. </table>
  1636. </td>
  1637. <td class="mlabels-right">
  1638. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  1639. </tr>
  1640. </table>
  1641. </div><div class="memdoc">
  1642. <dl class="section return"><dt>Returns</dt><dd>[1, 0, 0, 0] (or in storage format <a class="el" href="class_quat.html">Quat(0, 0, 0, 1)</a>) </dd></dl>
  1643. </div>
  1644. </div>
  1645. <a id="afc3276d69ac8713afddf3cf970c27371" name="afc3276d69ac8713afddf3cf970c27371"></a>
  1646. <h2 class="memtitle"><span class="permalink"><a href="#afc3276d69ac8713afddf3cf970c27371">&#9670;&#160;</a></span>SLERP()</h2>
  1647. <div class="memitem">
  1648. <div class="memproto">
  1649. <table class="memname">
  1650. <tr>
  1651. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::SLERP </td>
  1652. <td>(</td>
  1653. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inDestination</em></span>, </td>
  1654. </tr>
  1655. <tr>
  1656. <td class="paramkey"></td>
  1657. <td></td>
  1658. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inFraction</em></span>&#160;) const</td>
  1659. </tr>
  1660. </table>
  1661. </div><div class="memdoc">
  1662. <p>Spherical linear interpolation between two quaternions. </p><dl class="params"><dt>Parameters</dt><dd>
  1663. <table class="params">
  1664. <tr><td class="paramname">inFraction</td><td>is in the range [0, 1] </td></tr>
  1665. <tr><td class="paramname">inDestination</td><td>The destination quaternion </td></tr>
  1666. </table>
  1667. </dd>
  1668. </dl>
  1669. <dl class="section return"><dt>Returns</dt><dd>When fraction is zero this quaternion is returned, when fraction is 1 inDestination is returned. When fraction is between 0 and 1 an interpolation along the shortest path is returned. </dd></dl>
  1670. </div>
  1671. </div>
  1672. <a id="a60c11537faec1e7517a957f02afc4b6d" name="a60c11537faec1e7517a957f02afc4b6d"></a>
  1673. <h2 class="memtitle"><span class="permalink"><a href="#a60c11537faec1e7517a957f02afc4b6d">&#9670;&#160;</a></span>sLoadFloat3Unsafe()</h2>
  1674. <div class="memitem">
  1675. <div class="memproto">
  1676. <table class="mlabels">
  1677. <tr>
  1678. <td class="mlabels-left">
  1679. <table class="memname">
  1680. <tr>
  1681. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sLoadFloat3Unsafe </td>
  1682. <td>(</td>
  1683. <td class="paramtype">const <a class="el" href="class_float3.html">Float3</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inV</em></span></td><td>)</td>
  1684. <td></td>
  1685. </tr>
  1686. </table>
  1687. </td>
  1688. <td class="mlabels-right">
  1689. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  1690. </tr>
  1691. </table>
  1692. </div><div class="memdoc">
  1693. <p>Load 3 floats from memory (X, Y and Z component and then calculates W) reads 32 bits extra which it doesn't use. </p>
  1694. </div>
  1695. </div>
  1696. <a id="a192ad561dca0797134dab8f8c2e59e29" name="a192ad561dca0797134dab8f8c2e59e29"></a>
  1697. <h2 class="memtitle"><span class="permalink"><a href="#a192ad561dca0797134dab8f8c2e59e29">&#9670;&#160;</a></span>sMultiplyImaginary()</h2>
  1698. <div class="memitem">
  1699. <div class="memproto">
  1700. <table class="mlabels">
  1701. <tr>
  1702. <td class="mlabels-left">
  1703. <table class="memname">
  1704. <tr>
  1705. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sMultiplyImaginary </td>
  1706. <td>(</td>
  1707. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inLHS</em></span>, </td>
  1708. </tr>
  1709. <tr>
  1710. <td class="paramkey"></td>
  1711. <td></td>
  1712. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span>&#160;)</td>
  1713. </tr>
  1714. </table>
  1715. </td>
  1716. <td class="mlabels-right">
  1717. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  1718. </tr>
  1719. </table>
  1720. </div><div class="memdoc">
  1721. <p>Multiply a quaternion with imaginary components and no real component (x, y, z, 0) with a quaternion. </p>
  1722. </div>
  1723. </div>
  1724. <a id="a0686810998da92e9ab857b314b282d91" name="a0686810998da92e9ab857b314b282d91"></a>
  1725. <h2 class="memtitle"><span class="permalink"><a href="#a0686810998da92e9ab857b314b282d91">&#9670;&#160;</a></span>sRandom()</h2>
  1726. <div class="memitem">
  1727. <div class="memproto">
  1728. <div class="memtemplate">
  1729. template&lt;class Random &gt; </div>
  1730. <table class="mlabels">
  1731. <tr>
  1732. <td class="mlabels-left">
  1733. <table class="memname">
  1734. <tr>
  1735. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sRandom </td>
  1736. <td>(</td>
  1737. <td class="paramtype">Random &amp;</td> <td class="paramname"><span class="paramname"><em>inRandom</em></span></td><td>)</td>
  1738. <td></td>
  1739. </tr>
  1740. </table>
  1741. </td>
  1742. <td class="mlabels-right">
  1743. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  1744. </tr>
  1745. </table>
  1746. </div><div class="memdoc">
  1747. <p>Random unit quaternion. </p>
  1748. </div>
  1749. </div>
  1750. <a id="a3ac594bf7be610138e90735ae99ff8e9" name="a3ac594bf7be610138e90735ae99ff8e9"></a>
  1751. <h2 class="memtitle"><span class="permalink"><a href="#a3ac594bf7be610138e90735ae99ff8e9">&#9670;&#160;</a></span>sRotation()</h2>
  1752. <div class="memitem">
  1753. <div class="memproto">
  1754. <table class="mlabels">
  1755. <tr>
  1756. <td class="mlabels-left">
  1757. <table class="memname">
  1758. <tr>
  1759. <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sRotation </td>
  1760. <td>(</td>
  1761. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inAxis</em></span>, </td>
  1762. </tr>
  1763. <tr>
  1764. <td class="paramkey"></td>
  1765. <td></td>
  1766. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inAngle</em></span>&#160;)</td>
  1767. </tr>
  1768. </table>
  1769. </td>
  1770. <td class="mlabels-right">
  1771. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  1772. </tr>
  1773. </table>
  1774. </div><div class="memdoc">
  1775. <p>Rotation from axis and angle. </p>
  1776. </div>
  1777. </div>
  1778. <a id="ae95e7b6c9f4167b91b674a696c681c6e" name="ae95e7b6c9f4167b91b674a696c681c6e"></a>
  1779. <h2 class="memtitle"><span class="permalink"><a href="#ae95e7b6c9f4167b91b674a696c681c6e">&#9670;&#160;</a></span>StoreFloat3()</h2>
  1780. <div class="memitem">
  1781. <div class="memproto">
  1782. <table class="memname">
  1783. <tr>
  1784. <td class="memname">void Quat::StoreFloat3 </td>
  1785. <td>(</td>
  1786. <td class="paramtype"><a class="el" href="class_float3.html">Float3</a> *</td> <td class="paramname"><span class="paramname"><em>outV</em></span></td><td>)</td>
  1787. <td> const</td>
  1788. </tr>
  1789. </table>
  1790. </div><div class="memdoc">
  1791. <p>Store as 3 floats to memory (X, Y and Z component). Ensures that W is positive before storing. </p>
  1792. </div>
  1793. </div>
  1794. <a id="a7c1fba108633b262e9011b39a92b490b" name="a7c1fba108633b262e9011b39a92b490b"></a>
  1795. <h2 class="memtitle"><span class="permalink"><a href="#a7c1fba108633b262e9011b39a92b490b">&#9670;&#160;</a></span>StoreFloat4()</h2>
  1796. <div class="memitem">
  1797. <div class="memproto">
  1798. <table class="memname">
  1799. <tr>
  1800. <td class="memname">void Quat::StoreFloat4 </td>
  1801. <td>(</td>
  1802. <td class="paramtype"><a class="el" href="class_float4.html">Float4</a> *</td> <td class="paramname"><span class="paramname"><em>outV</em></span></td><td>)</td>
  1803. <td> const</td>
  1804. </tr>
  1805. </table>
  1806. </div><div class="memdoc">
  1807. <p>Store as 4 floats. </p>
  1808. </div>
  1809. </div>
  1810. <a id="aed30764b796cee2d0169b126c3839bc1" name="aed30764b796cee2d0169b126c3839bc1"></a>
  1811. <h2 class="memtitle"><span class="permalink"><a href="#aed30764b796cee2d0169b126c3839bc1">&#9670;&#160;</a></span>sZero()</h2>
  1812. <div class="memitem">
  1813. <div class="memproto">
  1814. <table class="mlabels">
  1815. <tr>
  1816. <td class="mlabels-left">
  1817. <table class="memname">
  1818. <tr>
  1819. <td class="memname">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::sZero </td>
  1820. <td>(</td>
  1821. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1822. <td></td>
  1823. </tr>
  1824. </table>
  1825. </td>
  1826. <td class="mlabels-right">
  1827. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  1828. </tr>
  1829. </table>
  1830. </div><div class="memdoc">
  1831. <dl class="section return"><dt>Returns</dt><dd>[0, 0, 0, 0] </dd></dl>
  1832. </div>
  1833. </div>
  1834. <h2 class="groupheader">Friends And Related Symbol Documentation</h2>
  1835. <a id="a889abe46c8a28cfafa2a20492ecb9b3a" name="a889abe46c8a28cfafa2a20492ecb9b3a"></a>
  1836. <h2 class="memtitle"><span class="permalink"><a href="#a889abe46c8a28cfafa2a20492ecb9b3a">&#9670;&#160;</a></span>operator*</h2>
  1837. <div class="memitem">
  1838. <div class="memproto">
  1839. <table class="mlabels">
  1840. <tr>
  1841. <td class="mlabels-left">
  1842. <table class="memname">
  1843. <tr>
  1844. <td class="memname"><a class="el" href="class_quat.html">Quat</a> operator* </td>
  1845. <td>(</td>
  1846. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span>, </td>
  1847. </tr>
  1848. <tr>
  1849. <td class="paramkey"></td>
  1850. <td></td>
  1851. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRHS</em></span>&#160;)</td>
  1852. </tr>
  1853. </table>
  1854. </td>
  1855. <td class="mlabels-right">
  1856. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  1857. </tr>
  1858. </table>
  1859. </div><div class="memdoc">
  1860. </div>
  1861. </div>
  1862. <a id="add2e8fbe3d49728e6cd82834f0f2ef3c" name="add2e8fbe3d49728e6cd82834f0f2ef3c"></a>
  1863. <h2 class="memtitle"><span class="permalink"><a href="#add2e8fbe3d49728e6cd82834f0f2ef3c">&#9670;&#160;</a></span>operator&lt;&lt;</h2>
  1864. <div class="memitem">
  1865. <div class="memproto">
  1866. <table class="mlabels">
  1867. <tr>
  1868. <td class="mlabels-left">
  1869. <table class="memname">
  1870. <tr>
  1871. <td class="memname">ostream &amp; operator&lt;&lt; </td>
  1872. <td>(</td>
  1873. <td class="paramtype">ostream &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span>, </td>
  1874. </tr>
  1875. <tr>
  1876. <td class="paramkey"></td>
  1877. <td></td>
  1878. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inQ</em></span>&#160;)</td>
  1879. </tr>
  1880. </table>
  1881. </td>
  1882. <td class="mlabels-right">
  1883. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  1884. </tr>
  1885. </table>
  1886. </div><div class="memdoc">
  1887. <p>To String. </p>
  1888. </div>
  1889. </div>
  1890. <h2 class="groupheader">Member Data Documentation</h2>
  1891. <a id="afad087a5997d1318f544b5c9819c4d9b" name="afad087a5997d1318f544b5c9819c4d9b"></a>
  1892. <h2 class="memtitle"><span class="permalink"><a href="#afad087a5997d1318f544b5c9819c4d9b">&#9670;&#160;</a></span>mValue</h2>
  1893. <div class="memitem">
  1894. <div class="memproto">
  1895. <table class="memname">
  1896. <tr>
  1897. <td class="memname"><a class="el" href="class_vec4.html">Vec4</a> Quat::mValue</td>
  1898. </tr>
  1899. </table>
  1900. </div><div class="memdoc">
  1901. <p>4 vector that stores [x, y, z, w] parts of the quaternion </p>
  1902. </div>
  1903. </div>
  1904. <hr/>The documentation for this class was generated from the following files:<ul>
  1905. <li>Jolt/Math/<a class="el" href="_quat_8h_source.html">Quat.h</a></li>
  1906. <li>Jolt/Math/<a class="el" href="_quat_8inl_source.html">Quat.inl</a></li>
  1907. </ul>
  1908. </div><!-- contents -->
  1909. </div><!-- doc-content -->
  1910. <!-- start footer part -->
  1911. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  1912. <ul>
  1913. <li class="navelem"><a class="el" href="class_quat.html">Quat</a></li>
  1914. <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
  1915. </ul>
  1916. </div>
  1917. </body>
  1918. </html>