| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=11"/>
- <meta name="generator" content="Doxygen 1.12.0"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>Jolt Physics: Quat Class Reference</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <script type="text/javascript" src="clipboard.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="cookie.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <script type="text/x-mathjax-config">
- MathJax.Hub.Config({
- extensions: ["tex2jax.js"],
- jax: ["input/TeX","output/HTML-CSS"],
- });
- </script>
- <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
- <td id="projectalign">
- <div id="projectname">Jolt Physics
- </div>
- <div id="projectbrief">A multi core friendly Game Physics Engine</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.12.0 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- var searchBox = new SearchBox("searchBox", "search/",'.html');
- /* @license-end */
- </script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() { codefold.init(0); });
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() {
- initMenu('',true,false,'search.php','Search',true);
- $(function() { init_search(); });
- });
- /* @license-end */
- </script>
- <div id="main-nav"></div>
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function(){initNavTree('class_quat.html',''); initResizable(true); });
- /* @license-end */
- </script>
- <div id="doc-content">
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <div id="MSearchResults">
- <div class="SRPage">
- <div id="SRIndex">
- <div id="SRResults"></div>
- <div class="SRStatus" id="Loading">Loading...</div>
- <div class="SRStatus" id="Searching">Searching...</div>
- <div class="SRStatus" id="NoMatches">No Matches</div>
- </div>
- </div>
- </div>
- </div>
- <div class="header">
- <div class="summary">
- <a href="#pub-methods">Public Member Functions</a> |
- <a href="#pub-static-methods">Static Public Member Functions</a> |
- <a href="#pub-attribs">Public Attributes</a> |
- <a href="#friends">Friends</a> |
- <a href="class_quat-members.html">List of all members</a> </div>
- <div class="headertitle"><div class="title">Quat Class Reference</div></div>
- </div><!--header-->
- <div class="contents">
- <p><code>#include <<a class="el" href="_quat_8h_source.html">Quat.h</a>></code></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a618a8eb64122263b8c64109f03ac47b5" id="r_a618a8eb64122263b8c64109f03ac47b5"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a618a8eb64122263b8c64109f03ac47b5">GetAxisAngle</a> (<a class="el" href="class_vec3.html">Vec3</a> &outAxis, float &outAngle) const</td></tr>
- <tr class="memdesc:a618a8eb64122263b8c64109f03ac47b5"><td class="mdescLeft"> </td><td class="mdescRight">Get axis and angle that represents this quaternion, outAngle will always be in the range \([0, \pi]\). <br /></td></tr>
- <tr class="separator:a618a8eb64122263b8c64109f03ac47b5"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae0e71415ee746c38c27b04e7dbc9b4ed" id="r_ae0e71415ee746c38c27b04e7dbc9b4ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_vec3.html">Vec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae0e71415ee746c38c27b04e7dbc9b4ed">GetEulerAngles</a> () const</td></tr>
- <tr class="memdesc:ae0e71415ee746c38c27b04e7dbc9b4ed"><td class="mdescLeft"> </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>
- <tr class="separator:ae0e71415ee746c38c27b04e7dbc9b4ed"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="memdesc:a646b3edebee182d86159eed987ba91a0"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a vector by this quaternion. <br /></td></tr>
- <tr class="separator:a646b3edebee182d86159eed987ba91a0"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="memdesc:a108350bfce9aa53b1af87fbe2698f6f4"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a vector by the inverse of this quaternion. <br /></td></tr>
- <tr class="separator:a108350bfce9aa53b1af87fbe2698f6f4"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad591c3ca827733b3be275ffaf808e838">RotateAxisX</a> () const</td></tr>
- <tr class="memdesc:ad591c3ca827733b3be275ffaf808e838"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a the vector (1, 0, 0) with this quaternion. <br /></td></tr>
- <tr class="separator:ad591c3ca827733b3be275ffaf808e838"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#adb1d1a70ed64c0a6fadc849126306706">RotateAxisY</a> () const</td></tr>
- <tr class="memdesc:adb1d1a70ed64c0a6fadc849126306706"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a the vector (0, 1, 0) with this quaternion. <br /></td></tr>
- <tr class="separator:adb1d1a70ed64c0a6fadc849126306706"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab226b2147a748e53008556bcf1a3cd76">RotateAxisZ</a> () const</td></tr>
- <tr class="memdesc:ab226b2147a748e53008556bcf1a3cd76"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a the vector (0, 0, 1) with this quaternion. <br /></td></tr>
- <tr class="separator:ab226b2147a748e53008556bcf1a3cd76"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aa95ff0fd4a249749b023c32a5be3a44f" id="r_aa95ff0fd4a249749b023c32a5be3a44f"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float </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>
- <tr class="memdesc:aa95ff0fd4a249749b023c32a5be3a44f"><td class="mdescLeft"> </td><td class="mdescRight">Dot product. <br /></td></tr>
- <tr class="separator:aa95ff0fd4a249749b023c32a5be3a44f"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac69dfd8cdf79a19b8c3f385125ff5ddc">Conjugated</a> () const</td></tr>
- <tr class="memdesc:ac69dfd8cdf79a19b8c3f385125ff5ddc"><td class="mdescLeft"> </td><td class="mdescRight">The conjugate [w, -x, -y, -z] is the same as the inverse for unit quaternions. <br /></td></tr>
- <tr class="separator:ac69dfd8cdf79a19b8c3f385125ff5ddc"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac04a00570e1a5e96d49398d40d493bf3">Inversed</a> () const</td></tr>
- <tr class="memdesc:ac04a00570e1a5e96d49398d40d493bf3"><td class="mdescLeft"> </td><td class="mdescRight">Get inverse quaternion. <br /></td></tr>
- <tr class="separator:ac04a00570e1a5e96d49398d40d493bf3"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9f563ca8c8a8b71a0aa340d12080c2ef">EnsureWPositive</a> () const</td></tr>
- <tr class="memdesc:a9f563ca8c8a8b71a0aa340d12080c2ef"><td class="mdescLeft"> </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>
- <tr class="separator:a9f563ca8c8a8b71a0aa340d12080c2ef"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#abba5ae611cba89b67e967945ffe32c8f">GetPerpendicular</a> () const</td></tr>
- <tr class="memdesc:abba5ae611cba89b67e967945ffe32c8f"><td class="mdescLeft"> </td><td class="mdescRight">Get a quaternion that is perpendicular to this quaternion. <br /></td></tr>
- <tr class="separator:abba5ae611cba89b67e967945ffe32c8f"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac72ff53fa4780399aa0755e2ca31b450" id="r_ac72ff53fa4780399aa0755e2ca31b450"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float </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>
- <tr class="memdesc:ac72ff53fa4780399aa0755e2ca31b450"><td class="mdescLeft"> </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>
- <tr class="separator:ac72ff53fa4780399aa0755e2ca31b450"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="separator:aa30f29eff5df0de717de979bf3aae295"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7bb8b016622e5ad8f361c52f9037f1aa" id="r_a7bb8b016622e5ad8f361c52f9037f1aa"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7bb8b016622e5ad8f361c52f9037f1aa">GetSwingTwist</a> (<a class="el" href="class_quat.html">Quat</a> &outSwing, <a class="el" href="class_quat.html">Quat</a> &outTwist) const</td></tr>
- <tr class="separator:a7bb8b016622e5ad8f361c52f9037f1aa"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="separator:a54dc8061046dd6ba3fb3a1965cf7319c"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="separator:afc3276d69ac8713afddf3cf970c27371"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae95e7b6c9f4167b91b674a696c681c6e" id="r_ae95e7b6c9f4167b91b674a696c681c6e"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </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>
- <tr class="memdesc:ae95e7b6c9f4167b91b674a696c681c6e"><td class="mdescLeft"> </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>
- <tr class="separator:ae95e7b6c9f4167b91b674a696c681c6e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7c1fba108633b262e9011b39a92b490b" id="r_a7c1fba108633b262e9011b39a92b490b"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </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>
- <tr class="memdesc:a7c1fba108633b262e9011b39a92b490b"><td class="mdescLeft"> </td><td class="mdescRight">Store as 4 floats. <br /></td></tr>
- <tr class="separator:a7c1fba108633b262e9011b39a92b490b"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5e844d3510c68831f222de05d92669b2">CompressUnitQuat</a> () const</td></tr>
- <tr class="memdesc:a5e844d3510c68831f222de05d92669b2"><td class="mdescLeft"> </td><td class="mdescRight">Compress a unit quaternion to a 32 bit value, precision is around 0.5 degree. <br /></td></tr>
- <tr class="separator:a5e844d3510c68831f222de05d92669b2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr><td colspan="2"><div class="groupHeader">Constructors</div></td></tr>
- <tr class="memitem:aab09b7638f6936a9ad7a1e4ffce606e8" id="r_aab09b7638f6936a9ad7a1e4ffce606e8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#aab09b7638f6936a9ad7a1e4ffce606e8">Quat</a> ()=default</td></tr>
- <tr class="memdesc:aab09b7638f6936a9ad7a1e4ffce606e8"><td class="mdescLeft"> </td><td class="mdescRight">Intentionally not initialized for performance reasons. <br /></td></tr>
- <tr class="separator:aab09b7638f6936a9ad7a1e4ffce606e8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0657861b58c5638d657b9232d0872789" id="r_a0657861b58c5638d657b9232d0872789"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0657861b58c5638d657b9232d0872789">Quat</a> (const <a class="el" href="class_quat.html">Quat</a> &inRHS)=default</td></tr>
- <tr class="separator:a0657861b58c5638d657b9232d0872789"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4a0da4e3fde81586973da99956f7d51c" id="r_a4a0da4e3fde81586973da99956f7d51c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_quat.html">Quat</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4a0da4e3fde81586973da99956f7d51c">operator=</a> (const <a class="el" href="class_quat.html">Quat</a> &inRHS)=default</td></tr>
- <tr class="separator:a4a0da4e3fde81586973da99956f7d51c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:add07307f26b40e8ad4dc1bad89e837b9" id="r_add07307f26b40e8ad4dc1bad89e837b9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#add07307f26b40e8ad4dc1bad89e837b9">Quat</a> (float inX, float inY, float inZ, float inW)</td></tr>
- <tr class="separator:add07307f26b40e8ad4dc1bad89e837b9"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9b178bf2445e7c1e97e2fdf02c919554" id="r_a9b178bf2445e7c1e97e2fdf02c919554"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9b178bf2445e7c1e97e2fdf02c919554">Quat</a> (const <a class="el" href="class_float4.html">Float4</a> &inV)</td></tr>
- <tr class="separator:a9b178bf2445e7c1e97e2fdf02c919554"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aa27e46b0f37c06e419e552ec8473abd1" id="r_aa27e46b0f37c06e419e552ec8473abd1"><td class="memItemLeft" align="right" valign="top"> </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>
- <tr class="separator:aa27e46b0f37c06e419e552ec8473abd1"><td class="memSeparator" colspan="2"> </td></tr>
- <tr><td colspan="2"><div class="groupHeader">Tests</div></td></tr>
- <tr class="memitem:a55ec695a492daa028921cca4740db11b" id="r_a55ec695a492daa028921cca4740db11b"><td class="memItemLeft" align="right" valign="top">bool </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>
- <tr class="memdesc:a55ec695a492daa028921cca4740db11b"><td class="mdescLeft"> </td><td class="mdescRight">Check if two quaternions are exactly equal. <br /></td></tr>
- <tr class="separator:a55ec695a492daa028921cca4740db11b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a23c4e00d9d6905c284c728cf3e184934" id="r_a23c4e00d9d6905c284c728cf3e184934"><td class="memItemLeft" align="right" valign="top">bool </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>
- <tr class="memdesc:a23c4e00d9d6905c284c728cf3e184934"><td class="mdescLeft"> </td><td class="mdescRight">Check if two quaternions are different. <br /></td></tr>
- <tr class="separator:a23c4e00d9d6905c284c728cf3e184934"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9c0afa78ae80b13a6c8adf1240a7c95e" id="r_a9c0afa78ae80b13a6c8adf1240a7c95e"><td class="memItemLeft" align="right" valign="top">bool </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>
- <tr class="memdesc:a9c0afa78ae80b13a6c8adf1240a7c95e"><td class="mdescLeft"> </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>
- <tr class="separator:a9c0afa78ae80b13a6c8adf1240a7c95e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae628a9685f0be008f18752ea9302b4e4" id="r_ae628a9685f0be008f18752ea9302b4e4"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae628a9685f0be008f18752ea9302b4e4">IsNormalized</a> (float inTolerance=1.0e-5f) const</td></tr>
- <tr class="memdesc:ae628a9685f0be008f18752ea9302b4e4"><td class="mdescLeft"> </td><td class="mdescRight">If the length of this quaternion is 1 +/- inTolerance. <br /></td></tr>
- <tr class="separator:ae628a9685f0be008f18752ea9302b4e4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a62b95b1c1d36ecbd6f9732ca4789a7bf" id="r_a62b95b1c1d36ecbd6f9732ca4789a7bf"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a62b95b1c1d36ecbd6f9732ca4789a7bf">IsNaN</a> () const</td></tr>
- <tr class="memdesc:a62b95b1c1d36ecbd6f9732ca4789a7bf"><td class="mdescLeft"> </td><td class="mdescRight">If any component of this quaternion is a NaN (not a number) <br /></td></tr>
- <tr class="separator:a62b95b1c1d36ecbd6f9732ca4789a7bf"><td class="memSeparator" colspan="2"> </td></tr>
- <tr><td colspan="2"><div class="groupHeader">Get components</div></td></tr>
- <tr class="memitem:a3fb43a7bca4b20ce7573030fd826aa96" id="r_a3fb43a7bca4b20ce7573030fd826aa96"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3fb43a7bca4b20ce7573030fd826aa96">GetX</a> () const</td></tr>
- <tr class="memdesc:a3fb43a7bca4b20ce7573030fd826aa96"><td class="mdescLeft"> </td><td class="mdescRight">Get X component (imaginary part i) <br /></td></tr>
- <tr class="separator:a3fb43a7bca4b20ce7573030fd826aa96"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a21f44684684b475d9f5d02ed9c580def" id="r_a21f44684684b475d9f5d02ed9c580def"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float </td><td class="memItemRight" valign="bottom"><a class="el" href="#a21f44684684b475d9f5d02ed9c580def">GetY</a> () const</td></tr>
- <tr class="memdesc:a21f44684684b475d9f5d02ed9c580def"><td class="mdescLeft"> </td><td class="mdescRight">Get Y component (imaginary part j) <br /></td></tr>
- <tr class="separator:a21f44684684b475d9f5d02ed9c580def"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a38dfc20f7628eee4492125a41ad91764" id="r_a38dfc20f7628eee4492125a41ad91764"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float </td><td class="memItemRight" valign="bottom"><a class="el" href="#a38dfc20f7628eee4492125a41ad91764">GetZ</a> () const</td></tr>
- <tr class="memdesc:a38dfc20f7628eee4492125a41ad91764"><td class="mdescLeft"> </td><td class="mdescRight">Get Z component (imaginary part k) <br /></td></tr>
- <tr class="separator:a38dfc20f7628eee4492125a41ad91764"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a13d0159a54a94e6a90dc5952f454b09e" id="r_a13d0159a54a94e6a90dc5952f454b09e"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float </td><td class="memItemRight" valign="bottom"><a class="el" href="#a13d0159a54a94e6a90dc5952f454b09e">GetW</a> () const</td></tr>
- <tr class="memdesc:a13d0159a54a94e6a90dc5952f454b09e"><td class="mdescLeft"> </td><td class="mdescRight">Get W component (real part) <br /></td></tr>
- <tr class="separator:a13d0159a54a94e6a90dc5952f454b09e"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#afa7fe10bf8a457fb2d524791ccd79ec4">GetXYZ</a> () const</td></tr>
- <tr class="memdesc:afa7fe10bf8a457fb2d524791ccd79ec4"><td class="mdescLeft"> </td><td class="mdescRight">Get the imaginary part of the quaternion. <br /></td></tr>
- <tr class="separator:afa7fe10bf8a457fb2d524791ccd79ec4"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7800c0c4cb017273d86793d8a09bf136">GetXYZW</a> () const</td></tr>
- <tr class="memdesc:a7800c0c4cb017273d86793d8a09bf136"><td class="mdescLeft"> </td><td class="mdescRight">Get the quaternion as a <a class="el" href="class_vec4.html">Vec4</a>. <br /></td></tr>
- <tr class="separator:a7800c0c4cb017273d86793d8a09bf136"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae53457812ce9ffa5fb7b6b8a3c5c97e5" id="r_ae53457812ce9ffa5fb7b6b8a3c5c97e5"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae53457812ce9ffa5fb7b6b8a3c5c97e5">SetX</a> (float inX)</td></tr>
- <tr class="memdesc:ae53457812ce9ffa5fb7b6b8a3c5c97e5"><td class="mdescLeft"> </td><td class="mdescRight">Set individual components. <br /></td></tr>
- <tr class="separator:ae53457812ce9ffa5fb7b6b8a3c5c97e5"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4a4db6760750a34c25199455c07b6bb9" id="r_a4a4db6760750a34c25199455c07b6bb9"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4a4db6760750a34c25199455c07b6bb9">SetY</a> (float inY)</td></tr>
- <tr class="separator:a4a4db6760750a34c25199455c07b6bb9"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a3f494dde1e2e0bc50dbc2abd13210b23" id="r_a3f494dde1e2e0bc50dbc2abd13210b23"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3f494dde1e2e0bc50dbc2abd13210b23">SetZ</a> (float inZ)</td></tr>
- <tr class="separator:a3f494dde1e2e0bc50dbc2abd13210b23"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae32d59954e6b05258af7123c00141654" id="r_ae32d59954e6b05258af7123c00141654"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae32d59954e6b05258af7123c00141654">SetW</a> (float inW)</td></tr>
- <tr class="separator:ae32d59954e6b05258af7123c00141654"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9fb5be70301ba85a3292119d71a5e9c4" id="r_a9fb5be70301ba85a3292119d71a5e9c4"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9fb5be70301ba85a3292119d71a5e9c4">Set</a> (float inX, float inY, float inZ, float inW)</td></tr>
- <tr class="memdesc:a9fb5be70301ba85a3292119d71a5e9c4"><td class="mdescLeft"> </td><td class="mdescRight">Set all components. <br /></td></tr>
- <tr class="separator:a9fb5be70301ba85a3292119d71a5e9c4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr><td colspan="2"><div class="groupHeader">Length / normalization operations</div></td></tr>
- <tr class="memitem:a60f30c650e027a892e699c156c7eca67" id="r_a60f30c650e027a892e699c156c7eca67"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float </td><td class="memItemRight" valign="bottom"><a class="el" href="#a60f30c650e027a892e699c156c7eca67">LengthSq</a> () const</td></tr>
- <tr class="separator:a60f30c650e027a892e699c156c7eca67"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ab93ff288ad62172d343e11ce4fbf07d0" id="r_ab93ff288ad62172d343e11ce4fbf07d0"><td class="memItemLeft" align="right" valign="top">JPH_INLINE float </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab93ff288ad62172d343e11ce4fbf07d0">Length</a> () const</td></tr>
- <tr class="separator:ab93ff288ad62172d343e11ce4fbf07d0"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9d4b1ee8c4685a4589766e1c8cacc268">Normalized</a> () const</td></tr>
- <tr class="memdesc:a9d4b1ee8c4685a4589766e1c8cacc268"><td class="mdescLeft"> </td><td class="mdescRight">Normalize the quaternion (make it length 1) <br /></td></tr>
- <tr class="separator:a9d4b1ee8c4685a4589766e1c8cacc268"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
- Static Public Member Functions</h2></td></tr>
- <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> </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>
- <tr class="memdesc:a3ac594bf7be610138e90735ae99ff8e9"><td class="mdescLeft"> </td><td class="mdescRight">Rotation from axis and angle. <br /></td></tr>
- <tr class="separator:a3ac594bf7be610138e90735ae99ff8e9"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="separator:a7e32ae62e2b33bf30ba3c40f9e66bfed"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0686810998da92e9ab857b314b282d91" id="r_a0686810998da92e9ab857b314b282d91"><td class="memTemplParams" colspan="2">template<class Random > </td></tr>
- <tr class="memitem:a0686810998da92e9ab857b314b282d91"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="class_quat.html">Quat</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a0686810998da92e9ab857b314b282d91">sRandom</a> (Random &inRandom)</td></tr>
- <tr class="memdesc:a0686810998da92e9ab857b314b282d91"><td class="mdescLeft"> </td><td class="mdescRight">Random unit quaternion. <br /></td></tr>
- <tr class="separator:a0686810998da92e9ab857b314b282d91"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1ef2428c09a41f3d0549d216ecfca710" id="r_a1ef2428c09a41f3d0549d216ecfca710"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_quat.html">Quat</a> </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>
- <tr class="memdesc:a1ef2428c09a41f3d0549d216ecfca710"><td class="mdescLeft"> </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>
- <tr class="separator:a1ef2428c09a41f3d0549d216ecfca710"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="memdesc:a192ad561dca0797134dab8f8c2e59e29"><td class="mdescLeft"> </td><td class="mdescRight">Multiply a quaternion with imaginary components and no real component (x, y, z, 0) with a quaternion. <br /></td></tr>
- <tr class="separator:a192ad561dca0797134dab8f8c2e59e29"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a60c11537faec1e7517a957f02afc4b6d">sLoadFloat3Unsafe</a> (const <a class="el" href="class_float3.html">Float3</a> &inV)</td></tr>
- <tr class="memdesc:a60c11537faec1e7517a957f02afc4b6d"><td class="mdescLeft"> </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>
- <tr class="separator:a60c11537faec1e7517a957f02afc4b6d"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="memdesc:a820cff433aae6ef61bc681c942602a78"><td class="mdescLeft"> </td><td class="mdescRight">Decompress a unit quaternion from a 32 bit value. <br /></td></tr>
- <tr class="separator:a820cff433aae6ef61bc681c942602a78"><td class="memSeparator" colspan="2"> </td></tr>
- <tr><td colspan="2"><div class="groupHeader">Default quaternions</div></td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#aed30764b796cee2d0169b126c3839bc1">sZero</a> ()</td></tr>
- <tr class="separator:aed30764b796cee2d0169b126c3839bc1"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a73a43fe262fbbbc0b1872d238b972794">sIdentity</a> ()</td></tr>
- <tr class="separator:a73a43fe262fbbbc0b1872d238b972794"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
- Public Attributes</h2></td></tr>
- <tr class="memitem:afad087a5997d1318f544b5c9819c4d9b" id="r_afad087a5997d1318f544b5c9819c4d9b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_vec4.html">Vec4</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#afad087a5997d1318f544b5c9819c4d9b">mValue</a></td></tr>
- <tr class="memdesc:afad087a5997d1318f544b5c9819c4d9b"><td class="mdescLeft"> </td><td class="mdescRight">4 vector that stores [x, y, z, w] parts of the quaternion <br /></td></tr>
- <tr class="separator:afad087a5997d1318f544b5c9819c4d9b"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
- Friends</h2></td></tr>
- <tr class="memitem:add2e8fbe3d49728e6cd82834f0f2ef3c" id="r_add2e8fbe3d49728e6cd82834f0f2ef3c"><td class="memItemLeft" align="right" valign="top">ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="#add2e8fbe3d49728e6cd82834f0f2ef3c">operator<<</a> (ostream &inStream, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inQ)</td></tr>
- <tr class="memdesc:add2e8fbe3d49728e6cd82834f0f2ef3c"><td class="mdescLeft"> </td><td class="mdescRight">To String. <br /></td></tr>
- <tr class="separator:add2e8fbe3d49728e6cd82834f0f2ef3c"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader">Additions / multiplications</h2></td></tr>
- <tr class="memitem:a581ca135acfa86ebf00bb6e1636aef29" id="r_a581ca135acfa86ebf00bb6e1636aef29"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </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>
- <tr class="separator:a581ca135acfa86ebf00bb6e1636aef29"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8297012460ea2f4851ed1f0f80eeddb9" id="r_a8297012460ea2f4851ed1f0f80eeddb9"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </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>
- <tr class="separator:a8297012460ea2f4851ed1f0f80eeddb9"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ada769d2a82345ec6a2abd706216d46e2" id="r_ada769d2a82345ec6a2abd706216d46e2"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ada769d2a82345ec6a2abd706216d46e2">operator*=</a> (float inValue)</td></tr>
- <tr class="separator:ada769d2a82345ec6a2abd706216d46e2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:afc3765d179c478cf2c08d76bd9391bfa" id="r_afc3765d179c478cf2c08d76bd9391bfa"><td class="memItemLeft" align="right" valign="top">JPH_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="#afc3765d179c478cf2c08d76bd9391bfa">operator/=</a> (float inValue)</td></tr>
- <tr class="separator:afc3765d179c478cf2c08d76bd9391bfa"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#abdb3a55008ba319143df69f97b94d7e5">operator-</a> () const</td></tr>
- <tr class="separator:abdb3a55008ba319143df69f97b94d7e5"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="separator:a05bb92518353f7309399282af7e906e3"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="separator:a7c2cc189b41905f2d02154a2d4863e19"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </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>
- <tr class="separator:a4e344b30517b4411443b17078e5bb218"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae6b513e0018c4191b92eee8fb4594a5e">operator*</a> (float inValue) const</td></tr>
- <tr class="separator:ae6b513e0018c4191b92eee8fb4594a5e"><td class="memSeparator" colspan="2"> </td></tr>
- <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> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a022e859768c59cdbdef45cdacada80d2">operator/</a> (float inValue) const</td></tr>
- <tr class="separator:a022e859768c59cdbdef45cdacada80d2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a889abe46c8a28cfafa2a20492ecb9b3a" id="r_a889abe46c8a28cfafa2a20492ecb9b3a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_quat.html">Quat</a> </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>
- <tr class="separator:a889abe46c8a28cfafa2a20492ecb9b3a"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <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>
- <p>They are written as:</p>
- <p>\(q = w + x \: i + y \: j + z \: k\)</p>
- <p>or in vector notation:</p>
- <p>\(q = [w, v] = [w, x, y, z]\)</p>
- <p>Where:</p>
- <p>w = the real part v = the imaginary part, (x, y, z)</p>
- <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>
- <p>q = [cos(angle / 2), sin(angle / 2) * rotation_axis] </p>
- </div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
- <a id="aab09b7638f6936a9ad7a1e4ffce606e8" name="aab09b7638f6936a9ad7a1e4ffce606e8"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aab09b7638f6936a9ad7a1e4ffce606e8">◆ </a></span>Quat() <span class="overload">[1/5]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">Quat::Quat </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">default</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Intentionally not initialized for performance reasons. </p>
- </div>
- </div>
- <a id="a0657861b58c5638d657b9232d0872789" name="a0657861b58c5638d657b9232d0872789"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a0657861b58c5638d657b9232d0872789">◆ </a></span>Quat() <span class="overload">[2/5]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">Quat::Quat </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_quat.html">Quat</a> &</td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">default</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="add07307f26b40e8ad4dc1bad89e837b9" name="add07307f26b40e8ad4dc1bad89e837b9"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#add07307f26b40e8ad4dc1bad89e837b9">◆ </a></span>Quat() <span class="overload">[3/5]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">Quat::Quat </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inX</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inY</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inZ</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inW</em></span> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a9b178bf2445e7c1e97e2fdf02c919554" name="a9b178bf2445e7c1e97e2fdf02c919554"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a9b178bf2445e7c1e97e2fdf02c919554">◆ </a></span>Quat() <span class="overload">[4/5]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">Quat::Quat </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_float4.html">Float4</a> &</td> <td class="paramname"><span class="paramname"><em>inV</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="aa27e46b0f37c06e419e552ec8473abd1" name="aa27e46b0f37c06e419e552ec8473abd1"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aa27e46b0f37c06e419e552ec8473abd1">◆ </a></span>Quat() <span class="overload">[5/5]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">Quat::Quat </td>
- <td>(</td>
- <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>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <h2 class="groupheader">Member Function Documentation</h2>
- <a id="a5e844d3510c68831f222de05d92669b2" name="a5e844d3510c68831f222de05d92669b2"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a5e844d3510c68831f222de05d92669b2">◆ </a></span>CompressUnitQuat()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> Quat::CompressUnitQuat </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Compress a unit quaternion to a 32 bit value, precision is around 0.5 degree. </p>
- </div>
- </div>
- <a id="ac69dfd8cdf79a19b8c3f385125ff5ddc" name="ac69dfd8cdf79a19b8c3f385125ff5ddc"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ac69dfd8cdf79a19b8c3f385125ff5ddc">◆ </a></span>Conjugated()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::Conjugated </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>The conjugate [w, -x, -y, -z] is the same as the inverse for unit quaternions. </p>
- </div>
- </div>
- <a id="aa95ff0fd4a249749b023c32a5be3a44f" name="aa95ff0fd4a249749b023c32a5be3a44f"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aa95ff0fd4a249749b023c32a5be3a44f">◆ </a></span>Dot()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE float Quat::Dot </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Dot product. </p>
- </div>
- </div>
- <a id="a9f563ca8c8a8b71a0aa340d12080c2ef" name="a9f563ca8c8a8b71a0aa340d12080c2ef"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a9f563ca8c8a8b71a0aa340d12080c2ef">◆ </a></span>EnsureWPositive()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::EnsureWPositive </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <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>
- </div>
- </div>
- <a id="a618a8eb64122263b8c64109f03ac47b5" name="a618a8eb64122263b8c64109f03ac47b5"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a618a8eb64122263b8c64109f03ac47b5">◆ </a></span>GetAxisAngle()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void Quat::GetAxisAngle </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="class_vec3.html">Vec3</a> &</td> <td class="paramname"><span class="paramname"><em>outAxis</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float &</td> <td class="paramname"><span class="paramname"><em>outAngle</em></span> ) const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get axis and angle that represents this quaternion, outAngle will always be in the range \([0, \pi]\). </p>
- </div>
- </div>
- <a id="ae0e71415ee746c38c27b04e7dbc9b4ed" name="ae0e71415ee746c38c27b04e7dbc9b4ed"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae0e71415ee746c38c27b04e7dbc9b4ed">◆ </a></span>GetEulerAngles()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::GetEulerAngles </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Conversion to Euler angles. Rotation order is X then Y then Z (RotZ * RotY * RotX). Angles in radians. </p>
- </div>
- </div>
- <a id="abba5ae611cba89b67e967945ffe32c8f" name="abba5ae611cba89b67e967945ffe32c8f"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#abba5ae611cba89b67e967945ffe32c8f">◆ </a></span>GetPerpendicular()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::GetPerpendicular </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get a quaternion that is perpendicular to this quaternion. </p>
- </div>
- </div>
- <a id="ac72ff53fa4780399aa0755e2ca31b450" name="ac72ff53fa4780399aa0755e2ca31b450"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ac72ff53fa4780399aa0755e2ca31b450">◆ </a></span>GetRotationAngle()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE float Quat::GetRotationAngle </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <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>
- </div>
- </div>
- <a id="a7bb8b016622e5ad8f361c52f9037f1aa" name="a7bb8b016622e5ad8f361c52f9037f1aa"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a7bb8b016622e5ad8f361c52f9037f1aa">◆ </a></span>GetSwingTwist()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void Quat::GetSwingTwist </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="class_quat.html">Quat</a> &</td> <td class="paramname"><span class="paramname"><em>outSwing</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="class_quat.html">Quat</a> &</td> <td class="paramname"><span class="paramname"><em>outTwist</em></span> ) const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Decomposes quaternion into swing and twist component:</p>
- <p>\(q = q_{swing} \: q_{twist}\)</p>
- <p>where \(q_{swing} \: \hat{x} = q_{twist} \: \hat{y} = q_{twist} \: \hat{z} = 0\)</p>
- <p>In other words:</p>
- <ul>
- <li>\(q_{twist}\) only rotates around the X-axis.</li>
- <li>\(q_{swing}\) only rotates around the Y and Z-axis.</li>
- </ul>
- <dl class="section see"><dt>See also</dt><dd>Gino van den Bergen - Rotational Joint Limits in Quaternion Space - GDC 2016 </dd></dl>
- </div>
- </div>
- <a id="aa30f29eff5df0de717de979bf3aae295" name="aa30f29eff5df0de717de979bf3aae295"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aa30f29eff5df0de717de979bf3aae295">◆ </a></span>GetTwist()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::GetTwist </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Swing Twist Decomposition: any quaternion can be split up as:</p>
- <p class="formulaDsp">
- \[q = q_{swing} \: q_{twist}\]
- </p>
- <p>where \(q_{twist}\) rotates only around axis v.</p>
- <p>\(q_{twist}\) is:</p>
- <p class="formulaDsp">
- \[q_{twist} = \frac{[q_w, q_{ijk} \cdot v \: v]}{\left|[q_w, q_{ijk} \cdot v \: v]\right|}\]
- </p>
- <p>where q_w is the real part of the quaternion and q_i the imaginary part (a 3 vector).</p>
- <p>The swing can then be calculated as:</p>
- <p class="formulaDsp">
- \[q_{swing} = q \: q_{twist}^* \]
- </p>
- <p>Where \(q_{twist}^*\) = complex conjugate of \(q_{twist}\) </p>
- </div>
- </div>
- <a id="a13d0159a54a94e6a90dc5952f454b09e" name="a13d0159a54a94e6a90dc5952f454b09e"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a13d0159a54a94e6a90dc5952f454b09e">◆ </a></span>GetW()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE float Quat::GetW </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get W component (real part) </p>
- </div>
- </div>
- <a id="a3fb43a7bca4b20ce7573030fd826aa96" name="a3fb43a7bca4b20ce7573030fd826aa96"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a3fb43a7bca4b20ce7573030fd826aa96">◆ </a></span>GetX()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE float Quat::GetX </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get X component (imaginary part i) </p>
- </div>
- </div>
- <a id="afa7fe10bf8a457fb2d524791ccd79ec4" name="afa7fe10bf8a457fb2d524791ccd79ec4"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afa7fe10bf8a457fb2d524791ccd79ec4">◆ </a></span>GetXYZ()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_vec3.html">Vec3</a> Quat::GetXYZ </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the imaginary part of the quaternion. </p>
- </div>
- </div>
- <a id="a7800c0c4cb017273d86793d8a09bf136" name="a7800c0c4cb017273d86793d8a09bf136"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a7800c0c4cb017273d86793d8a09bf136">◆ </a></span>GetXYZW()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_vec4.html">Vec4</a> Quat::GetXYZW </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the quaternion as a <a class="el" href="class_vec4.html">Vec4</a>. </p>
- </div>
- </div>
- <a id="a21f44684684b475d9f5d02ed9c580def" name="a21f44684684b475d9f5d02ed9c580def"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a21f44684684b475d9f5d02ed9c580def">◆ </a></span>GetY()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE float Quat::GetY </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get Y component (imaginary part j) </p>
- </div>
- </div>
- <a id="a38dfc20f7628eee4492125a41ad91764" name="a38dfc20f7628eee4492125a41ad91764"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a38dfc20f7628eee4492125a41ad91764">◆ </a></span>GetZ()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE float Quat::GetZ </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get Z component (imaginary part k) </p>
- </div>
- </div>
- <a id="ac04a00570e1a5e96d49398d40d493bf3" name="ac04a00570e1a5e96d49398d40d493bf3"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ac04a00570e1a5e96d49398d40d493bf3">◆ </a></span>Inversed()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::Inversed </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get inverse quaternion. </p>
- </div>
- </div>
- <a id="a108350bfce9aa53b1af87fbe2698f6f4" name="a108350bfce9aa53b1af87fbe2698f6f4"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a108350bfce9aa53b1af87fbe2698f6f4">◆ </a></span>InverseRotate()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::InverseRotate </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Rotate a vector by the inverse of this quaternion. </p>
- </div>
- </div>
- <a id="a9c0afa78ae80b13a6c8adf1240a7c95e" name="a9c0afa78ae80b13a6c8adf1240a7c95e"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a9c0afa78ae80b13a6c8adf1240a7c95e">◆ </a></span>IsClose()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool Quat::IsClose </td>
- <td>(</td>
- <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>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <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> ) const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>If this quaternion is close to inRHS. Note that q and -q represent the same rotation, this is not checked here. </p>
- </div>
- </div>
- <a id="a62b95b1c1d36ecbd6f9732ca4789a7bf" name="a62b95b1c1d36ecbd6f9732ca4789a7bf"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a62b95b1c1d36ecbd6f9732ca4789a7bf">◆ </a></span>IsNaN()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool Quat::IsNaN </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>If any component of this quaternion is a NaN (not a number) </p>
- </div>
- </div>
- <a id="ae628a9685f0be008f18752ea9302b4e4" name="ae628a9685f0be008f18752ea9302b4e4"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae628a9685f0be008f18752ea9302b4e4">◆ </a></span>IsNormalized()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool Quat::IsNormalized </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>If the length of this quaternion is 1 +/- inTolerance. </p>
- </div>
- </div>
- <a id="ab93ff288ad62172d343e11ce4fbf07d0" name="ab93ff288ad62172d343e11ce4fbf07d0"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ab93ff288ad62172d343e11ce4fbf07d0">◆ </a></span>Length()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE float Quat::Length </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Length of quaternion. </p><dl class="section return"><dt>Returns</dt><dd>Length of quaternion ( \(|v|\)) </dd></dl>
- </div>
- </div>
- <a id="a60f30c650e027a892e699c156c7eca67" name="a60f30c650e027a892e699c156c7eca67"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a60f30c650e027a892e699c156c7eca67">◆ </a></span>LengthSq()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE float Quat::LengthSq </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Squared length of quaternion. </p><dl class="section return"><dt>Returns</dt><dd>Squared length of quaternion ( \(|v|^2\)) </dd></dl>
- </div>
- </div>
- <a id="a54dc8061046dd6ba3fb3a1965cf7319c" name="a54dc8061046dd6ba3fb3a1965cf7319c"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a54dc8061046dd6ba3fb3a1965cf7319c">◆ </a></span>LERP()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::LERP </td>
- <td>(</td>
- <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>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inFraction</em></span> ) const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Linear interpolation between two quaternions (for small steps). </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">inFraction</td><td>is in the range [0, 1] </td></tr>
- <tr><td class="paramname">inDestination</td><td>The destination quaternion </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>(1 - inFraction) * this + fraction * inDestination </dd></dl>
- </div>
- </div>
- <a id="a9d4b1ee8c4685a4589766e1c8cacc268" name="a9d4b1ee8c4685a4589766e1c8cacc268"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a9d4b1ee8c4685a4589766e1c8cacc268">◆ </a></span>Normalized()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::Normalized </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Normalize the quaternion (make it length 1) </p>
- </div>
- </div>
- <a id="a23c4e00d9d6905c284c728cf3e184934" name="a23c4e00d9d6905c284c728cf3e184934"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a23c4e00d9d6905c284c728cf3e184934">◆ </a></span>operator!=()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool Quat::operator!= </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Check if two quaternions are different. </p>
- </div>
- </div>
- <a id="ae6b513e0018c4191b92eee8fb4594a5e" name="ae6b513e0018c4191b92eee8fb4594a5e"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae6b513e0018c4191b92eee8fb4594a5e">◆ </a></span>operator*() <span class="overload">[1/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator* </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a4e344b30517b4411443b17078e5bb218" name="a4e344b30517b4411443b17078e5bb218"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a4e344b30517b4411443b17078e5bb218">◆ </a></span>operator*() <span class="overload">[2/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <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>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a646b3edebee182d86159eed987ba91a0" name="a646b3edebee182d86159eed987ba91a0"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a646b3edebee182d86159eed987ba91a0">◆ </a></span>operator*() <span class="overload">[3/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::operator* </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Rotate a vector by this quaternion. </p>
- </div>
- </div>
- <a id="ada769d2a82345ec6a2abd706216d46e2" name="ada769d2a82345ec6a2abd706216d46e2"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ada769d2a82345ec6a2abd706216d46e2">◆ </a></span>operator*=()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::operator*= </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a05bb92518353f7309399282af7e906e3" name="a05bb92518353f7309399282af7e906e3"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a05bb92518353f7309399282af7e906e3">◆ </a></span>operator+()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator+ </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a581ca135acfa86ebf00bb6e1636aef29" name="a581ca135acfa86ebf00bb6e1636aef29"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a581ca135acfa86ebf00bb6e1636aef29">◆ </a></span>operator+=()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::operator+= </td>
- <td>(</td>
- <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>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="abdb3a55008ba319143df69f97b94d7e5" name="abdb3a55008ba319143df69f97b94d7e5"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#abdb3a55008ba319143df69f97b94d7e5">◆ </a></span>operator-() <span class="overload">[1/2]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator- </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a7c2cc189b41905f2d02154a2d4863e19" name="a7c2cc189b41905f2d02154a2d4863e19"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a7c2cc189b41905f2d02154a2d4863e19">◆ </a></span>operator-() <span class="overload">[2/2]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator- </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a8297012460ea2f4851ed1f0f80eeddb9" name="a8297012460ea2f4851ed1f0f80eeddb9"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a8297012460ea2f4851ed1f0f80eeddb9">◆ </a></span>operator-=()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::operator-= </td>
- <td>(</td>
- <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>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a022e859768c59cdbdef45cdacada80d2" name="a022e859768c59cdbdef45cdacada80d2"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a022e859768c59cdbdef45cdacada80d2">◆ </a></span>operator/()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::operator/ </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="afc3765d179c478cf2c08d76bd9391bfa" name="afc3765d179c478cf2c08d76bd9391bfa"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afc3765d179c478cf2c08d76bd9391bfa">◆ </a></span>operator/=()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::operator/= </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a4a0da4e3fde81586973da99956f7d51c" name="a4a0da4e3fde81586973da99956f7d51c"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a4a0da4e3fde81586973da99956f7d51c">◆ </a></span>operator=()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> & Quat::operator= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_quat.html">Quat</a> &</td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">default</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a55ec695a492daa028921cca4740db11b" name="a55ec695a492daa028921cca4740db11b"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a55ec695a492daa028921cca4740db11b">◆ </a></span>operator==()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool Quat::operator== </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Check if two quaternions are exactly equal. </p>
- </div>
- </div>
- <a id="ad591c3ca827733b3be275ffaf808e838" name="ad591c3ca827733b3be275ffaf808e838"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ad591c3ca827733b3be275ffaf808e838">◆ </a></span>RotateAxisX()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::RotateAxisX </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Rotate a the vector (1, 0, 0) with this quaternion. </p>
- </div>
- </div>
- <a id="adb1d1a70ed64c0a6fadc849126306706" name="adb1d1a70ed64c0a6fadc849126306706"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#adb1d1a70ed64c0a6fadc849126306706">◆ </a></span>RotateAxisY()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::RotateAxisY </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Rotate a the vector (0, 1, 0) with this quaternion. </p>
- </div>
- </div>
- <a id="ab226b2147a748e53008556bcf1a3cd76" name="ab226b2147a748e53008556bcf1a3cd76"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ab226b2147a748e53008556bcf1a3cd76">◆ </a></span>RotateAxisZ()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> Quat::RotateAxisZ </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Rotate a the vector (0, 0, 1) with this quaternion. </p>
- </div>
- </div>
- <a id="a820cff433aae6ef61bc681c942602a78" name="a820cff433aae6ef61bc681c942602a78"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a820cff433aae6ef61bc681c942602a78">◆ </a></span>sDecompressUnitQuat()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::sDecompressUnitQuat </td>
- <td>(</td>
- <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>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Decompress a unit quaternion from a 32 bit value. </p>
- </div>
- </div>
- <a id="a9fb5be70301ba85a3292119d71a5e9c4" name="a9fb5be70301ba85a3292119d71a5e9c4"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a9fb5be70301ba85a3292119d71a5e9c4">◆ </a></span>Set()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::Set </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inX</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inY</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inZ</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inW</em></span> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Set all components. </p>
- </div>
- </div>
- <a id="ae32d59954e6b05258af7123c00141654" name="ae32d59954e6b05258af7123c00141654"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae32d59954e6b05258af7123c00141654">◆ </a></span>SetW()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::SetW </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inW</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="ae53457812ce9ffa5fb7b6b8a3c5c97e5" name="ae53457812ce9ffa5fb7b6b8a3c5c97e5"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae53457812ce9ffa5fb7b6b8a3c5c97e5">◆ </a></span>SetX()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::SetX </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inX</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Set individual components. </p>
- </div>
- </div>
- <a id="a4a4db6760750a34c25199455c07b6bb9" name="a4a4db6760750a34c25199455c07b6bb9"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a4a4db6760750a34c25199455c07b6bb9">◆ </a></span>SetY()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::SetY </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inY</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a3f494dde1e2e0bc50dbc2abd13210b23" name="a3f494dde1e2e0bc50dbc2abd13210b23"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a3f494dde1e2e0bc50dbc2abd13210b23">◆ </a></span>SetZ()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">JPH_INLINE void Quat::SetZ </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inZ</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a1ef2428c09a41f3d0549d216ecfca710" name="a1ef2428c09a41f3d0549d216ecfca710"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a1ef2428c09a41f3d0549d216ecfca710">◆ </a></span>sEulerAngles()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sEulerAngles </td>
- <td>(</td>
- <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>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Conversion from Euler angles. Rotation order is X then Y then Z (RotZ * RotY * RotX). Angles in radians. </p>
- </div>
- </div>
- <a id="a7e32ae62e2b33bf30ba3c40f9e66bfed" name="a7e32ae62e2b33bf30ba3c40f9e66bfed"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a7e32ae62e2b33bf30ba3c40f9e66bfed">◆ </a></span>sFromTo()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sFromTo </td>
- <td>(</td>
- <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>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <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> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <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>
- </div>
- </div>
- <a id="a73a43fe262fbbbc0b1872d238b972794" name="a73a43fe262fbbbc0b1872d238b972794"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a73a43fe262fbbbc0b1872d238b972794">◆ </a></span>sIdentity()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::sIdentity </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <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>
- </div>
- </div>
- <a id="afc3276d69ac8713afddf3cf970c27371" name="afc3276d69ac8713afddf3cf970c27371"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afc3276d69ac8713afddf3cf970c27371">◆ </a></span>SLERP()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::SLERP </td>
- <td>(</td>
- <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>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inFraction</em></span> ) const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Spherical linear interpolation between two quaternions. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">inFraction</td><td>is in the range [0, 1] </td></tr>
- <tr><td class="paramname">inDestination</td><td>The destination quaternion </td></tr>
- </table>
- </dd>
- </dl>
- <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>
- </div>
- </div>
- <a id="a60c11537faec1e7517a957f02afc4b6d" name="a60c11537faec1e7517a957f02afc4b6d"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a60c11537faec1e7517a957f02afc4b6d">◆ </a></span>sLoadFloat3Unsafe()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sLoadFloat3Unsafe </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_float3.html">Float3</a> &</td> <td class="paramname"><span class="paramname"><em>inV</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <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>
- </div>
- </div>
- <a id="a192ad561dca0797134dab8f8c2e59e29" name="a192ad561dca0797134dab8f8c2e59e29"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a192ad561dca0797134dab8f8c2e59e29">◆ </a></span>sMultiplyImaginary()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sMultiplyImaginary </td>
- <td>(</td>
- <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>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <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>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Multiply a quaternion with imaginary components and no real component (x, y, z, 0) with a quaternion. </p>
- </div>
- </div>
- <a id="a0686810998da92e9ab857b314b282d91" name="a0686810998da92e9ab857b314b282d91"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a0686810998da92e9ab857b314b282d91">◆ </a></span>sRandom()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class Random > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sRandom </td>
- <td>(</td>
- <td class="paramtype">Random &</td> <td class="paramname"><span class="paramname"><em>inRandom</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Random unit quaternion. </p>
- </div>
- </div>
- <a id="a3ac594bf7be610138e90735ae99ff8e9" name="a3ac594bf7be610138e90735ae99ff8e9"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a3ac594bf7be610138e90735ae99ff8e9">◆ </a></span>sRotation()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> Quat::sRotation </td>
- <td>(</td>
- <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>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inAngle</em></span> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Rotation from axis and angle. </p>
- </div>
- </div>
- <a id="ae95e7b6c9f4167b91b674a696c681c6e" name="ae95e7b6c9f4167b91b674a696c681c6e"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae95e7b6c9f4167b91b674a696c681c6e">◆ </a></span>StoreFloat3()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void Quat::StoreFloat3 </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Store as 3 floats to memory (X, Y and Z component). Ensures that W is positive before storing. </p>
- </div>
- </div>
- <a id="a7c1fba108633b262e9011b39a92b490b" name="a7c1fba108633b262e9011b39a92b490b"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a7c1fba108633b262e9011b39a92b490b">◆ </a></span>StoreFloat4()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void Quat::StoreFloat4 </td>
- <td>(</td>
- <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>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Store as 4 floats. </p>
- </div>
- </div>
- <a id="aed30764b796cee2d0169b126c3839bc1" name="aed30764b796cee2d0169b126c3839bc1"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aed30764b796cee2d0169b126c3839bc1">◆ </a></span>sZero()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static JPH_INLINE <a class="el" href="class_quat.html">Quat</a> Quat::sZero </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <dl class="section return"><dt>Returns</dt><dd>[0, 0, 0, 0] </dd></dl>
- </div>
- </div>
- <h2 class="groupheader">Friends And Related Symbol Documentation</h2>
- <a id="a889abe46c8a28cfafa2a20492ecb9b3a" name="a889abe46c8a28cfafa2a20492ecb9b3a"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a889abe46c8a28cfafa2a20492ecb9b3a">◆ </a></span>operator*</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_quat.html">Quat</a> operator* </td>
- <td>(</td>
- <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inValue</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <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>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">friend</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="add2e8fbe3d49728e6cd82834f0f2ef3c" name="add2e8fbe3d49728e6cd82834f0f2ef3c"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#add2e8fbe3d49728e6cd82834f0f2ef3c">◆ </a></span>operator<<</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">ostream & operator<< </td>
- <td>(</td>
- <td class="paramtype">ostream &</td> <td class="paramname"><span class="paramname"><em>inStream</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <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> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">friend</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>To String. </p>
- </div>
- </div>
- <h2 class="groupheader">Member Data Documentation</h2>
- <a id="afad087a5997d1318f544b5c9819c4d9b" name="afad087a5997d1318f544b5c9819c4d9b"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afad087a5997d1318f544b5c9819c4d9b">◆ </a></span>mValue</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_vec4.html">Vec4</a> Quat::mValue</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>4 vector that stores [x, y, z, w] parts of the quaternion </p>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following files:<ul>
- <li>Jolt/Math/<a class="el" href="_quat_8h_source.html">Quat.h</a></li>
- <li>Jolt/Math/<a class="el" href="_quat_8inl_source.html">Quat.inl</a></li>
- </ul>
- </div><!-- contents -->
- </div><!-- doc-content -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="class_quat.html">Quat</a></li>
- <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>
- </ul>
- </div>
- </body>
- </html>
|