| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833 |
- <!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: Jolt/Physics/Character/CharacterVirtual.h Source File</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <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('_character_virtual_8h_source.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="headertitle"><div class="title">CharacterVirtual.h</div></div>
- </div><!--header-->
- <div class="contents">
- <a href="_character_virtual_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)</span></div>
- <div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">// SPDX-FileCopyrightText: 2021 Jorrit Rouwe</span></div>
- <div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">// SPDX-License-Identifier: MIT</span></div>
- <div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
- <div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#pragma once</span></div>
- <div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
- <div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include <<a class="code" href="_character_base_8h.html">Jolt/Physics/Character/CharacterBase.h</a>></span></div>
- <div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include <<a class="code" href="_character_i_d_8h.html">Jolt/Physics/Character/CharacterID.h</a>></span></div>
- <div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <<a class="code" href="_motion_type_8h.html">Jolt/Physics/Body/MotionType.h</a>></span></div>
- <div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <<a class="code" href="_body_filter_8h.html">Jolt/Physics/Body/BodyFilter.h</a>></span></div>
- <div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <<a class="code" href="_broad_phase_layer_8h.html">Jolt/Physics/Collision/BroadPhase/BroadPhaseLayer.h</a>></span></div>
- <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <<a class="code" href="_object_layer_8h.html">Jolt/Physics/Collision/ObjectLayer.h</a>></span></div>
- <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <<a class="code" href="_transformed_shape_8h.html">Jolt/Physics/Collision/TransformedShape.h</a>></span></div>
- <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include <<a class="code" href="_s_t_l_temp_allocator_8h.html">Jolt/Core/STLTempAllocator.h</a>></span></div>
- <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
- <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><a class="code hl_define" href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a></div>
- <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
- <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">class </span><a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a>;</div>
- <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">class </span><a class="code hl_class" href="class_collide_shape_settings.html">CollideShapeSettings</a>;</div>
- <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
- <div class="foldopen" id="foldopen00022" data-start="{" data-end="};">
- <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html"> 22</a></span><span class="keyword">class </span><a class="code hl_define" href="_core_8h.html#a2712a9b0f778ab9d1aa5118b4e8e6bd8">JPH_EXPORT</a> <a class="code hl_class" href="class_character_virtual_settings.html">CharacterVirtualSettings</a> : <span class="keyword">public</span> <a class="code hl_class" href="class_character_base_settings.html">CharacterBaseSettings</a></div>
- <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
- <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">public</span>:</div>
- <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_define" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a></div>
- <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
- <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a82b5b48ad2c710d79bde14b29520983f"> 28</a></span> <a class="code hl_function" href="class_character_virtual_settings.html#a82b5b48ad2c710d79bde14b29520983f">CharacterVirtualSettings</a>() = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a8a03c23735fbf94d802565a875d991bc"> 29</a></span> <a class="code hl_function" href="class_character_virtual_settings.html#a8a03c23735fbf94d802565a875d991bc">CharacterVirtualSettings</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_settings.html">CharacterVirtualSettings</a> &) = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#ad185d9b830eb98daa1d9fa0b1e001457"> 30</a></span> <a class="code hl_class" href="class_character_virtual_settings.html">CharacterVirtualSettings</a> & <a class="code hl_function" href="class_character_base_settings.html#a95875f7606ab4eaed1259b237cfb22d3">operator = </a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_settings.html">CharacterVirtualSettings</a> &) = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
- <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#aaa5520692531850d9590a023c3bd8666"> 33</a></span> <a class="code hl_class" href="class_character_i_d.html">CharacterID</a> mID = <a class="code hl_function" href="class_character_i_d.html#a8e85050d3a9b1de9e00c78ea5b3de3f5">CharacterID::sNextCharacterID</a>();</div>
- <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
- <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#aadab808ba39d9f8d7fac3db1aa99c5cf"> 36</a></span> <span class="keywordtype">float</span> mMass = 70.0f;</div>
- <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
- <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a6187712f620530e0b086a0437690929f"> 39</a></span> <span class="keywordtype">float</span> mMaxStrength = 100.0f;</div>
- <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
- <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a71029078959636aa6a6bca8ab72f31e3"> 42</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mShapeOffset = <a class="code hl_function" href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">Vec3::sZero</a>();</div>
- <div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
- <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#adc60ceaa1f25e2cd6853b319499f82d1"> 45</a></span> <a class="code hl_enumeration" href="_back_face_mode_8h.html#a3f6892e7ae9fb32f745f39d0fb911d70">EBackFaceMode</a> mBackFaceMode = <a class="code hl_enumvalue" href="_back_face_mode_8h.html#a3f6892e7ae9fb32f745f39d0fb911d70a7a77865372b008d1495ee006663e08ab">EBackFaceMode::CollideWithBackFaces</a>; </div>
- <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#aeeefd4daed1e249cc0c98126bd8e4007"> 46</a></span> <span class="keywordtype">float</span> mPredictiveContactDistance = 0.1f; </div>
- <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a1ddf59bd95417f3b95341f03ade9812b"> 47</a></span> <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> mMaxCollisionIterations = 5; </div>
- <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a1c5a728c9f0e095f4c76a51e61ff8bb3"> 48</a></span> <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> mMaxConstraintIterations = 15; </div>
- <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a43cabe3e717a0d42ce6ba8383760c20f"> 49</a></span> <span class="keywordtype">float</span> mMinTimeRemaining = 1.0e-4f; </div>
- <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#ace6da7c342df36edfce5a7aac44b1664"> 50</a></span> <span class="keywordtype">float</span> mCollisionTolerance = 1.0e-3f; </div>
- <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a9799feb816f4df4f956ffed435d18b4c"> 51</a></span> <span class="keywordtype">float</span> mCharacterPadding = 0.02f; </div>
- <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#afb718ba333f1f915a205d060097f8a81"> 52</a></span> <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> mMaxNumHits = 256; </div>
- <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#ae797247a9a90a161abd965a8f56ae584"> 53</a></span> <span class="keywordtype">float</span> mHitReductionCosMaxAngle = 0.999f; </div>
- <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a5a58aa76a938c5845f1b375114a4cebb"> 54</a></span> <span class="keywordtype">float</span> mPenetrationRecoverySpeed = 1.0f; </div>
- <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
- <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a894dfc1bbdcf975b2878430ed7df33ec"> 60</a></span> <a class="code hl_class" href="class_ref_const.html">RefConst<Shape></a> <a class="code hl_variable" href="class_character_virtual_settings.html#a894dfc1bbdcf975b2878430ed7df33ec">mInnerBodyShape</a>;</div>
- <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
- <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#aeef129c262e7026b5d08c7f3c1036e69"> 64</a></span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> <a class="code hl_variable" href="class_character_virtual_settings.html#aeef129c262e7026b5d08c7f3c1036e69">mInnerBodyIDOverride</a>;</div>
- <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
- <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="class_character_virtual_settings.html#a699ed6e9c6b175c50ec3f0a349969904"> 67</a></span> <a class="code hl_typedef" href="_object_layer_8h.html#a960eb396e2803ddad87bf25e0dcb4470">ObjectLayer</a> mInnerBodyLayer = 0;</div>
- <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>};</div>
- </div>
- <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
- <div class="foldopen" id="foldopen00071" data-start="{" data-end="};">
- <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="class_character_contact_settings.html"> 71</a></span><span class="keyword">class </span><a class="code hl_class" href="class_character_contact_settings.html">CharacterContactSettings</a></div>
- <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>{</div>
- <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="keyword">public</span>:</div>
- <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="class_character_contact_settings.html#a08d217d923d36ad868fa83b8d1851833"> 75</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="class_character_contact_settings.html#a08d217d923d36ad868fa83b8d1851833">mCanPushCharacter</a> = <span class="keyword">true</span>;</div>
- <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
- <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="class_character_contact_settings.html#a9e1a4f9fb9e52f755a15af2066cf441b"> 80</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="class_character_contact_settings.html#a9e1a4f9fb9e52f755a15af2066cf441b">mCanReceiveImpulses</a> = <span class="keyword">true</span>;</div>
- <div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>};</div>
- </div>
- <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
- <div class="foldopen" id="foldopen00085" data-start="{" data-end="};">
- <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html"> 85</a></span><span class="keyword">class </span><a class="code hl_define" href="_core_8h.html#a2712a9b0f778ab9d1aa5118b4e8e6bd8">JPH_EXPORT</a> <a class="code hl_class" href="class_character_contact_listener.html">CharacterContactListener</a></div>
- <div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>{</div>
- <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="keyword">public</span>:</div>
- <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a1cbf56ca2333e878c3d7da75b9dfc0ba"> 89</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="class_character_contact_listener.html#a1cbf56ca2333e878c3d7da75b9dfc0ba">~CharacterContactListener</a>() = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
- <div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a861889d3b1f2349eb1726ebfd979bf53"> 93</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#a861889d3b1f2349eb1726ebfd979bf53">OnAdjustBodyVelocity</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_body.html">Body</a> &inBody2, <a class="code hl_class" href="class_vec3.html">Vec3</a> &ioLinearVelocity, <a class="code hl_class" href="class_vec3.html">Vec3</a> &ioAngularVelocity) { <span class="comment">/* Do nothing, the linear and angular velocity are already filled in */</span> }</div>
- <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
- <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a46fc7a819cf904aa3db5cf1648f21530"> 96</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_character_contact_listener.html#a46fc7a819cf904aa3db5cf1648f21530">OnContactValidate</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> &inBodyID2, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
- <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
- <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a5ede2bdf086dafcaa1f53fd6fe4a5e7b"> 99</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_character_contact_listener.html#a5ede2bdf086dafcaa1f53fd6fe4a5e7b">OnCharacterContactValidate</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inOtherCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
- <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
- <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a07550deec345e7d94ca05afdd341b11d"> 108</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#a07550deec345e7d94ca05afdd341b11d">OnContactAdded</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> &inBodyID2, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inContactPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inContactNormal, <a class="code hl_class" href="class_character_contact_settings.html">CharacterContactSettings</a> &ioSettings) { <span class="comment">/* Default do nothing */</span> }</div>
- <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
- <div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#aa417fa0d6cc8507b5848ab2d44fea081"> 117</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#aa417fa0d6cc8507b5848ab2d44fea081">OnContactPersisted</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> &inBodyID2, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inContactPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inContactNormal, <a class="code hl_class" href="class_character_contact_settings.html">CharacterContactSettings</a> &ioSettings) { <span class="comment">/* Default do nothing */</span> }</div>
- <div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
- <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a1d0a270e8eca3596b4c2e4fd500c8b0c"> 124</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#a1d0a270e8eca3596b4c2e4fd500c8b0c">OnContactRemoved</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> &inBodyID2, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2) { <span class="comment">/* Default do nothing */</span> }</div>
- <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
- <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a66b85f5bafb3d0fd5a07ef1b278826e4"> 127</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#a66b85f5bafb3d0fd5a07ef1b278826e4">OnCharacterContactAdded</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inOtherCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inContactPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inContactNormal, <a class="code hl_class" href="class_character_contact_settings.html">CharacterContactSettings</a> &ioSettings) { <span class="comment">/* Default do nothing */</span> }</div>
- <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
- <div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#aebc3550bfd06ec663f6aefa001bb5d2e"> 130</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#aebc3550bfd06ec663f6aefa001bb5d2e">OnCharacterContactPersisted</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inOtherCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inContactPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inContactNormal, <a class="code hl_class" href="class_character_contact_settings.html">CharacterContactSettings</a> &ioSettings) { <span class="comment">/* Default do nothing */</span> }</div>
- <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
- <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a8aaba674bebace7120443c4e0bdfe2a1"> 134</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#a8aaba674bebace7120443c4e0bdfe2a1">OnCharacterContactRemoved</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_character_i_d.html">CharacterID</a> &inOtherCharacterID, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2) { <span class="comment">/* Default do nothing */</span> }</div>
- <div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
- <div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#a4d1a8b09ee3a923d4aa7bc53aec160b6"> 146</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#a4d1a8b09ee3a923d4aa7bc53aec160b6">OnContactSolve</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> &inBodyID2, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inContactPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inContactNormal, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inContactVelocity, <span class="keyword">const</span> <a class="code hl_class" href="class_physics_material.html">PhysicsMaterial</a> *inContactMaterial, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inCharacterVelocity, <a class="code hl_class" href="class_vec3.html">Vec3</a> &ioNewCharacterVelocity) { <span class="comment">/* Default do nothing */</span> }</div>
- <div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
- <div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="class_character_contact_listener.html#ad611891b1e902a1bc9596935362c141e"> 149</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_contact_listener.html#ad611891b1e902a1bc9596935362c141e">OnCharacterContactSolve</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inOtherCharacter, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID2, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inContactPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inContactNormal, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inContactVelocity, <span class="keyword">const</span> <a class="code hl_class" href="class_physics_material.html">PhysicsMaterial</a> *inContactMaterial, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inCharacterVelocity, <a class="code hl_class" href="class_vec3.html">Vec3</a> &ioNewCharacterVelocity) { <span class="comment">/* Default do nothing */</span> }</div>
- <div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span>};</div>
- </div>
- <div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
- <div class="foldopen" id="foldopen00155" data-start="{" data-end="};">
- <div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="class_character_vs_character_collision.html"> 155</a></span><span class="keyword">class </span><a class="code hl_define" href="_core_8h.html#a2712a9b0f778ab9d1aa5118b4e8e6bd8">JPH_EXPORT</a> <a class="code hl_class" href="class_character_vs_character_collision.html">CharacterVsCharacterCollision</a> : <span class="keyword">public</span> <a class="code hl_class" href="class_non_copyable.html">NonCopyable</a></div>
- <div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span>{</div>
- <div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="keyword">public</span>:</div>
- <div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="class_character_vs_character_collision.html#ac761e9773325df331eb599af2f498525"> 158</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="class_character_vs_character_collision.html#ac761e9773325df331eb599af2f498525">~CharacterVsCharacterCollision</a>() = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
- <div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="class_character_vs_character_collision.html#a1336885e4964801d0812b3089faa674b"> 166</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_vs_character_collision.html#a1336885e4964801d0812b3089faa674b">CollideCharacter</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <a class="code hl_class" href="class_mat44.html">RMat44Arg</a> inCenterOfMassTransform, <span class="keyword">const</span> <a class="code hl_class" href="class_collide_shape_settings.html">CollideShapeSettings</a> &inCollideShapeSettings, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, <a class="code hl_class" href="class_collision_collector.html">CollideShapeCollector</a> &ioCollector) <span class="keyword">const</span> = 0;</div>
- <div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
- <div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="class_character_vs_character_collision.html#acaecf7e7bdb70d2cade8e585b64a1b82"> 175</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_vs_character_collision.html#acaecf7e7bdb70d2cade8e585b64a1b82">CastCharacter</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <a class="code hl_class" href="class_mat44.html">RMat44Arg</a> inCenterOfMassTransform, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inDirection, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_cast_settings.html">ShapeCastSettings</a> &inShapeCastSettings, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, <a class="code hl_class" href="class_collision_collector.html">CastShapeCollector</a> &ioCollector) <span class="keyword">const</span> = 0;</div>
- <div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span>};</div>
- </div>
- <div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div>
- <div class="foldopen" id="foldopen00182" data-start="{" data-end="};">
- <div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="class_character_vs_character_collision_simple.html"> 182</a></span><span class="keyword">class </span><a class="code hl_define" href="_core_8h.html#a2712a9b0f778ab9d1aa5118b4e8e6bd8">JPH_EXPORT</a> <a class="code hl_class" href="class_character_vs_character_collision_simple.html">CharacterVsCharacterCollisionSimple</a> : <span class="keyword">public</span> <a class="code hl_class" href="class_character_vs_character_collision.html">CharacterVsCharacterCollision</a></div>
- <div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>{</div>
- <div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="keyword">public</span>:</div>
- <div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="class_character_vs_character_collision_simple.html#a1c9a2607b50bd68ced9c7262d01cad67"> 186</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_vs_character_collision_simple.html#a1c9a2607b50bd68ced9c7262d01cad67">Add</a>(<a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter) { mCharacters.push_back(inCharacter); }</div>
- <div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
- <div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordtype">void</span> Remove(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter);</div>
- <div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
- <div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// See: CharacterVsCharacterCollision</span></div>
- <div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> CollideCharacter(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <a class="code hl_class" href="class_mat44.html">RMat44Arg</a> inCenterOfMassTransform, <span class="keyword">const</span> <a class="code hl_class" href="class_collide_shape_settings.html">CollideShapeSettings</a> &inCollideShapeSettings, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, <a class="code hl_class" href="class_collision_collector.html">CollideShapeCollector</a> &ioCollector) <span class="keyword">const override</span>;</div>
- <div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> CastCharacter(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <a class="code hl_class" href="class_mat44.html">RMat44Arg</a> inCenterOfMassTransform, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inDirection, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_cast_settings.html">ShapeCastSettings</a> &inShapeCastSettings, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, <a class="code hl_class" href="class_collision_collector.html">CastShapeCollector</a> &ioCollector) <span class="keyword">const override</span>;</div>
- <div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
- <div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="class_character_vs_character_collision_simple.html#ab7c49c006037265b684bccd7d9b4cd22"> 195</a></span> <a class="code hl_class" href="class_array.html">Array<CharacterVirtual *></a> <a class="code hl_variable" href="class_character_vs_character_collision_simple.html#ab7c49c006037265b684bccd7d9b4cd22">mCharacters</a>; </div>
- <div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span>};</div>
- </div>
- <div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
- <div class="foldopen" id="foldopen00204" data-start="{" data-end="};">
- <div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="class_character_virtual.html"> 204</a></span><span class="keyword">class </span><a class="code hl_define" href="_core_8h.html#a2712a9b0f778ab9d1aa5118b4e8e6bd8">JPH_EXPORT</a> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> : <span class="keyword">public</span> <a class="code hl_class" href="class_character_base.html">CharacterBase</a></div>
- <div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span>{</div>
- <div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="keyword">public</span>:</div>
- <div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_define" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a></div>
- <div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
- <div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_settings.html">CharacterVirtualSettings</a> *inSettings, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inPosition, <a class="code hl_class" href="class_quat.html">QuatArg</a> inRotation, <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> inUserData, <a class="code hl_class" href="class_physics_system.html">PhysicsSystem</a> *inSystem);</div>
- <div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
- <div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ab1970bba46b2522707111bec95fa9e07"> 218</a></span> <a class="code hl_function" href="class_character_virtual.html#ab1970bba46b2522707111bec95fa9e07">CharacterVirtual</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_settings.html">CharacterVirtualSettings</a> *inSettings, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inPosition, <a class="code hl_class" href="class_quat.html">QuatArg</a> inRotation, <a class="code hl_class" href="class_physics_system.html">PhysicsSystem</a> *inSystem) : <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a>(inSettings, inPosition, inRotation, 0, inSystem) { }</div>
- <div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
- <div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">virtual</span> <a class="code hl_class" href="class_character_virtual.html">~CharacterVirtual</a>() <span class="keyword">override</span>;</div>
- <div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
- <div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="class_character_virtual.html#af75ef0776d8c6726b25b5a278937780b"> 224</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code hl_class" href="class_character_i_d.html">CharacterID</a> & <a class="code hl_function" href="class_character_virtual.html#af75ef0776d8c6726b25b5a278937780b">GetID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mID; }</div>
- <div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
- <div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="class_character_virtual.html#af7bfe39cc6f67eeb4cd8d4d453d8b179"> 227</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#af7bfe39cc6f67eeb4cd8d4d453d8b179">SetListener</a>(<a class="code hl_class" href="class_character_contact_listener.html">CharacterContactListener</a> *inListener) { mListener = inListener; }</div>
- <div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> </div>
- <div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="class_character_virtual.html#aacf19c0b42216d6dc497c20556b642e7"> 230</a></span> <a class="code hl_class" href="class_character_contact_listener.html">CharacterContactListener</a> * <a class="code hl_function" href="class_character_virtual.html#aacf19c0b42216d6dc497c20556b642e7">GetListener</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mListener; }</div>
- <div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
- <div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a3982b9711188db9d30ee0dab32a81d0b"> 233</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#a3982b9711188db9d30ee0dab32a81d0b">SetCharacterVsCharacterCollision</a>(<a class="code hl_class" href="class_character_vs_character_collision.html">CharacterVsCharacterCollision</a> *inCharacterVsCharacterCollision) { mCharacterVsCharacterCollision = inCharacterVsCharacterCollision; }</div>
- <div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
- <div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a9f8aca4dbbb9c926e52ca8b7337c4c71"> 236</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> <a class="code hl_function" href="class_character_virtual.html#a9f8aca4dbbb9c926e52ca8b7337c4c71">GetLinearVelocity</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mLinearVelocity; }</div>
- <div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> </div>
- <div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a25da7eb8e9ff5316e357cbf59027b57e"> 239</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#a25da7eb8e9ff5316e357cbf59027b57e">SetLinearVelocity</a>(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inLinearVelocity) { mLinearVelocity = inLinearVelocity; }</div>
- <div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
- <div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a24f025912ca62c15e830bd6213129d6b"> 242</a></span> <a class="code hl_class" href="class_vec3.html">RVec3</a> <a class="code hl_function" href="class_character_virtual.html#a24f025912ca62c15e830bd6213129d6b">GetPosition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mPosition; }</div>
- <div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
- <div class="line"><a id="l00245" name="l00245"></a><span class="lineno"><a class="line" href="class_character_virtual.html#af3622b341d017712981d6d26de99fe5c"> 245</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#af3622b341d017712981d6d26de99fe5c">SetPosition</a>(<a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inPosition) { mPosition = inPosition; UpdateInnerBodyTransform(); }</div>
- <div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
- <div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="class_character_virtual.html#afdec9f01a8b449ba9b29f39c42afe0d8"> 248</a></span> <a class="code hl_class" href="class_quat.html">Quat</a> <a class="code hl_function" href="class_character_virtual.html#afdec9f01a8b449ba9b29f39c42afe0d8">GetRotation</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mRotation; }</div>
- <div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> </div>
- <div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ac0b74d1e4ec29a6a4853bc8cbb72578d"> 251</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#ac0b74d1e4ec29a6a4853bc8cbb72578d">SetRotation</a>(<a class="code hl_class" href="class_quat.html">QuatArg</a> inRotation) { mRotation = inRotation; UpdateInnerBodyTransform(); }</div>
- <div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
- <div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// Get the center of mass position of the shape</span></div>
- <div class="line"><a id="l00254" name="l00254"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a44dfb8aa6d88860b6a4ff094d211871e"> 254</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="class_vec3.html">RVec3</a> <a class="code hl_function" href="class_character_virtual.html#a44dfb8aa6d88860b6a4ff094d211871e">GetCenterOfMassPosition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mPosition + (mRotation * (mShapeOffset + mShape->GetCenterOfMass()) + mCharacterPadding * mUp); }</div>
- <div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> </div>
- <div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a36a2e0c44e55954fbc62aed4e030ab01"> 257</a></span> <a class="code hl_class" href="class_mat44.html">RMat44</a> <a class="code hl_function" href="class_character_virtual.html#a36a2e0c44e55954fbc62aed4e030ab01">GetWorldTransform</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="class_mat44.html#aba5427f45393b40263d52ec614cfa985">RMat44::sRotationTranslation</a>(mRotation, mPosition); }</div>
- <div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
- <div class="line"><a id="l00260" name="l00260"></a><span class="lineno"><a class="line" href="class_character_virtual.html#aad9788892410b982d43bbd34ef8a016c"> 260</a></span> <a class="code hl_class" href="class_mat44.html">RMat44</a> <a class="code hl_function" href="class_character_virtual.html#aad9788892410b982d43bbd34ef8a016c">GetCenterOfMassTransform</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="class_character_virtual.html#aad9788892410b982d43bbd34ef8a016c">GetCenterOfMassTransform</a>(mPosition, mRotation, mShape); }</div>
- <div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> </div>
- <div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a1ae032d5f31f955686e3c519abfaa1a4"> 263</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="class_character_virtual.html#a1ae032d5f31f955686e3c519abfaa1a4">GetMass</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mMass; }</div>
- <div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a93a6110e80e08ef092d7f010a45e3bb5"> 264</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#a93a6110e80e08ef092d7f010a45e3bb5">SetMass</a>(<span class="keywordtype">float</span> inMass) { mMass = inMass; }</div>
- <div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
- <div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a6d11baa32abe7ab7f75100daca4fda2c"> 267</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="class_character_virtual.html#a6d11baa32abe7ab7f75100daca4fda2c">GetMaxStrength</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mMaxStrength; }</div>
- <div class="line"><a id="l00268" name="l00268"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a5e3e1a90e94534669194d929a4f15700"> 268</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#a5e3e1a90e94534669194d929a4f15700">SetMaxStrength</a>(<span class="keywordtype">float</span> inMaxStrength) { mMaxStrength = inMaxStrength; }</div>
- <div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
- <div class="line"><a id="l00271" name="l00271"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a2407cd5fec2965214f0d9c3c27eb47ca"> 271</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="class_character_virtual.html#a2407cd5fec2965214f0d9c3c27eb47ca">GetPenetrationRecoverySpeed</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mPenetrationRecoverySpeed; }</div>
- <div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ad767e40abd649085a9b2d8df813dbc8c"> 272</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#ad767e40abd649085a9b2d8df813dbc8c">SetPenetrationRecoverySpeed</a>(<span class="keywordtype">float</span> inSpeed) { mPenetrationRecoverySpeed = inSpeed; }</div>
- <div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
- <div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a9e39a28dbce389399848347dbf95956a"> 275</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_character_virtual.html#a9e39a28dbce389399848347dbf95956a">GetEnhancedInternalEdgeRemoval</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="class_character_base_settings.html#a203e7cb826ccd98d6f3551f2aa198ee3">mEnhancedInternalEdgeRemoval</a>; }</div>
- <div class="line"><a id="l00276" name="l00276"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a1596c6b7df4854e170f59416c67aeabc"> 276</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#a1596c6b7df4854e170f59416c67aeabc">SetEnhancedInternalEdgeRemoval</a>(<span class="keywordtype">bool</span> inApply) { mEnhancedInternalEdgeRemoval = inApply; }</div>
- <div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
- <div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a643ed04caa01ba9e4e4fc9d5058dc3d7"> 279</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="class_character_virtual.html#a643ed04caa01ba9e4e4fc9d5058dc3d7">GetCharacterPadding</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mCharacterPadding; }</div>
- <div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
- <div class="line"><a id="l00282" name="l00282"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a6b037237b95355079f9aca7904899004"> 282</a></span> <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> <a class="code hl_function" href="class_character_virtual.html#a6b037237b95355079f9aca7904899004">GetMaxNumHits</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mMaxNumHits; }</div>
- <div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a683ab8265d9c39c512864b8041c675aa"> 283</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#a683ab8265d9c39c512864b8041c675aa">SetMaxNumHits</a>(<a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inMaxHits) { mMaxNumHits = inMaxHits; }</div>
- <div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
- <div class="line"><a id="l00286" name="l00286"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ae8dcc6de2efd2ad646722e92ed1ba38a"> 286</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="class_character_virtual.html#ae8dcc6de2efd2ad646722e92ed1ba38a">GetHitReductionCosMaxAngle</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mHitReductionCosMaxAngle; }</div>
- <div class="line"><a id="l00287" name="l00287"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ac74cd57b392ad9570e419251ce2d70c8"> 287</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#ac74cd57b392ad9570e419251ce2d70c8">SetHitReductionCosMaxAngle</a>(<span class="keywordtype">float</span> inCosMaxAngle) { mHitReductionCosMaxAngle = inCosMaxAngle; }</div>
- <div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> </div>
- <div class="line"><a id="l00293" name="l00293"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a4bcaf2938288d8a8cbf907f74851b109"> 293</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_character_virtual.html#a4bcaf2938288d8a8cbf907f74851b109">GetMaxHitsExceeded</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mMaxHitsExceeded; }</div>
- <div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> </div>
- <div class="line"><a id="l00296" name="l00296"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ad36f1869421eeee298f3230d27841071"> 296</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> <a class="code hl_function" href="class_character_virtual.html#ad36f1869421eeee298f3230d27841071">GetShapeOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mShapeOffset; }</div>
- <div class="line"><a id="l00297" name="l00297"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a6fd639e0938a0c068ff683a33ee613c9"> 297</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_character_virtual.html#a6fd639e0938a0c068ff683a33ee613c9">SetShapeOffset</a>(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inShapeOffset) { mShapeOffset = inShapeOffset; UpdateInnerBodyTransform(); }</div>
- <div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> </div>
- <div class="line"><a id="l00300" name="l00300"></a><span class="lineno"><a class="line" href="class_character_virtual.html#acc49b466797667ae5f4bb1ee44e83b2e"> 300</a></span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> <a class="code hl_function" href="class_character_virtual.html#acc49b466797667ae5f4bb1ee44e83b2e">GetUserData</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mUserData; }</div>
- <div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordtype">void</span> SetUserData(<a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> inUserData);</div>
- <div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
- <div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a7d6637e5d42ab04152b831b609014af1"> 304</a></span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> <a class="code hl_function" href="class_character_virtual.html#a7d6637e5d42ab04152b831b609014af1">GetInnerBodyID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mInnerBodyID; }</div>
- <div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
- <div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <a class="code hl_class" href="class_vec3.html">Vec3</a> CancelVelocityTowardsSteepSlopes(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inDesiredVelocity) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> </div>
- <div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordtype">void</span> StartTrackingContactChanges();</div>
- <div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> </div>
- <div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="keywordtype">void</span> FinishTrackingContactChanges();</div>
- <div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> </div>
- <div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordtype">void</span> Update(<span class="keywordtype">float</span> inDeltaTime, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inGravity, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
- <div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="keywordtype">bool</span> CanWalkStairs(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inLinearVelocity) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
- <div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="keywordtype">bool</span> WalkStairs(<span class="keywordtype">float</span> inDeltaTime, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inStepUp, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inStepForward, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inStepForwardTest, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inStepDownExtra, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
- <div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="keywordtype">bool</span> StickToFloor(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inStepDown, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> </div>
- <div class="foldopen" id="foldopen00365" data-start="{" data-end="};">
- <div class="line"><a id="l00365" name="l00365"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_extended_update_settings.html"> 365</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_character_virtual_1_1_extended_update_settings.html">ExtendedUpdateSettings</a></div>
- <div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> {</div>
- <div class="line"><a id="l00367" name="l00367"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_extended_update_settings.html#a1c5ed3a437d5b284f4ce9b271bfebbf8"> 367</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mStickToFloorStepDown { 0, -0.5f, 0 }; </div>
- <div class="line"><a id="l00368" name="l00368"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_extended_update_settings.html#ac716eaa1338501e45efa6b6d0100e931"> 368</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mWalkStairsStepUp { 0, 0.4f, 0 }; </div>
- <div class="line"><a id="l00369" name="l00369"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_extended_update_settings.html#a175073b371406a720d7e381fc9103110"> 369</a></span> <span class="keywordtype">float</span> mWalkStairsMinStepForward { 0.02f }; </div>
- <div class="line"><a id="l00370" name="l00370"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_extended_update_settings.html#a773f3fecf53db30cd8a6381b307a3cb4"> 370</a></span> <span class="keywordtype">float</span> mWalkStairsStepForwardTest { 0.15f }; </div>
- <div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_extended_update_settings.html#aa1710035a7d1b96b4b1d2ba526452528"> 371</a></span> <span class="keywordtype">float</span> mWalkStairsCosAngleForwardContact { <a class="code hl_function" href="_trigonometry_8h.html#a40fafb1c427199b6855d704fc79cd1cf">Cos</a>(<a class="code hl_function" href="_math_8h.html#a636689581f2a6ce1d3030dc4dd83b2f5">DegreesToRadians</a>(75.0f)) }; </div>
- <div class="line"><a id="l00372" name="l00372"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_extended_update_settings.html#a8cd00377425d16b8b2fbee1eb8dc97dc"> 372</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mWalkStairsStepDownExtra { <a class="code hl_function" href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">Vec3::sZero</a>() }; </div>
- <div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> };</div>
- </div>
- <div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
- <div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keywordtype">void</span> ExtendedUpdate(<span class="keywordtype">float</span> inDeltaTime, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inGravity, <span class="keyword">const</span> ExtendedUpdateSettings &inSettings, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> </div>
- <div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <span class="keywordtype">void</span> RefreshContacts(<span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
- <div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <span class="keywordtype">void</span> UpdateGroundVelocity();</div>
- <div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> </div>
- <div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keywordtype">bool</span> SetShape(<span class="keyword">const</span> <a class="code hl_class" href="class_shape.html">Shape</a> *inShape, <span class="keywordtype">float</span> inMaxPenetrationDepth, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> </div>
- <div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> <span class="keywordtype">void</span> SetInnerBodyShape(<span class="keyword">const</span> <a class="code hl_class" href="class_shape.html">Shape</a> *inShape);</div>
- <div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> </div>
- <div class="line"><a id="l00411" name="l00411"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a181bbafd30966b7ecc4313283c3a1252"> 411</a></span> <a class="code hl_class" href="class_transformed_shape.html">TransformedShape</a> <a class="code hl_function" href="class_character_virtual.html#a181bbafd30966b7ecc4313283c3a1252">GetTransformedShape</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_class" href="class_transformed_shape.html">TransformedShape</a>(GetCenterOfMassPosition(), mRotation, mShape, mInnerBodyID); }</div>
- <div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> </div>
- <div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keywordtype">void</span> CheckCollision(<a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inPosition, <a class="code hl_class" href="class_quat.html">QuatArg</a> inRotation, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inMovementDirection, <span class="keywordtype">float</span> inMaxSeparationDistance, <span class="keyword">const</span> <a class="code hl_class" href="class_shape.html">Shape</a> *inShape, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, <a class="code hl_class" href="class_collision_collector.html">CollideShapeCollector</a> &ioCollector, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> </div>
- <div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> <a class="code hl_class" href="class_character_virtual_settings.html">CharacterVirtualSettings</a> GetCharacterVirtualSettings() <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
- <div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> <span class="comment">// Saving / restoring state for replay</span></div>
- <div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SaveState(<a class="code hl_class" href="class_state_recorder.html">StateRecorder</a> &inStream) <span class="keyword">const override</span>;</div>
- <div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> RestoreState(<a class="code hl_class" href="class_state_recorder.html">StateRecorder</a> &inStream) <span class="keyword">override</span>;</div>
- <div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> </div>
- <div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span><span class="preprocessor">#ifdef JPH_DEBUG_RENDERER</span></div>
- <div class="line"><a id="l00436" name="l00436"></a><span class="lineno"><a class="line" href="class_character_virtual.html#aba0e60ca84ea36613fc54800b4fee7e2"> 436</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> sDrawConstraints = <span class="keyword">false</span>; </div>
- <div class="line"><a id="l00437" name="l00437"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ab3667a21e5aab369907773ed056c74a9"> 437</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> sDrawWalkStairs = <span class="keyword">false</span>; </div>
- <div class="line"><a id="l00438" name="l00438"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ab2cf324c0dfc9c7275d985f94f663a84"> 438</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> sDrawStickToFloor = <span class="keyword">false</span>; </div>
- <div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> </div>
- <div class="foldopen" id="foldopen00442" data-start="{" data-end="};">
- <div class="line"><a id="l00442" name="l00442"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html"> 442</a></span> <span class="keyword">class </span><a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a></div>
- <div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> {</div>
- <div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> <span class="keyword">public</span>:</div>
- <div class="line"><a id="l00446" name="l00446"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a232bdf5cb80a1b4ee8fe0c5d3f733649"> 446</a></span> <a class="code hl_function" href="class_character_virtual_1_1_contact_key.html#a232bdf5cb80a1b4ee8fe0c5d3f733649">ContactKey</a>() = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00447" name="l00447"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#aa3d8a41431389b608f3856dbdc14a2b2"> 447</a></span> <a class="code hl_function" href="class_character_virtual_1_1_contact_key.html#aa3d8a41431389b608f3856dbdc14a2b2">ContactKey</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a> &inContact) = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00448" name="l00448"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a34228ee00eabccf4048ae679ff233c8f"> 448</a></span> <a class="code hl_function" href="class_character_virtual_1_1_contact_key.html#a34228ee00eabccf4048ae679ff233c8f">ContactKey</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> &inBodyB, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID) : mBodyB(inBodyB), mSubShapeIDB(inSubShapeID) { }</div>
- <div class="line"><a id="l00449" name="l00449"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a103e68f5bd9450a192261b1e11a0c0ef"> 449</a></span> <a class="code hl_function" href="class_character_virtual_1_1_contact_key.html#a103e68f5bd9450a192261b1e11a0c0ef">ContactKey</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_i_d.html">CharacterID</a> &inCharacterIDB, <span class="keyword">const</span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID) : mCharacterIDB(inCharacterIDB), mSubShapeIDB(inSubShapeID) { }</div>
- <div class="line"><a id="l00450" name="l00450"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a2e75f7bb3584c84fc767f8b60c27186e"> 450</a></span> <a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a> & operator = (<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a> &inContact) = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> </div>
- <div class="line"><a id="l00453" name="l00453"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a3c2263c320dd418f740c6864b053d024"> 453</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_character_virtual_1_1_contact_key.html#a3c2263c320dd418f740c6864b053d024">IsSameBody</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a> &inOther)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mBodyB == inOther.<a class="code hl_variable" href="class_character_virtual_1_1_contact_key.html#a0d70de66ff7069cc35709b5d06600f5d">mBodyB</a> && mCharacterIDB == inOther.<a class="code hl_variable" href="class_character_virtual_1_1_contact_key.html#a75c5f74c807559d97002c1b2aad077b9">mCharacterIDB</a>; }</div>
- <div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> </div>
- <div class="foldopen" id="foldopen00456" data-start="{" data-end="}">
- <div class="line"><a id="l00456" name="l00456"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a9bf72c6de59a8bb41b4c45091f254db2"> 456</a></span> <span class="keywordtype">bool</span> operator == (<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a> &inRHS)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <span class="keywordflow">return</span> mBodyB == inRHS.<a class="code hl_variable" href="class_character_virtual_1_1_contact_key.html#a0d70de66ff7069cc35709b5d06600f5d">mBodyB</a> && mCharacterIDB == inRHS.<a class="code hl_variable" href="class_character_virtual_1_1_contact_key.html#a75c5f74c807559d97002c1b2aad077b9">mCharacterIDB</a> && mSubShapeIDB == inRHS.<a class="code hl_variable" href="class_character_virtual_1_1_contact_key.html#ac26c6719debb6a601e9a504569e36e74">mSubShapeIDB</a>;</div>
- <div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> }</div>
- </div>
- <div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> </div>
- <div class="foldopen" id="foldopen00461" data-start="{" data-end="}">
- <div class="line"><a id="l00461" name="l00461"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#aa4d8cbf25664362ee237da1fd9d39c9a"> 461</a></span> <span class="keywordtype">bool</span> operator != (<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a> &inRHS)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == inRHS);</div>
- <div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> }</div>
- </div>
- <div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> </div>
- <div class="foldopen" id="foldopen00467" data-start="{" data-end="}">
- <div class="line"><a id="l00467" name="l00467"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a71d6342427e6eb8dd0089b6a86f392f9"> 467</a></span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> <a class="code hl_function" href="class_character_virtual_1_1_contact_key.html#a71d6342427e6eb8dd0089b6a86f392f9">GetHash</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">static_assert</span>(<span class="keyword">sizeof</span>(<a class="code hl_class" href="class_body_i_d.html">BodyID</a>) + <span class="keyword">sizeof</span>(<a class="code hl_class" href="class_character_i_d.html">CharacterID</a>) + <span class="keyword">sizeof</span>(<a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a>) == <span class="keyword">sizeof</span>(<a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a>), <span class="stringliteral">"No padding expected"</span>);</div>
- <div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> <span class="keywordflow">return</span> <a class="code hl_function" href="_hash_combine_8h.html#a396c677c4eb61f19e11cc202aac23c38">HashBytes</a>(<span class="keyword">this</span>, <span class="keyword">sizeof</span>(<a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a>));</div>
- <div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> }</div>
- </div>
- <div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> </div>
- <div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="comment">// Saving / restoring state for replay</span></div>
- <div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="keywordtype">void</span> SaveState(<a class="code hl_class" href="class_state_recorder.html">StateRecorder</a> &inStream) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> <span class="keywordtype">void</span> RestoreState(<a class="code hl_class" href="class_state_recorder.html">StateRecorder</a> &inStream);</div>
- <div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> </div>
- <div class="line"><a id="l00477" name="l00477"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a0d70de66ff7069cc35709b5d06600f5d"> 477</a></span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> <a class="code hl_variable" href="class_character_virtual_1_1_contact_key.html#a0d70de66ff7069cc35709b5d06600f5d">mBodyB</a>; </div>
- <div class="line"><a id="l00478" name="l00478"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#a75c5f74c807559d97002c1b2aad077b9"> 478</a></span> <a class="code hl_class" href="class_character_i_d.html">CharacterID</a> <a class="code hl_variable" href="class_character_virtual_1_1_contact_key.html#a75c5f74c807559d97002c1b2aad077b9">mCharacterIDB</a>; </div>
- <div class="line"><a id="l00479" name="l00479"></a><span class="lineno"><a class="line" href="class_character_virtual_1_1_contact_key.html#ac26c6719debb6a601e9a504569e36e74"> 479</a></span> <a class="code hl_class" href="class_sub_shape_i_d.html">SubShapeID</a> <a class="code hl_variable" href="class_character_virtual_1_1_contact_key.html#ac26c6719debb6a601e9a504569e36e74">mSubShapeIDB</a>; </div>
- <div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> };</div>
- </div>
- <div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> </div>
- <div class="foldopen" id="foldopen00483" data-start="{" data-end="};">
- <div class="line"><a id="l00483" name="l00483"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html"> 483</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_character_virtual_1_1_contact.html">Contact</a> : <span class="keyword">public</span> <a class="code hl_class" href="class_character_virtual_1_1_contact_key.html">ContactKey</a></div>
- <div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> {</div>
- <div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="comment">// Saving / restoring state for replay</span></div>
- <div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> <span class="keywordtype">void</span> SaveState(<a class="code hl_class" href="class_state_recorder.html">StateRecorder</a> &inStream) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="keywordtype">void</span> RestoreState(<a class="code hl_class" href="class_state_recorder.html">StateRecorder</a> &inStream);</div>
- <div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> </div>
- <div class="line"><a id="l00489" name="l00489"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#ae0c5dd762716d33d3c0289846b4126ff"> 489</a></span> <a class="code hl_class" href="class_vec3.html">RVec3</a> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#ae0c5dd762716d33d3c0289846b4126ff">mPosition</a>; </div>
- <div class="line"><a id="l00490" name="l00490"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#ab4c53990ab4c51b1b7f9abe59de0775c"> 490</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#ab4c53990ab4c51b1b7f9abe59de0775c">mLinearVelocity</a>; </div>
- <div class="line"><a id="l00491" name="l00491"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#a3e0e1203d15a972c0b52b08940439664"> 491</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#a3e0e1203d15a972c0b52b08940439664">mContactNormal</a>; </div>
- <div class="line"><a id="l00492" name="l00492"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#ac8573f10d6b69928672603e63490d450"> 492</a></span> <a class="code hl_class" href="class_vec3.html">Vec3</a> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#ac8573f10d6b69928672603e63490d450">mSurfaceNormal</a>; </div>
- <div class="line"><a id="l00493" name="l00493"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#abbbf77d2cdfb572d1f637812bbca93e9"> 493</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#abbbf77d2cdfb572d1f637812bbca93e9">mDistance</a>; </div>
- <div class="line"><a id="l00494" name="l00494"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#a85abb6cf7ff39090dba7f596603c8f23"> 494</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#a85abb6cf7ff39090dba7f596603c8f23">mFraction</a>; </div>
- <div class="line"><a id="l00495" name="l00495"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#a1f227d6b89bbddbc35de63b1c8f7d306"> 495</a></span> <a class="code hl_enumeration" href="_motion_type_8h.html#a328245ddbb758681fad3c44c9d488fd8">EMotionType</a> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#a1f227d6b89bbddbc35de63b1c8f7d306">mMotionTypeB</a>; </div>
- <div class="line"><a id="l00496" name="l00496"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#ae19592c8bdfb0e4fc0b22b88e12f3ebd"> 496</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#ae19592c8bdfb0e4fc0b22b88e12f3ebd">mIsSensorB</a>; </div>
- <div class="line"><a id="l00497" name="l00497"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#a3c12c5f756cec99d1d749a46313fc1b3"> 497</a></span> <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> * mCharacterB = <span class="keyword">nullptr</span>; </div>
- <div class="line"><a id="l00498" name="l00498"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#a904ea0676f8406e735f23ff45fa2d57a"> 498</a></span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#a904ea0676f8406e735f23ff45fa2d57a">mUserData</a>; </div>
- <div class="line"><a id="l00499" name="l00499"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#a668d987b784e7b11dd030ad79f202cab"> 499</a></span> <span class="keyword">const</span> <a class="code hl_class" href="class_physics_material.html">PhysicsMaterial</a> * <a class="code hl_variable" href="struct_character_virtual_1_1_contact.html#a668d987b784e7b11dd030ad79f202cab">mMaterial</a>; </div>
- <div class="line"><a id="l00500" name="l00500"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#a90d33cabd5e7e175186d781efa42031f"> 500</a></span> <span class="keywordtype">bool</span> mHadCollision = <span class="keyword">false</span>; </div>
- <div class="line"><a id="l00501" name="l00501"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#a8137b339f63f6693ed3bb5449ea18ec0"> 501</a></span> <span class="keywordtype">bool</span> mWasDiscarded = <span class="keyword">false</span>; </div>
- <div class="line"><a id="l00502" name="l00502"></a><span class="lineno"><a class="line" href="struct_character_virtual_1_1_contact.html#ab702ce98262a29981d4bd1c5f6e86ca5"> 502</a></span> <span class="keywordtype">bool</span> mCanPushCharacter = <span class="keyword">true</span>; </div>
- <div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> };</div>
- </div>
- <div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> </div>
- <div class="line"><a id="l00505" name="l00505"></a><span class="lineno"><a class="line" href="class_character_virtual.html#ac60944f1d2368e0a35b76c224cbb1cac"> 505</a></span> <span class="keyword">using </span><a class="code hl_class" href="class_array.html">TempContactList</a> = <a class="code hl_class" href="class_array.html">Array<Contact, STLTempAllocator<Contact></a>>;</div>
- <div class="line"><a id="l00506" name="l00506"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a8f4e50aacdfa032e1c4ce049c06703c0"> 506</a></span> <span class="keyword">using </span><a class="code hl_class" href="class_array.html">ContactList</a> = <a class="code hl_class" href="class_array.html">Array<Contact></a>;</div>
- <div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> </div>
- <div class="line"><a id="l00510" name="l00510"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a2fcecdf5b3e0f584f2bb7ec5a128dbe6"> 510</a></span> <span class="keyword">const</span> <a class="code hl_class" href="class_array.html">ContactList</a> & <a class="code hl_function" href="class_character_virtual.html#a2fcecdf5b3e0f584f2bb7ec5a128dbe6">GetActiveContacts</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mActiveContacts; }</div>
- <div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
- <div class="foldopen" id="foldopen00513" data-start="{" data-end="}">
- <div class="line"><a id="l00513" name="l00513"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a59a36680856b7f106bbad79345c1525b"> 513</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_character_virtual.html#a59a36680856b7f106bbad79345c1525b">HasCollidedWith</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> &inBody)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="struct_character_virtual_1_1_contact.html">CharacterVirtual::Contact</a> &c : mActiveContacts)</div>
- <div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> <span class="keywordflow">if</span> (c.mHadCollision && c.mBodyB == inBody)</div>
- <div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
- <div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
- <div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> }</div>
- </div>
- <div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
- <div class="foldopen" id="foldopen00522" data-start="{" data-end="}">
- <div class="line"><a id="l00522" name="l00522"></a><span class="lineno"><a class="line" href="class_character_virtual.html#a9eadc62aef211d711e9856437d407c4b"> 522</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_character_virtual.html#a9eadc62aef211d711e9856437d407c4b">HasCollidedWith</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_i_d.html">CharacterID</a> &inCharacterID)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="struct_character_virtual_1_1_contact.html">CharacterVirtual::Contact</a> &c : mActiveContacts)</div>
- <div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <span class="keywordflow">if</span> (c.mHadCollision && c.mCharacterIDB == inCharacterID)</div>
- <div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
- <div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
- <div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> }</div>
- </div>
- <div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> </div>
- <div class="foldopen" id="foldopen00531" data-start="{" data-end="}">
- <div class="line"><a id="l00531" name="l00531"></a><span class="lineno"><a class="line" href="class_character_virtual.html#adacc8eaa741dfd330fbf2d58fa4b7541"> 531</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_character_virtual.html#adacc8eaa741dfd330fbf2d58fa4b7541">HasCollidedWith</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="keywordflow">return</span> HasCollidedWith(inCharacter-><a class="code hl_function" href="class_character_virtual.html#af75ef0776d8c6726b25b5a278937780b">GetID</a>());</div>
- <div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> }</div>
- </div>
- <div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> </div>
- <div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span><span class="keyword">private</span>:</div>
- <div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="comment">// Sorting predicate for making contact order deterministic</span></div>
- <div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="keyword">struct </span>ContactOrderingPredicate</div>
- <div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> {</div>
- <div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator () (<span class="keyword">const</span> Contact &inLHS, <span class="keyword">const</span> Contact &inRHS)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <span class="keywordflow">if</span> (inLHS.mBodyB != inRHS.mBodyB)</div>
- <div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">return</span> inLHS.mBodyB < inRHS.mBodyB;</div>
- <div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> </div>
- <div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keywordflow">if</span> (inLHS.mCharacterIDB != inRHS.mCharacterIDB)</div>
- <div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">return</span> inLHS.mCharacterIDB < inRHS.mCharacterIDB;</div>
- <div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> </div>
- <div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">return</span> inLHS.mSubShapeIDB.GetValue() < inRHS.mSubShapeIDB.GetValue();</div>
- <div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> }</div>
- <div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> };</div>
- <div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
- <div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keyword">using </span>IgnoredContactList = <a class="code hl_class" href="class_array.html">Array<ContactKey, STLTempAllocator<ContactKey></a>>;</div>
- <div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> </div>
- <div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <span class="comment">// A constraint that limits the movement of the character</span></div>
- <div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keyword">struct </span><a class="code hl_class" href="class_constraint.html">Constraint</a></div>
- <div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> {</div>
- <div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> Contact * mContact; </div>
- <div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordtype">float</span> mTOI; </div>
- <div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordtype">float</span> mProjectedVelocity; </div>
- <div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mLinearVelocity; </div>
- <div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <a class="code hl_class" href="class_plane.html">Plane</a> mPlane; </div>
- <div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <span class="keywordtype">bool</span> mIsSteepSlope = <span class="keyword">false</span>; </div>
- <div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> };</div>
- <div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> </div>
- <div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keyword">using </span>ConstraintList = <a class="code hl_class" href="class_array.html">Array<Constraint, STLTempAllocator<Constraint></a>>;</div>
- <div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> </div>
- <div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <span class="comment">// Collision collector that collects hits for CollideShape</span></div>
- <div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keyword">class </span>ContactCollector : <span class="keyword">public</span> <a class="code hl_class" href="class_collision_collector.html">CollideShapeCollector</a></div>
- <div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> {</div>
- <div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keyword">public</span>:</div>
- <div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> ContactCollector(<a class="code hl_class" href="class_physics_system.html">PhysicsSystem</a> *inSystem, <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inMaxHits, <span class="keywordtype">float</span> inHitReductionCosMaxAngle, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inUp, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, TempContactList &outContacts) : mBaseOffset(inBaseOffset), mUp(inUp), mSystem(inSystem), mCharacter(inCharacter), mContacts(outContacts), mMaxHits(inMaxHits), mHitReductionCosMaxAngle(inHitReductionCosMaxAngle) { }</div>
- <div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> </div>
- <div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetUserData(<a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> inUserData)<span class="keyword"> override </span>{ mOtherCharacter = <span class="keyword">reinterpret_cast<</span><a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *<span class="keyword">></span>(inUserData); }</div>
- <div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> </div>
- <div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddHit(<span class="keyword">const</span> <a class="code hl_class" href="class_collide_shape_result.html">CollideShapeResult</a> &inResult) <span class="keyword">override</span>;</div>
- <div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> </div>
- <div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <a class="code hl_class" href="class_vec3.html">RVec3</a> mBaseOffset;</div>
- <div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mUp;</div>
- <div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <a class="code hl_class" href="class_physics_system.html">PhysicsSystem</a> * mSystem;</div>
- <div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> * mCharacter;</div>
- <div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> * mOtherCharacter = <span class="keyword">nullptr</span>;</div>
- <div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> TempContactList & mContacts;</div>
- <div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> mMaxHits;</div>
- <div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keywordtype">float</span> mHitReductionCosMaxAngle;</div>
- <div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keywordtype">bool</span> mMaxHitsExceeded = <span class="keyword">false</span>;</div>
- <div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> };</div>
- <div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> </div>
- <div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="comment">// A collision collector that collects hits for CastShape</span></div>
- <div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="keyword">class </span>ContactCastCollector : <span class="keyword">public</span> <a class="code hl_class" href="class_collision_collector.html">CastShapeCollector</a></div>
- <div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> {</div>
- <div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keyword">public</span>:</div>
- <div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> ContactCastCollector(<a class="code hl_class" href="class_physics_system.html">PhysicsSystem</a> *inSystem, <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inDisplacement, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inUp, <span class="keyword">const</span> IgnoredContactList &inIgnoredContacts, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, Contact &outContact) : mBaseOffset(inBaseOffset), mDisplacement(inDisplacement), mUp(inUp), mSystem(inSystem), mCharacter(inCharacter), mIgnoredContacts(inIgnoredContacts), mContact(outContact) { }</div>
- <div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> </div>
- <div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetUserData(<a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> inUserData)<span class="keyword"> override </span>{ mOtherCharacter = <span class="keyword">reinterpret_cast<</span><a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *<span class="keyword">></span>(inUserData); }</div>
- <div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> </div>
- <div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddHit(<span class="keyword">const</span> <a class="code hl_class" href="class_shape_cast_result.html">ShapeCastResult</a> &inResult) <span class="keyword">override</span>;</div>
- <div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> </div>
- <div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <a class="code hl_class" href="class_vec3.html">RVec3</a> mBaseOffset;</div>
- <div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mDisplacement;</div>
- <div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mUp;</div>
- <div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <a class="code hl_class" href="class_physics_system.html">PhysicsSystem</a> * mSystem;</div>
- <div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> * mCharacter;</div>
- <div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> * mOtherCharacter = <span class="keyword">nullptr</span>;</div>
- <div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="keyword">const</span> IgnoredContactList & mIgnoredContacts;</div>
- <div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> Contact & mContact;</div>
- <div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> };</div>
- <div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> </div>
- <div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="comment">// Helper function to convert a Jolt collision result into a contact</span></div>
- <div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="keyword">template</span> <<span class="keyword">class</span> taCollector></div>
- <div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> sFillContactProperties(<span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inCharacter, Contact &outContact, <span class="keyword">const</span> <a class="code hl_class" href="class_body.html">Body</a> &inBody, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inUp, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, <span class="keyword">const</span> taCollector &inCollector, <span class="keyword">const</span> <a class="code hl_class" href="class_collide_shape_result.html">CollideShapeResult</a> &inResult);</div>
- <div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> sFillCharacterContactProperties(Contact &outContact, <span class="keyword">const</span> <a class="code hl_class" href="class_character_virtual.html">CharacterVirtual</a> *inOtherCharacter, <a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inBaseOffset, <span class="keyword">const</span> <a class="code hl_class" href="class_collide_shape_result.html">CollideShapeResult</a> &inResult);</div>
- <div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> </div>
- <div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="comment">// Move the shape from ioPosition and try to displace it by inVelocity * inDeltaTime, this will try to slide the shape along the world geometry</span></div>
- <div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="keywordtype">void</span> MoveShape(<a class="code hl_class" href="class_vec3.html">RVec3</a> &ioPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inVelocity, <span class="keywordtype">float</span> inDeltaTime, ContactList *outActiveContacts, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator</div>
- <div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> #ifdef JPH_DEBUG_RENDERER</div>
- <div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> , <span class="keywordtype">bool</span> inDrawConstraints = <span class="keyword">false</span></div>
- <div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> #endif <span class="comment">// JPH_DEBUG_RENDERER</span></div>
- <div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> );</div>
- <div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> </div>
- <div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="comment">// Ask the callback if inContact is a valid contact point</span></div>
- <div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> <span class="keywordtype">bool</span> ValidateContact(<span class="keyword">const</span> Contact &inContact) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> </div>
- <div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <span class="comment">// Trigger the contact callback for inContact and get the contact settings</span></div>
- <div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> <span class="keywordtype">void</span> ContactAdded(<span class="keyword">const</span> Contact &inContact, <a class="code hl_class" href="class_character_contact_settings.html">CharacterContactSettings</a> &ioSettings);</div>
- <div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> </div>
- <div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> <span class="comment">// Tests the shape for collision around inPosition</span></div>
- <div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keywordtype">void</span> GetContactsAtPosition(<a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inMovementDirection, <span class="keyword">const</span> <a class="code hl_class" href="class_shape.html">Shape</a> *inShape, TempContactList &outContacts, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
- <div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <span class="comment">// Remove penetrating contacts with the same body that have conflicting normals, leaving these will make the character mover get stuck</span></div>
- <div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> <span class="keywordtype">void</span> RemoveConflictingContacts(TempContactList &ioContacts, IgnoredContactList &outIgnoredContacts) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> </div>
- <div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="comment">// Convert contacts into constraints. The character is assumed to start at the origin and the constraints are planes around the origin that confine the movement of the character.</span></div>
- <div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> <span class="keywordtype">void</span> DetermineConstraints(TempContactList &inContacts, <span class="keywordtype">float</span> inDeltaTime, ConstraintList &outConstraints) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> </div>
- <div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <span class="comment">// Use the constraints to solve the displacement of the character. This will slide the character on the planes around the origin for as far as possible.</span></div>
- <div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <span class="keywordtype">void</span> SolveConstraints(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inVelocity, <span class="keywordtype">float</span> inDeltaTime, <span class="keywordtype">float</span> inTimeRemaining, ConstraintList &ioConstraints, IgnoredContactList &ioIgnoredContacts, <span class="keywordtype">float</span> &outTimeSimulated, <a class="code hl_class" href="class_vec3.html">Vec3</a> &outDisplacement, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator</div>
- <div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> #ifdef JPH_DEBUG_RENDERER</div>
- <div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> , <span class="keywordtype">bool</span> inDrawConstraints = <span class="keyword">false</span></div>
- <div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> #endif <span class="comment">// JPH_DEBUG_RENDERER</span></div>
- <div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> );</div>
- <div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> </div>
- <div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="comment">// Get the velocity of a body adjusted by the contact listener</span></div>
- <div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordtype">void</span> GetAdjustedBodyVelocity(<span class="keyword">const</span> <a class="code hl_class" href="class_body.html">Body</a>& inBody, <a class="code hl_class" href="class_vec3.html">Vec3</a> &outLinearVelocity, <a class="code hl_class" href="class_vec3.html">Vec3</a> &outAngularVelocity) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> </div>
- <div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <span class="comment">// Calculate the ground velocity of the character assuming it's standing on an object with specified linear and angular velocity and with specified center of mass.</span></div>
- <div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <span class="comment">// Note that we don't just take the point velocity because a point on an object with angular velocity traces an arc,</span></div>
- <div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <span class="comment">// so if you just take point velocity * delta time you get an error that accumulates over time</span></div>
- <div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <a class="code hl_class" href="class_vec3.html">Vec3</a> CalculateCharacterGroundVelocity(<a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inCenterOfMass, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inLinearVelocity, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inAngularVelocity, <span class="keywordtype">float</span> inDeltaTime) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> </div>
- <div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <span class="comment">// Handle contact with physics object that we're colliding against</span></div>
- <div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <span class="keywordtype">bool</span> HandleContact(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inVelocity, <a class="code hl_class" href="class_constraint.html">Constraint</a> &ioConstraint, <span class="keywordtype">float</span> inDeltaTime);</div>
- <div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> </div>
- <div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="comment">// Does a swept test of the shape from inPosition with displacement inDisplacement, returns true if there was a collision</span></div>
- <div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <span class="keywordtype">bool</span> GetFirstContactForSweep(<a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inPosition, <a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inDisplacement, Contact &outContact, <span class="keyword">const</span> IgnoredContactList &inIgnoredContacts, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter) <span class="keyword">const</span>;</div>
- <div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> </div>
- <div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <span class="comment">// Store contacts so that we have proper ground information</span></div>
- <div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordtype">void</span> StoreActiveContacts(<span class="keyword">const</span> TempContactList &inContacts, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> </div>
- <div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="comment">// This function will determine which contacts are touching the character and will calculate the one that is supporting us</span></div>
- <div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keywordtype">void</span> UpdateSupportingContact(<span class="keywordtype">bool</span> inSkipContactVelocityCheck, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> </div>
- <div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> <span class="keywordtype">void</span> MoveToContact(<a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inPosition, <span class="keyword">const</span> Contact &inContact, <span class="keyword">const</span> <a class="code hl_class" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &inBroadPhaseLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_object_layer_filter.html">ObjectLayerFilter</a> &inObjectLayerFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_body_filter.html">BodyFilter</a> &inBodyFilter, <span class="keyword">const</span> <a class="code hl_class" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter, <a class="code hl_class" href="class_temp_allocator.html">TempAllocator</a> &inAllocator);</div>
- <div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> </div>
- <div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <span class="comment">// This function returns the actual center of mass of the shape, not corrected for the character padding</span></div>
- <div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <span class="keyword">inline</span> <a class="code hl_class" href="class_mat44.html">RMat44</a> GetCenterOfMassTransform(<a class="code hl_class" href="class_vec3.html">RVec3Arg</a> inPosition, <a class="code hl_class" href="class_quat.html">QuatArg</a> inRotation, <span class="keyword">const</span> <a class="code hl_class" href="class_shape.html">Shape</a> *inShape)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_mat44.html#aba5427f45393b40263d52ec614cfa985">RMat44::sRotationTranslation</a>(inRotation, inPosition).<a class="code hl_function" href="class_mat44.html#a16f19b423139db52503bb8d6526d947f">PreTranslated</a>(mShapeOffset + inShape-><a class="code hl_function" href="class_shape.html#a7e34b0626a40c31db0b2a761922adb1a">GetCenterOfMass</a>()).<a class="code hl_function" href="class_mat44.html#a16b90363d2e120bd570c4200e29f5ba6">PostTranslated</a>(mCharacterPadding * mUp);</div>
- <div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> }</div>
- <div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> </div>
- <div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="comment">// This function returns the position of the inner rigid body</span></div>
- <div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> <span class="keyword">inline</span> <a class="code hl_class" href="class_vec3.html">RVec3</a> GetInnerBodyPosition()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span><span class="keyword"> </span>{</div>
- <div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keywordflow">return</span> mPosition + (mRotation * mShapeOffset + mCharacterPadding * <a class="code hl_variable" href="class_character_base_settings.html#a97272d417a1fa07e4c9c6213e7d5c291">mUp</a>);</div>
- <div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> }</div>
- <div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> </div>
- <div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> <span class="comment">// Move the inner rigid body to the current position</span></div>
- <div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> <span class="keywordtype">void</span> UpdateInnerBodyTransform();</div>
- <div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> </div>
- <div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <span class="comment">// ID</span></div>
- <div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> <a class="code hl_class" href="class_character_i_d.html">CharacterID</a> mID;</div>
- <div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> </div>
- <div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> <span class="comment">// Our main listener for contacts</span></div>
- <div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <a class="code hl_class" href="class_character_contact_listener.html">CharacterContactListener</a> * mListener = <span class="keyword">nullptr</span>;</div>
- <div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> </div>
- <div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <span class="comment">// Interface to detect collision between characters</span></div>
- <div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> <a class="code hl_class" href="class_character_vs_character_collision.html">CharacterVsCharacterCollision</a> * mCharacterVsCharacterCollision = <span class="keyword">nullptr</span>;</div>
- <div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> </div>
- <div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="comment">// Movement settings</span></div>
- <div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> <a class="code hl_enumeration" href="_back_face_mode_8h.html#a3f6892e7ae9fb32f745f39d0fb911d70">EBackFaceMode</a> mBackFaceMode; <span class="comment">// When colliding with back faces, the character will not be able to move through back facing triangles. Use this if you have triangles that need to collide on both sides.</span></div>
- <div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <span class="keywordtype">float</span> mPredictiveContactDistance; <span class="comment">// How far to scan outside of the shape for predictive contacts. A value of 0 will most likely cause the character to get stuck as it cannot properly calculate a sliding direction anymore. A value that's too high will cause ghost collisions.</span></div>
- <div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> mMaxCollisionIterations; <span class="comment">// Max amount of collision loops</span></div>
- <div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> mMaxConstraintIterations; <span class="comment">// How often to try stepping in the constraint solving</span></div>
- <div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> <span class="keywordtype">float</span> mMinTimeRemaining; <span class="comment">// Early out condition: If this much time is left to simulate we are done</span></div>
- <div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> <span class="keywordtype">float</span> mCollisionTolerance; <span class="comment">// How far we're willing to penetrate geometry</span></div>
- <div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> <span class="keywordtype">float</span> mCharacterPadding; <span class="comment">// How far we try to stay away from the geometry, this ensures that the sweep will hit as little as possible lowering the collision cost and reducing the risk of getting stuck</span></div>
- <div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> <a class="code hl_typedef" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> mMaxNumHits; <span class="comment">// Max num hits to collect in order to avoid excess of contact points collection</span></div>
- <div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> <span class="keywordtype">float</span> mHitReductionCosMaxAngle; <span class="comment">// Cos(angle) where angle is the maximum angle between two hits contact normals that are allowed to be merged during hit reduction. Default is around 2.5 degrees. Set to -1 to turn off.</span></div>
- <div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> <span class="keywordtype">float</span> mPenetrationRecoverySpeed; <span class="comment">// This value governs how fast a penetration will be resolved, 0 = nothing is resolved, 1 = everything in one update</span></div>
- <div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="class_character_base_settings.html#a203e7cb826ccd98d6f3551f2aa198ee3">mEnhancedInternalEdgeRemoval</a>; <span class="comment">// Set to indicate that extra effort should be made to try to remove ghost contacts (collisions with internal edges of a mesh). This is more expensive but makes bodies move smoother over a mesh with convex edges.</span></div>
- <div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> </div>
- <div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> <span class="comment">// Character mass (kg)</span></div>
- <div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <span class="keywordtype">float</span> mMass;</div>
- <div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> </div>
- <div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> <span class="comment">// Maximum force with which the character can push other bodies (N)</span></div>
- <div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <span class="keywordtype">float</span> mMaxStrength;</div>
- <div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> </div>
- <div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> <span class="comment">// An extra offset applied to the shape in local space. This allows applying an extra offset to the shape in local space.</span></div>
- <div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mShapeOffset = <a class="code hl_function" href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">Vec3::sZero</a>();</div>
- <div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> </div>
- <div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <span class="comment">// Current position (of the base, not the center of mass)</span></div>
- <div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> <a class="code hl_class" href="class_vec3.html">RVec3</a> mPosition = <a class="code hl_function" href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">RVec3::sZero</a>();</div>
- <div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> </div>
- <div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <span class="comment">// Current rotation (of the base, not of the center of mass)</span></div>
- <div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> <a class="code hl_class" href="class_quat.html">Quat</a> mRotation = <a class="code hl_function" href="class_quat.html#a73a43fe262fbbbc0b1872d238b972794">Quat::sIdentity</a>();</div>
- <div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> </div>
- <div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> <span class="comment">// Current linear velocity</span></div>
- <div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> <a class="code hl_class" href="class_vec3.html">Vec3</a> mLinearVelocity = <a class="code hl_function" href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">Vec3::sZero</a>();</div>
- <div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> </div>
- <div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> <span class="comment">// List of contacts that were active in the last frame</span></div>
- <div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> ContactList mActiveContacts;</div>
- <div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> </div>
- <div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> <span class="comment">// Remembers how often we called StartTrackingContactChanges</span></div>
- <div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <span class="keywordtype">int</span> mTrackingContactChanges = 0;</div>
- <div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> </div>
- <div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> <span class="comment">// View from a contact listener perspective on which contacts have been added/removed</span></div>
- <div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> <span class="keyword">struct </span>ListenerContactValue</div>
- <div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> {</div>
- <div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> ListenerContactValue() = <span class="keywordflow">default</span>;</div>
- <div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> <span class="keyword">explicit</span> ListenerContactValue(<span class="keyword">const</span> <a class="code hl_class" href="class_character_contact_settings.html">CharacterContactSettings</a> &inSettings) : mSettings(inSettings) { }</div>
- <div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> </div>
- <div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> <a class="code hl_class" href="class_character_contact_settings.html">CharacterContactSettings</a> mSettings;</div>
- <div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> <span class="keywordtype">int</span> mCount = 0;</div>
- <div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> };</div>
- <div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> </div>
- <div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> <span class="keyword">using </span>ListenerContacts = <a class="code hl_class" href="class_unordered_map.html">UnorderedMap<ContactKey, ListenerContactValue></a>;</div>
- <div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> ListenerContacts mListenerContacts;</div>
- <div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> </div>
- <div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> <span class="comment">// Remembers the delta time of the last update</span></div>
- <div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> <span class="keywordtype">float</span> mLastDeltaTime = 1.0f / 60.0f;</div>
- <div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> </div>
- <div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> <span class="comment">// Remember if we exceeded the maximum number of hits and had to remove similar contacts</span></div>
- <div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> <span class="keyword">mutable</span> <span class="keywordtype">bool</span> mMaxHitsExceeded = <span class="keyword">false</span>;</div>
- <div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> </div>
- <div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> <span class="comment">// User data, can be used for anything by the application</span></div>
- <div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> mUserData = 0;</div>
- <div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> </div>
- <div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> <span class="comment">// The inner rigid body that proxies the character in the world</span></div>
- <div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <a class="code hl_class" href="class_body_i_d.html">BodyID</a> mInnerBodyID;</div>
- <div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span>};</div>
- </div>
- <div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> </div>
- <div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span><a class="code hl_define" href="_core_8h.html#a73da8725998b00321a9db341202d650d">JPH_NAMESPACE_END</a></div>
- <div class="ttc" id="a_back_face_mode_8h_html_a3f6892e7ae9fb32f745f39d0fb911d70"><div class="ttname"><a href="_back_face_mode_8h.html#a3f6892e7ae9fb32f745f39d0fb911d70">EBackFaceMode</a></div><div class="ttdeci">EBackFaceMode</div><div class="ttdoc">How collision detection functions will treat back facing triangles.</div><div class="ttdef"><b>Definition</b> BackFaceMode.h:11</div></div>
- <div class="ttc" id="a_back_face_mode_8h_html_a3f6892e7ae9fb32f745f39d0fb911d70a7a77865372b008d1495ee006663e08ab"><div class="ttname"><a href="_back_face_mode_8h.html#a3f6892e7ae9fb32f745f39d0fb911d70a7a77865372b008d1495ee006663e08ab">EBackFaceMode::CollideWithBackFaces</a></div><div class="ttdeci">@ CollideWithBackFaces</div><div class="ttdoc">Collide with back facing surfaces/triangles.</div></div>
- <div class="ttc" id="a_body_filter_8h_html"><div class="ttname"><a href="_body_filter_8h.html">BodyFilter.h</a></div></div>
- <div class="ttc" id="a_broad_phase_layer_8h_html"><div class="ttname"><a href="_broad_phase_layer_8h.html">BroadPhaseLayer.h</a></div></div>
- <div class="ttc" id="a_character_base_8h_html"><div class="ttname"><a href="_character_base_8h.html">CharacterBase.h</a></div></div>
- <div class="ttc" id="a_character_i_d_8h_html"><div class="ttname"><a href="_character_i_d_8h.html">CharacterID.h</a></div></div>
- <div class="ttc" id="a_core_8h_html_a2712a9b0f778ab9d1aa5118b4e8e6bd8"><div class="ttname"><a href="_core_8h.html#a2712a9b0f778ab9d1aa5118b4e8e6bd8">JPH_EXPORT</a></div><div class="ttdeci">#define JPH_EXPORT</div><div class="ttdef"><b>Definition</b> Core.h:275</div></div>
- <div class="ttc" id="a_core_8h_html_a60e8696a4678cd348e991a1f172e53f7"><div class="ttname"><a href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a></div><div class="ttdeci">std::uint64_t uint64</div><div class="ttdef"><b>Definition</b> Core.h:504</div></div>
- <div class="ttc" id="a_core_8h_html_a69aa29b598b851b0640aa225a9e5d61d"><div class="ttname"><a href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdef"><b>Definition</b> Core.h:500</div></div>
- <div class="ttc" id="a_core_8h_html_a73da8725998b00321a9db341202d650d"><div class="ttname"><a href="_core_8h.html#a73da8725998b00321a9db341202d650d">JPH_NAMESPACE_END</a></div><div class="ttdeci">#define JPH_NAMESPACE_END</div><div class="ttdef"><b>Definition</b> Core.h:425</div></div>
- <div class="ttc" id="a_core_8h_html_ad14098b68b8c44ea6112601031268405"><div class="ttname"><a href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a></div><div class="ttdeci">#define JPH_NAMESPACE_BEGIN</div><div class="ttdef"><b>Definition</b> Core.h:419</div></div>
- <div class="ttc" id="a_hash_combine_8h_html_a396c677c4eb61f19e11cc202aac23c38"><div class="ttname"><a href="_hash_combine_8h.html#a396c677c4eb61f19e11cc202aac23c38">HashBytes</a></div><div class="ttdeci">JPH_NAMESPACE_BEGIN uint64 HashBytes(const void *inData, uint inSize, uint64 inSeed=0xcbf29ce484222325UL)</div><div class="ttdef"><b>Definition</b> HashCombine.h:15</div></div>
- <div class="ttc" id="a_math_8h_html_a636689581f2a6ce1d3030dc4dd83b2f5"><div class="ttname"><a href="_math_8h.html#a636689581f2a6ce1d3030dc4dd83b2f5">DegreesToRadians</a></div><div class="ttdeci">JPH_INLINE constexpr float DegreesToRadians(float inV)</div><div class="ttdoc">Convert a value from degrees to radians.</div><div class="ttdef"><b>Definition</b> Math.h:16</div></div>
- <div class="ttc" id="a_memory_8h_html_a91074fb218fe28954a0938c099ddd9e0"><div class="ttname"><a href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a></div><div class="ttdeci">#define JPH_OVERRIDE_NEW_DELETE</div><div class="ttdoc">Macro to override the new and delete functions.</div><div class="ttdef"><b>Definition</b> Memory.h:50</div></div>
- <div class="ttc" id="a_motion_type_8h_html"><div class="ttname"><a href="_motion_type_8h.html">MotionType.h</a></div></div>
- <div class="ttc" id="a_motion_type_8h_html_a328245ddbb758681fad3c44c9d488fd8"><div class="ttname"><a href="_motion_type_8h.html#a328245ddbb758681fad3c44c9d488fd8">EMotionType</a></div><div class="ttdeci">EMotionType</div><div class="ttdoc">Motion type of a physics body.</div><div class="ttdef"><b>Definition</b> MotionType.h:11</div></div>
- <div class="ttc" id="a_object_layer_8h_html"><div class="ttname"><a href="_object_layer_8h.html">ObjectLayer.h</a></div></div>
- <div class="ttc" id="a_object_layer_8h_html_a960eb396e2803ddad87bf25e0dcb4470"><div class="ttname"><a href="_object_layer_8h.html#a960eb396e2803ddad87bf25e0dcb4470">ObjectLayer</a></div><div class="ttdeci">uint16 ObjectLayer</div><div class="ttdef"><b>Definition</b> ObjectLayer.h:16</div></div>
- <div class="ttc" id="a_s_t_l_temp_allocator_8h_html"><div class="ttname"><a href="_s_t_l_temp_allocator_8h.html">STLTempAllocator.h</a></div></div>
- <div class="ttc" id="a_transformed_shape_8h_html"><div class="ttname"><a href="_transformed_shape_8h.html">TransformedShape.h</a></div></div>
- <div class="ttc" id="a_trigonometry_8h_html_a40fafb1c427199b6855d704fc79cd1cf"><div class="ttname"><a href="_trigonometry_8h.html#a40fafb1c427199b6855d704fc79cd1cf">Cos</a></div><div class="ttdeci">JPH_INLINE float Cos(float inX)</div><div class="ttdoc">Cosine of x (input in radians)</div><div class="ttdef"><b>Definition</b> Trigonometry.h:20</div></div>
- <div class="ttc" id="aclass_array_html"><div class="ttname"><a href="class_array.html">Array</a></div><div class="ttdef"><b>Definition</b> Array.h:36</div></div>
- <div class="ttc" id="aclass_body_filter_html"><div class="ttname"><a href="class_body_filter.html">BodyFilter</a></div><div class="ttdoc">Class function to filter out bodies, returns true if test should collide with body.</div><div class="ttdef"><b>Definition</b> BodyFilter.h:16</div></div>
- <div class="ttc" id="aclass_body_html"><div class="ttname"><a href="class_body.html">Body</a></div><div class="ttdef"><b>Definition</b> Body.h:39</div></div>
- <div class="ttc" id="aclass_body_i_d_html"><div class="ttname"><a href="class_body_i_d.html">BodyID</a></div><div class="ttdoc">ID of a body. This is a way of reasoning about bodies in a multithreaded simulation while avoiding ra...</div><div class="ttdef"><b>Definition</b> BodyID.h:13</div></div>
- <div class="ttc" id="aclass_broad_phase_layer_filter_html"><div class="ttname"><a href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a></div><div class="ttdoc">Filter class for broadphase layers.</div><div class="ttdef"><b>Definition</b> BroadPhaseLayer.h:94</div></div>
- <div class="ttc" id="aclass_character_base_html"><div class="ttname"><a href="class_character_base.html">CharacterBase</a></div><div class="ttdoc">Base class for character class.</div><div class="ttdef"><b>Definition</b> CharacterBase.h:54</div></div>
- <div class="ttc" id="aclass_character_base_settings_html"><div class="ttname"><a href="class_character_base_settings.html">CharacterBaseSettings</a></div><div class="ttdoc">Base class for configuration of a character.</div><div class="ttdef"><b>Definition</b> CharacterBase.h:21</div></div>
- <div class="ttc" id="aclass_character_base_settings_html_a203e7cb826ccd98d6f3551f2aa198ee3"><div class="ttname"><a href="class_character_base_settings.html#a203e7cb826ccd98d6f3551f2aa198ee3">CharacterBaseSettings::mEnhancedInternalEdgeRemoval</a></div><div class="ttdeci">bool mEnhancedInternalEdgeRemoval</div><div class="ttdoc">Set to indicate that extra effort should be made to try to remove ghost contacts (collisions with int...</div><div class="ttdef"><b>Definition</b> CharacterBase.h:45</div></div>
- <div class="ttc" id="aclass_character_base_settings_html_a95875f7606ab4eaed1259b237cfb22d3"><div class="ttname"><a href="class_character_base_settings.html#a95875f7606ab4eaed1259b237cfb22d3">CharacterBaseSettings::operator=</a></div><div class="ttdeci">CharacterBaseSettings & operator=(const CharacterBaseSettings &)=default</div></div>
- <div class="ttc" id="aclass_character_base_settings_html_a97272d417a1fa07e4c9c6213e7d5c291"><div class="ttname"><a href="class_character_base_settings.html#a97272d417a1fa07e4c9c6213e7d5c291">CharacterBaseSettings::mUp</a></div><div class="ttdeci">Vec3 mUp</div><div class="ttdoc">Vector indicating the up direction of the character.</div><div class="ttdef"><b>Definition</b> CharacterBase.h:34</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html"><div class="ttname"><a href="class_character_contact_listener.html">CharacterContactListener</a></div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:86</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a07550deec345e7d94ca05afdd341b11d"><div class="ttname"><a href="class_character_contact_listener.html#a07550deec345e7d94ca05afdd341b11d">CharacterContactListener::OnContactAdded</a></div><div class="ttdeci">virtual void OnContactAdded(const CharacterVirtual *inCharacter, const BodyID &inBodyID2, const SubShapeID &inSubShapeID2, RVec3Arg inContactPosition, Vec3Arg inContactNormal, CharacterContactSettings &ioSettings)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:108</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a1cbf56ca2333e878c3d7da75b9dfc0ba"><div class="ttname"><a href="class_character_contact_listener.html#a1cbf56ca2333e878c3d7da75b9dfc0ba">CharacterContactListener::~CharacterContactListener</a></div><div class="ttdeci">virtual ~CharacterContactListener()=default</div><div class="ttdoc">Destructor.</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a1d0a270e8eca3596b4c2e4fd500c8b0c"><div class="ttname"><a href="class_character_contact_listener.html#a1d0a270e8eca3596b4c2e4fd500c8b0c">CharacterContactListener::OnContactRemoved</a></div><div class="ttdeci">virtual void OnContactRemoved(const CharacterVirtual *inCharacter, const BodyID &inBodyID2, const SubShapeID &inSubShapeID2)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:124</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a46fc7a819cf904aa3db5cf1648f21530"><div class="ttname"><a href="class_character_contact_listener.html#a46fc7a819cf904aa3db5cf1648f21530">CharacterContactListener::OnContactValidate</a></div><div class="ttdeci">virtual bool OnContactValidate(const CharacterVirtual *inCharacter, const BodyID &inBodyID2, const SubShapeID &inSubShapeID2)</div><div class="ttdoc">Checks if a character can collide with specified body. Return true if the contact is valid.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:96</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a4d1a8b09ee3a923d4aa7bc53aec160b6"><div class="ttname"><a href="class_character_contact_listener.html#a4d1a8b09ee3a923d4aa7bc53aec160b6">CharacterContactListener::OnContactSolve</a></div><div class="ttdeci">virtual void OnContactSolve(const CharacterVirtual *inCharacter, const BodyID &inBodyID2, const SubShapeID &inSubShapeID2, RVec3Arg inContactPosition, Vec3Arg inContactNormal, Vec3Arg inContactVelocity, const PhysicsMaterial *inContactMaterial, Vec3Arg inCharacterVelocity, Vec3 &ioNewCharacterVelocity)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:146</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a5ede2bdf086dafcaa1f53fd6fe4a5e7b"><div class="ttname"><a href="class_character_contact_listener.html#a5ede2bdf086dafcaa1f53fd6fe4a5e7b">CharacterContactListener::OnCharacterContactValidate</a></div><div class="ttdeci">virtual bool OnCharacterContactValidate(const CharacterVirtual *inCharacter, const CharacterVirtual *inOtherCharacter, const SubShapeID &inSubShapeID2)</div><div class="ttdoc">Same as OnContactValidate but when colliding with a CharacterVirtual.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:99</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a66b85f5bafb3d0fd5a07ef1b278826e4"><div class="ttname"><a href="class_character_contact_listener.html#a66b85f5bafb3d0fd5a07ef1b278826e4">CharacterContactListener::OnCharacterContactAdded</a></div><div class="ttdeci">virtual void OnCharacterContactAdded(const CharacterVirtual *inCharacter, const CharacterVirtual *inOtherCharacter, const SubShapeID &inSubShapeID2, RVec3Arg inContactPosition, Vec3Arg inContactNormal, CharacterContactSettings &ioSettings)</div><div class="ttdoc">Same as OnContactAdded but when colliding with a CharacterVirtual.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:127</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a861889d3b1f2349eb1726ebfd979bf53"><div class="ttname"><a href="class_character_contact_listener.html#a861889d3b1f2349eb1726ebfd979bf53">CharacterContactListener::OnAdjustBodyVelocity</a></div><div class="ttdeci">virtual void OnAdjustBodyVelocity(const CharacterVirtual *inCharacter, const Body &inBody2, Vec3 &ioLinearVelocity, Vec3 &ioAngularVelocity)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:93</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_a8aaba674bebace7120443c4e0bdfe2a1"><div class="ttname"><a href="class_character_contact_listener.html#a8aaba674bebace7120443c4e0bdfe2a1">CharacterContactListener::OnCharacterContactRemoved</a></div><div class="ttdeci">virtual void OnCharacterContactRemoved(const CharacterVirtual *inCharacter, const CharacterID &inOtherCharacterID, const SubShapeID &inSubShapeID2)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:134</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_aa417fa0d6cc8507b5848ab2d44fea081"><div class="ttname"><a href="class_character_contact_listener.html#aa417fa0d6cc8507b5848ab2d44fea081">CharacterContactListener::OnContactPersisted</a></div><div class="ttdeci">virtual void OnContactPersisted(const CharacterVirtual *inCharacter, const BodyID &inBodyID2, const SubShapeID &inSubShapeID2, RVec3Arg inContactPosition, Vec3Arg inContactNormal, CharacterContactSettings &ioSettings)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:117</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_ad611891b1e902a1bc9596935362c141e"><div class="ttname"><a href="class_character_contact_listener.html#ad611891b1e902a1bc9596935362c141e">CharacterContactListener::OnCharacterContactSolve</a></div><div class="ttdeci">virtual void OnCharacterContactSolve(const CharacterVirtual *inCharacter, const CharacterVirtual *inOtherCharacter, const SubShapeID &inSubShapeID2, RVec3Arg inContactPosition, Vec3Arg inContactNormal, Vec3Arg inContactVelocity, const PhysicsMaterial *inContactMaterial, Vec3Arg inCharacterVelocity, Vec3 &ioNewCharacterVelocity)</div><div class="ttdoc">Same as OnContactSolve but when colliding with a CharacterVirtual.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:149</div></div>
- <div class="ttc" id="aclass_character_contact_listener_html_aebc3550bfd06ec663f6aefa001bb5d2e"><div class="ttname"><a href="class_character_contact_listener.html#aebc3550bfd06ec663f6aefa001bb5d2e">CharacterContactListener::OnCharacterContactPersisted</a></div><div class="ttdeci">virtual void OnCharacterContactPersisted(const CharacterVirtual *inCharacter, const CharacterVirtual *inOtherCharacter, const SubShapeID &inSubShapeID2, RVec3Arg inContactPosition, Vec3Arg inContactNormal, CharacterContactSettings &ioSettings)</div><div class="ttdoc">Same as OnContactPersisted but when colliding with a CharacterVirtual.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:130</div></div>
- <div class="ttc" id="aclass_character_contact_settings_html"><div class="ttname"><a href="class_character_contact_settings.html">CharacterContactSettings</a></div><div class="ttdoc">This class contains settings that allow you to override the behavior of a character's collision respo...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:72</div></div>
- <div class="ttc" id="aclass_character_contact_settings_html_a08d217d923d36ad868fa83b8d1851833"><div class="ttname"><a href="class_character_contact_settings.html#a08d217d923d36ad868fa83b8d1851833">CharacterContactSettings::mCanPushCharacter</a></div><div class="ttdeci">bool mCanPushCharacter</div><div class="ttdoc">True when the object can push the virtual character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:75</div></div>
- <div class="ttc" id="aclass_character_contact_settings_html_a9e1a4f9fb9e52f755a15af2066cf441b"><div class="ttname"><a href="class_character_contact_settings.html#a9e1a4f9fb9e52f755a15af2066cf441b">CharacterContactSettings::mCanReceiveImpulses</a></div><div class="ttdeci">bool mCanReceiveImpulses</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:80</div></div>
- <div class="ttc" id="aclass_character_i_d_html"><div class="ttname"><a href="class_character_i_d.html">CharacterID</a></div><div class="ttdoc">ID of a character. Used primarily to identify deleted characters and to sort deterministically.</div><div class="ttdef"><b>Definition</b> CharacterID.h:13</div></div>
- <div class="ttc" id="aclass_character_i_d_html_a8e85050d3a9b1de9e00c78ea5b3de3f5"><div class="ttname"><a href="class_character_i_d.html#a8e85050d3a9b1de9e00c78ea5b3de3f5">CharacterID::sNextCharacterID</a></div><div class="ttdeci">static CharacterID sNextCharacterID()</div><div class="ttdoc">Generate the next available character ID.</div><div class="ttdef"><b>Definition</b> CharacterID.h:74</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html">CharacterVirtual::ContactKey</a></div><div class="ttdoc">Uniquely identifies a contact between a character and another body or character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:443</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_a0d70de66ff7069cc35709b5d06600f5d"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#a0d70de66ff7069cc35709b5d06600f5d">CharacterVirtual::ContactKey::mBodyB</a></div><div class="ttdeci">BodyID mBodyB</div><div class="ttdoc">ID of body we're colliding with (if not invalid)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:477</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_a103e68f5bd9450a192261b1e11a0c0ef"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#a103e68f5bd9450a192261b1e11a0c0ef">CharacterVirtual::ContactKey::ContactKey</a></div><div class="ttdeci">ContactKey(const CharacterID &inCharacterIDB, const SubShapeID &inSubShapeID)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:449</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_a232bdf5cb80a1b4ee8fe0c5d3f733649"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#a232bdf5cb80a1b4ee8fe0c5d3f733649">CharacterVirtual::ContactKey::ContactKey</a></div><div class="ttdeci">ContactKey()=default</div><div class="ttdoc">Constructor.</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_a34228ee00eabccf4048ae679ff233c8f"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#a34228ee00eabccf4048ae679ff233c8f">CharacterVirtual::ContactKey::ContactKey</a></div><div class="ttdeci">ContactKey(const BodyID &inBodyB, const SubShapeID &inSubShapeID)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:448</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_a3c2263c320dd418f740c6864b053d024"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#a3c2263c320dd418f740c6864b053d024">CharacterVirtual::ContactKey::IsSameBody</a></div><div class="ttdeci">bool IsSameBody(const ContactKey &inOther) const</div><div class="ttdoc">Checks if two contacts refer to the same body (or virtual character)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:453</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_a71d6342427e6eb8dd0089b6a86f392f9"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#a71d6342427e6eb8dd0089b6a86f392f9">CharacterVirtual::ContactKey::GetHash</a></div><div class="ttdeci">uint64 GetHash() const</div><div class="ttdoc">Hash of this structure.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:467</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_a75c5f74c807559d97002c1b2aad077b9"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#a75c5f74c807559d97002c1b2aad077b9">CharacterVirtual::ContactKey::mCharacterIDB</a></div><div class="ttdeci">CharacterID mCharacterIDB</div><div class="ttdoc">Character we're colliding with (if not invalid)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:478</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_aa3d8a41431389b608f3856dbdc14a2b2"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#aa3d8a41431389b608f3856dbdc14a2b2">CharacterVirtual::ContactKey::ContactKey</a></div><div class="ttdeci">ContactKey(const ContactKey &inContact)=default</div></div>
- <div class="ttc" id="aclass_character_virtual_1_1_contact_key_html_ac26c6719debb6a601e9a504569e36e74"><div class="ttname"><a href="class_character_virtual_1_1_contact_key.html#ac26c6719debb6a601e9a504569e36e74">CharacterVirtual::ContactKey::mSubShapeIDB</a></div><div class="ttdeci">SubShapeID mSubShapeIDB</div><div class="ttdoc">Sub shape ID of body or character we're colliding with.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:479</div></div>
- <div class="ttc" id="aclass_character_virtual_html"><div class="ttname"><a href="class_character_virtual.html">CharacterVirtual</a></div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:205</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a1596c6b7df4854e170f59416c67aeabc"><div class="ttname"><a href="class_character_virtual.html#a1596c6b7df4854e170f59416c67aeabc">CharacterVirtual::SetEnhancedInternalEdgeRemoval</a></div><div class="ttdeci">void SetEnhancedInternalEdgeRemoval(bool inApply)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:276</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a181bbafd30966b7ecc4313283c3a1252"><div class="ttname"><a href="class_character_virtual.html#a181bbafd30966b7ecc4313283c3a1252">CharacterVirtual::GetTransformedShape</a></div><div class="ttdeci">TransformedShape GetTransformedShape() const</div><div class="ttdoc">Get the transformed shape that represents the volume of the character, can be used for collision chec...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:411</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a1ae032d5f31f955686e3c519abfaa1a4"><div class="ttname"><a href="class_character_virtual.html#a1ae032d5f31f955686e3c519abfaa1a4">CharacterVirtual::GetMass</a></div><div class="ttdeci">float GetMass() const</div><div class="ttdoc">Character mass (kg)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:263</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a2407cd5fec2965214f0d9c3c27eb47ca"><div class="ttname"><a href="class_character_virtual.html#a2407cd5fec2965214f0d9c3c27eb47ca">CharacterVirtual::GetPenetrationRecoverySpeed</a></div><div class="ttdeci">float GetPenetrationRecoverySpeed() const</div><div class="ttdoc">This value governs how fast a penetration will be resolved, 0 = nothing is resolved,...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:271</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a24f025912ca62c15e830bd6213129d6b"><div class="ttname"><a href="class_character_virtual.html#a24f025912ca62c15e830bd6213129d6b">CharacterVirtual::GetPosition</a></div><div class="ttdeci">RVec3 GetPosition() const</div><div class="ttdoc">Get the position of the character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:242</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a25da7eb8e9ff5316e357cbf59027b57e"><div class="ttname"><a href="class_character_virtual.html#a25da7eb8e9ff5316e357cbf59027b57e">CharacterVirtual::SetLinearVelocity</a></div><div class="ttdeci">void SetLinearVelocity(Vec3Arg inLinearVelocity)</div><div class="ttdoc">Set the linear velocity of the character (m / s)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:239</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a2fcecdf5b3e0f584f2bb7ec5a128dbe6"><div class="ttname"><a href="class_character_virtual.html#a2fcecdf5b3e0f584f2bb7ec5a128dbe6">CharacterVirtual::GetActiveContacts</a></div><div class="ttdeci">const ContactList & GetActiveContacts() const</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:510</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a36a2e0c44e55954fbc62aed4e030ab01"><div class="ttname"><a href="class_character_virtual.html#a36a2e0c44e55954fbc62aed4e030ab01">CharacterVirtual::GetWorldTransform</a></div><div class="ttdeci">RMat44 GetWorldTransform() const</div><div class="ttdoc">Calculate the world transform of the character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:257</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a3982b9711188db9d30ee0dab32a81d0b"><div class="ttname"><a href="class_character_virtual.html#a3982b9711188db9d30ee0dab32a81d0b">CharacterVirtual::SetCharacterVsCharacterCollision</a></div><div class="ttdeci">void SetCharacterVsCharacterCollision(CharacterVsCharacterCollision *inCharacterVsCharacterCollision)</div><div class="ttdoc">Set the character vs character collision interface.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:233</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a44dfb8aa6d88860b6a4ff094d211871e"><div class="ttname"><a href="class_character_virtual.html#a44dfb8aa6d88860b6a4ff094d211871e">CharacterVirtual::GetCenterOfMassPosition</a></div><div class="ttdeci">RVec3 GetCenterOfMassPosition() const</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:254</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a4bcaf2938288d8a8cbf907f74851b109"><div class="ttname"><a href="class_character_virtual.html#a4bcaf2938288d8a8cbf907f74851b109">CharacterVirtual::GetMaxHitsExceeded</a></div><div class="ttdeci">bool GetMaxHitsExceeded() const</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:293</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a59a36680856b7f106bbad79345c1525b"><div class="ttname"><a href="class_character_virtual.html#a59a36680856b7f106bbad79345c1525b">CharacterVirtual::HasCollidedWith</a></div><div class="ttdeci">bool HasCollidedWith(const BodyID &inBody) const</div><div class="ttdoc">Check if the character is currently in contact with or has collided with another body in the last ope...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:513</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a5e3e1a90e94534669194d929a4f15700"><div class="ttname"><a href="class_character_virtual.html#a5e3e1a90e94534669194d929a4f15700">CharacterVirtual::SetMaxStrength</a></div><div class="ttdeci">void SetMaxStrength(float inMaxStrength)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:268</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a643ed04caa01ba9e4e4fc9d5058dc3d7"><div class="ttname"><a href="class_character_virtual.html#a643ed04caa01ba9e4e4fc9d5058dc3d7">CharacterVirtual::GetCharacterPadding</a></div><div class="ttdeci">float GetCharacterPadding() const</div><div class="ttdoc">Character padding.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:279</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a683ab8265d9c39c512864b8041c675aa"><div class="ttname"><a href="class_character_virtual.html#a683ab8265d9c39c512864b8041c675aa">CharacterVirtual::SetMaxNumHits</a></div><div class="ttdeci">void SetMaxNumHits(uint inMaxHits)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:283</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a6b037237b95355079f9aca7904899004"><div class="ttname"><a href="class_character_virtual.html#a6b037237b95355079f9aca7904899004">CharacterVirtual::GetMaxNumHits</a></div><div class="ttdeci">uint GetMaxNumHits() const</div><div class="ttdoc">Max num hits to collect in order to avoid excess of contact points collection.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:282</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a6d11baa32abe7ab7f75100daca4fda2c"><div class="ttname"><a href="class_character_virtual.html#a6d11baa32abe7ab7f75100daca4fda2c">CharacterVirtual::GetMaxStrength</a></div><div class="ttdeci">float GetMaxStrength() const</div><div class="ttdoc">Maximum force with which the character can push other bodies (N)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:267</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a6fd639e0938a0c068ff683a33ee613c9"><div class="ttname"><a href="class_character_virtual.html#a6fd639e0938a0c068ff683a33ee613c9">CharacterVirtual::SetShapeOffset</a></div><div class="ttdeci">void SetShapeOffset(Vec3Arg inShapeOffset)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:297</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a7d6637e5d42ab04152b831b609014af1"><div class="ttname"><a href="class_character_virtual.html#a7d6637e5d42ab04152b831b609014af1">CharacterVirtual::GetInnerBodyID</a></div><div class="ttdeci">BodyID GetInnerBodyID() const</div><div class="ttdoc">Optional inner rigid body that proxies the character in the world. Can be used to update body propert...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:304</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a93a6110e80e08ef092d7f010a45e3bb5"><div class="ttname"><a href="class_character_virtual.html#a93a6110e80e08ef092d7f010a45e3bb5">CharacterVirtual::SetMass</a></div><div class="ttdeci">void SetMass(float inMass)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:264</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a9e39a28dbce389399848347dbf95956a"><div class="ttname"><a href="class_character_virtual.html#a9e39a28dbce389399848347dbf95956a">CharacterVirtual::GetEnhancedInternalEdgeRemoval</a></div><div class="ttdeci">bool GetEnhancedInternalEdgeRemoval() const</div><div class="ttdoc">Set to indicate that extra effort should be made to try to remove ghost contacts (collisions with int...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:275</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a9eadc62aef211d711e9856437d407c4b"><div class="ttname"><a href="class_character_virtual.html#a9eadc62aef211d711e9856437d407c4b">CharacterVirtual::HasCollidedWith</a></div><div class="ttdeci">bool HasCollidedWith(const CharacterID &inCharacterID) const</div><div class="ttdoc">Check if the character is currently in contact with or has collided with another character in the las...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:522</div></div>
- <div class="ttc" id="aclass_character_virtual_html_a9f8aca4dbbb9c926e52ca8b7337c4c71"><div class="ttname"><a href="class_character_virtual.html#a9f8aca4dbbb9c926e52ca8b7337c4c71">CharacterVirtual::GetLinearVelocity</a></div><div class="ttdeci">Vec3 GetLinearVelocity() const</div><div class="ttdoc">Get the linear velocity of the character (m / s)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:236</div></div>
- <div class="ttc" id="aclass_character_virtual_html_aacf19c0b42216d6dc497c20556b642e7"><div class="ttname"><a href="class_character_virtual.html#aacf19c0b42216d6dc497c20556b642e7">CharacterVirtual::GetListener</a></div><div class="ttdeci">CharacterContactListener * GetListener() const</div><div class="ttdoc">Get the current contact listener.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:230</div></div>
- <div class="ttc" id="aclass_character_virtual_html_aad9788892410b982d43bbd34ef8a016c"><div class="ttname"><a href="class_character_virtual.html#aad9788892410b982d43bbd34ef8a016c">CharacterVirtual::GetCenterOfMassTransform</a></div><div class="ttdeci">RMat44 GetCenterOfMassTransform() const</div><div class="ttdoc">Calculates the transform for this character's center of mass.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:260</div></div>
- <div class="ttc" id="aclass_character_virtual_html_ab1970bba46b2522707111bec95fa9e07"><div class="ttname"><a href="class_character_virtual.html#ab1970bba46b2522707111bec95fa9e07">CharacterVirtual::CharacterVirtual</a></div><div class="ttdeci">CharacterVirtual(const CharacterVirtualSettings *inSettings, RVec3Arg inPosition, QuatArg inRotation, PhysicsSystem *inSystem)</div><div class="ttdoc">Constructor without user data.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:218</div></div>
- <div class="ttc" id="aclass_character_virtual_html_ac0b74d1e4ec29a6a4853bc8cbb72578d"><div class="ttname"><a href="class_character_virtual.html#ac0b74d1e4ec29a6a4853bc8cbb72578d">CharacterVirtual::SetRotation</a></div><div class="ttdeci">void SetRotation(QuatArg inRotation)</div><div class="ttdoc">Set the rotation of the character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:251</div></div>
- <div class="ttc" id="aclass_character_virtual_html_ac74cd57b392ad9570e419251ce2d70c8"><div class="ttname"><a href="class_character_virtual.html#ac74cd57b392ad9570e419251ce2d70c8">CharacterVirtual::SetHitReductionCosMaxAngle</a></div><div class="ttdeci">void SetHitReductionCosMaxAngle(float inCosMaxAngle)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:287</div></div>
- <div class="ttc" id="aclass_character_virtual_html_acc49b466797667ae5f4bb1ee44e83b2e"><div class="ttname"><a href="class_character_virtual.html#acc49b466797667ae5f4bb1ee44e83b2e">CharacterVirtual::GetUserData</a></div><div class="ttdeci">uint64 GetUserData() const</div><div class="ttdoc">Access to the user data, can be used for anything by the application.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:300</div></div>
- <div class="ttc" id="aclass_character_virtual_html_ad36f1869421eeee298f3230d27841071"><div class="ttname"><a href="class_character_virtual.html#ad36f1869421eeee298f3230d27841071">CharacterVirtual::GetShapeOffset</a></div><div class="ttdeci">Vec3 GetShapeOffset() const</div><div class="ttdoc">An extra offset applied to the shape in local space. This allows applying an extra offset to the shap...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:296</div></div>
- <div class="ttc" id="aclass_character_virtual_html_ad767e40abd649085a9b2d8df813dbc8c"><div class="ttname"><a href="class_character_virtual.html#ad767e40abd649085a9b2d8df813dbc8c">CharacterVirtual::SetPenetrationRecoverySpeed</a></div><div class="ttdeci">void SetPenetrationRecoverySpeed(float inSpeed)</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:272</div></div>
- <div class="ttc" id="aclass_character_virtual_html_adacc8eaa741dfd330fbf2d58fa4b7541"><div class="ttname"><a href="class_character_virtual.html#adacc8eaa741dfd330fbf2d58fa4b7541">CharacterVirtual::HasCollidedWith</a></div><div class="ttdeci">bool HasCollidedWith(const CharacterVirtual *inCharacter) const</div><div class="ttdoc">Check if the character is currently in contact with or has collided with another character in the las...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:531</div></div>
- <div class="ttc" id="aclass_character_virtual_html_ae8dcc6de2efd2ad646722e92ed1ba38a"><div class="ttname"><a href="class_character_virtual.html#ae8dcc6de2efd2ad646722e92ed1ba38a">CharacterVirtual::GetHitReductionCosMaxAngle</a></div><div class="ttdeci">float GetHitReductionCosMaxAngle() const</div><div class="ttdoc">Cos(angle) where angle is the maximum angle between two hits contact normals that are allowed to be m...</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:286</div></div>
- <div class="ttc" id="aclass_character_virtual_html_af3622b341d017712981d6d26de99fe5c"><div class="ttname"><a href="class_character_virtual.html#af3622b341d017712981d6d26de99fe5c">CharacterVirtual::SetPosition</a></div><div class="ttdeci">void SetPosition(RVec3Arg inPosition)</div><div class="ttdoc">Set the position of the character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:245</div></div>
- <div class="ttc" id="aclass_character_virtual_html_af75ef0776d8c6726b25b5a278937780b"><div class="ttname"><a href="class_character_virtual.html#af75ef0776d8c6726b25b5a278937780b">CharacterVirtual::GetID</a></div><div class="ttdeci">const CharacterID & GetID() const</div><div class="ttdoc">The ID of this character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:224</div></div>
- <div class="ttc" id="aclass_character_virtual_html_af7bfe39cc6f67eeb4cd8d4d453d8b179"><div class="ttname"><a href="class_character_virtual.html#af7bfe39cc6f67eeb4cd8d4d453d8b179">CharacterVirtual::SetListener</a></div><div class="ttdeci">void SetListener(CharacterContactListener *inListener)</div><div class="ttdoc">Set the contact listener.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:227</div></div>
- <div class="ttc" id="aclass_character_virtual_html_afdec9f01a8b449ba9b29f39c42afe0d8"><div class="ttname"><a href="class_character_virtual.html#afdec9f01a8b449ba9b29f39c42afe0d8">CharacterVirtual::GetRotation</a></div><div class="ttdeci">Quat GetRotation() const</div><div class="ttdoc">Get the rotation of the character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:248</div></div>
- <div class="ttc" id="aclass_character_virtual_settings_html"><div class="ttname"><a href="class_character_virtual_settings.html">CharacterVirtualSettings</a></div><div class="ttdoc">Contains the configuration of a character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:23</div></div>
- <div class="ttc" id="aclass_character_virtual_settings_html_a82b5b48ad2c710d79bde14b29520983f"><div class="ttname"><a href="class_character_virtual_settings.html#a82b5b48ad2c710d79bde14b29520983f">CharacterVirtualSettings::CharacterVirtualSettings</a></div><div class="ttdeci">JPH_OVERRIDE_NEW_DELETE CharacterVirtualSettings()=default</div><div class="ttdoc">Constructor.</div></div>
- <div class="ttc" id="aclass_character_virtual_settings_html_a894dfc1bbdcf975b2878430ed7df33ec"><div class="ttname"><a href="class_character_virtual_settings.html#a894dfc1bbdcf975b2878430ed7df33ec">CharacterVirtualSettings::mInnerBodyShape</a></div><div class="ttdeci">RefConst< Shape > mInnerBodyShape</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:60</div></div>
- <div class="ttc" id="aclass_character_virtual_settings_html_a8a03c23735fbf94d802565a875d991bc"><div class="ttname"><a href="class_character_virtual_settings.html#a8a03c23735fbf94d802565a875d991bc">CharacterVirtualSettings::CharacterVirtualSettings</a></div><div class="ttdeci">CharacterVirtualSettings(const CharacterVirtualSettings &)=default</div></div>
- <div class="ttc" id="aclass_character_virtual_settings_html_aeef129c262e7026b5d08c7f3c1036e69"><div class="ttname"><a href="class_character_virtual_settings.html#aeef129c262e7026b5d08c7f3c1036e69">CharacterVirtualSettings::mInnerBodyIDOverride</a></div><div class="ttdeci">BodyID mInnerBodyIDOverride</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:64</div></div>
- <div class="ttc" id="aclass_character_vs_character_collision_html"><div class="ttname"><a href="class_character_vs_character_collision.html">CharacterVsCharacterCollision</a></div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:156</div></div>
- <div class="ttc" id="aclass_character_vs_character_collision_html_a1336885e4964801d0812b3089faa674b"><div class="ttname"><a href="class_character_vs_character_collision.html#a1336885e4964801d0812b3089faa674b">CharacterVsCharacterCollision::CollideCharacter</a></div><div class="ttdeci">virtual void CollideCharacter(const CharacterVirtual *inCharacter, RMat44Arg inCenterOfMassTransform, const CollideShapeSettings &inCollideShapeSettings, RVec3Arg inBaseOffset, CollideShapeCollector &ioCollector) const =0</div></div>
- <div class="ttc" id="aclass_character_vs_character_collision_html_ac761e9773325df331eb599af2f498525"><div class="ttname"><a href="class_character_vs_character_collision.html#ac761e9773325df331eb599af2f498525">CharacterVsCharacterCollision::~CharacterVsCharacterCollision</a></div><div class="ttdeci">virtual ~CharacterVsCharacterCollision()=default</div></div>
- <div class="ttc" id="aclass_character_vs_character_collision_html_acaecf7e7bdb70d2cade8e585b64a1b82"><div class="ttname"><a href="class_character_vs_character_collision.html#acaecf7e7bdb70d2cade8e585b64a1b82">CharacterVsCharacterCollision::CastCharacter</a></div><div class="ttdeci">virtual void CastCharacter(const CharacterVirtual *inCharacter, RMat44Arg inCenterOfMassTransform, Vec3Arg inDirection, const ShapeCastSettings &inShapeCastSettings, RVec3Arg inBaseOffset, CastShapeCollector &ioCollector) const =0</div></div>
- <div class="ttc" id="aclass_character_vs_character_collision_simple_html"><div class="ttname"><a href="class_character_vs_character_collision_simple.html">CharacterVsCharacterCollisionSimple</a></div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:183</div></div>
- <div class="ttc" id="aclass_character_vs_character_collision_simple_html_a1c9a2607b50bd68ced9c7262d01cad67"><div class="ttname"><a href="class_character_vs_character_collision_simple.html#a1c9a2607b50bd68ced9c7262d01cad67">CharacterVsCharacterCollisionSimple::Add</a></div><div class="ttdeci">void Add(CharacterVirtual *inCharacter)</div><div class="ttdoc">Add a character to the list of characters to check collision against.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:186</div></div>
- <div class="ttc" id="aclass_character_vs_character_collision_simple_html_ab7c49c006037265b684bccd7d9b4cd22"><div class="ttname"><a href="class_character_vs_character_collision_simple.html#ab7c49c006037265b684bccd7d9b4cd22">CharacterVsCharacterCollisionSimple::mCharacters</a></div><div class="ttdeci">Array< CharacterVirtual * > mCharacters</div><div class="ttdoc">The list of characters to check collision against.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:195</div></div>
- <div class="ttc" id="aclass_collide_shape_result_html"><div class="ttname"><a href="class_collide_shape_result.html">CollideShapeResult</a></div><div class="ttdoc">Class that contains all information of two colliding shapes.</div><div class="ttdef"><b>Definition</b> CollideShape.h:19</div></div>
- <div class="ttc" id="aclass_collide_shape_settings_html"><div class="ttname"><a href="class_collide_shape_settings.html">CollideShapeSettings</a></div><div class="ttdoc">Settings to be passed with a collision query.</div><div class="ttdef"><b>Definition</b> CollideShape.h:94</div></div>
- <div class="ttc" id="aclass_collision_collector_html"><div class="ttname"><a href="class_collision_collector.html">CollisionCollector</a></div><div class="ttdoc">Virtual interface that allows collecting multiple collision results.</div><div class="ttdef"><b>Definition</b> CollisionCollector.h:45</div></div>
- <div class="ttc" id="aclass_constraint_html"><div class="ttname"><a href="class_constraint.html">Constraint</a></div><div class="ttdoc">Base class for all physics constraints. A constraint removes one or more degrees of freedom for a rig...</div><div class="ttdef"><b>Definition</b> Constraint.h:108</div></div>
- <div class="ttc" id="aclass_mat44_html"><div class="ttname"><a href="class_mat44.html">Mat44</a></div><div class="ttdoc">Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.</div><div class="ttdef"><b>Definition</b> Mat44.h:13</div></div>
- <div class="ttc" id="aclass_mat44_html_a16b90363d2e120bd570c4200e29f5ba6"><div class="ttname"><a href="class_mat44.html#a16b90363d2e120bd570c4200e29f5ba6">Mat44::PostTranslated</a></div><div class="ttdeci">JPH_INLINE Mat44 PostTranslated(Vec3Arg inTranslation) const</div><div class="ttdoc">Post multiply by translation matrix: result = Mat44::sTranslation(inTranslation) * this (i....</div><div class="ttdef"><b>Definition</b> Mat44.inl:903</div></div>
- <div class="ttc" id="aclass_mat44_html_a16f19b423139db52503bb8d6526d947f"><div class="ttname"><a href="class_mat44.html#a16f19b423139db52503bb8d6526d947f">Mat44::PreTranslated</a></div><div class="ttdeci">JPH_INLINE Mat44 PreTranslated(Vec3Arg inTranslation) const</div><div class="ttdoc">Pre multiply by translation matrix: result = this * Mat44::sTranslation(inTranslation)</div><div class="ttdef"><b>Definition</b> Mat44.inl:898</div></div>
- <div class="ttc" id="aclass_mat44_html_aba5427f45393b40263d52ec614cfa985"><div class="ttname"><a href="class_mat44.html#aba5427f45393b40263d52ec614cfa985">Mat44::sRotationTranslation</a></div><div class="ttdeci">static JPH_INLINE Mat44 sRotationTranslation(QuatArg inR, Vec3Arg inT)</div><div class="ttdoc">Get matrix that rotates and translates.</div><div class="ttdef"><b>Definition</b> Mat44.inl:149</div></div>
- <div class="ttc" id="aclass_non_copyable_html"><div class="ttname"><a href="class_non_copyable.html">NonCopyable</a></div><div class="ttdoc">Class that makes another class non-copyable. Usage: Inherit from NonCopyable.</div><div class="ttdef"><b>Definition</b> NonCopyable.h:11</div></div>
- <div class="ttc" id="aclass_object_layer_filter_html"><div class="ttname"><a href="class_object_layer_filter.html">ObjectLayerFilter</a></div><div class="ttdoc">Filter class for object layers.</div><div class="ttdef"><b>Definition</b> ObjectLayer.h:28</div></div>
- <div class="ttc" id="aclass_physics_material_html"><div class="ttname"><a href="class_physics_material.html">PhysicsMaterial</a></div><div class="ttdef"><b>Definition</b> PhysicsMaterial.h:23</div></div>
- <div class="ttc" id="aclass_physics_system_html"><div class="ttname"><a href="class_physics_system.html">PhysicsSystem</a></div><div class="ttdef"><b>Definition</b> PhysicsSystem.h:30</div></div>
- <div class="ttc" id="aclass_plane_html"><div class="ttname"><a href="class_plane.html">Plane</a></div><div class="ttdoc">An infinite plane described by the formula X . Normal + Constant = 0.</div><div class="ttdef"><b>Definition</b> Plane.h:11</div></div>
- <div class="ttc" id="aclass_quat_html"><div class="ttname"><a href="class_quat.html">Quat</a></div><div class="ttdef"><b>Definition</b> Quat.h:33</div></div>
- <div class="ttc" id="aclass_quat_html_a73a43fe262fbbbc0b1872d238b972794"><div class="ttname"><a href="class_quat.html#a73a43fe262fbbbc0b1872d238b972794">Quat::sIdentity</a></div><div class="ttdeci">static JPH_INLINE Quat sIdentity()</div><div class="ttdef"><b>Definition</b> Quat.h:104</div></div>
- <div class="ttc" id="aclass_ref_const_html"><div class="ttname"><a href="class_ref_const.html">RefConst</a></div><div class="ttdef"><b>Definition</b> Reference.h:163</div></div>
- <div class="ttc" id="aclass_shape_cast_result_html"><div class="ttname"><a href="class_shape_cast_result.html">ShapeCastResult</a></div><div class="ttdoc">Result of a shape cast test.</div><div class="ttdef"><b>Definition</b> ShapeCast.h:114</div></div>
- <div class="ttc" id="aclass_shape_cast_settings_html"><div class="ttname"><a href="class_shape_cast_settings.html">ShapeCastSettings</a></div><div class="ttdoc">Settings to be passed with a shape cast.</div><div class="ttdef"><b>Definition</b> ShapeCast.h:92</div></div>
- <div class="ttc" id="aclass_shape_filter_html"><div class="ttname"><a href="class_shape_filter.html">ShapeFilter</a></div><div class="ttdoc">Filter class.</div><div class="ttdef"><b>Definition</b> ShapeFilter.h:17</div></div>
- <div class="ttc" id="aclass_shape_html"><div class="ttname"><a href="class_shape.html">Shape</a></div><div class="ttdoc">Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det...</div><div class="ttdef"><b>Definition</b> Shape.h:186</div></div>
- <div class="ttc" id="aclass_shape_html_a7e34b0626a40c31db0b2a761922adb1a"><div class="ttname"><a href="class_shape.html#a7e34b0626a40c31db0b2a761922adb1a">Shape::GetCenterOfMass</a></div><div class="ttdeci">virtual Vec3 GetCenterOfMass() const</div><div class="ttdoc">All shapes are centered around their center of mass. This function returns the center of mass positio...</div><div class="ttdef"><b>Definition</b> Shape.h:211</div></div>
- <div class="ttc" id="aclass_state_recorder_html"><div class="ttname"><a href="class_state_recorder.html">StateRecorder</a></div><div class="ttdef"><b>Definition</b> StateRecorder.h:110</div></div>
- <div class="ttc" id="aclass_sub_shape_i_d_html"><div class="ttname"><a href="class_sub_shape_i_d.html">SubShapeID</a></div><div class="ttdoc">A sub shape id contains a path to an element (usually a triangle or other primitive type) of a compou...</div><div class="ttdef"><b>Definition</b> SubShapeID.h:23</div></div>
- <div class="ttc" id="aclass_temp_allocator_html"><div class="ttname"><a href="class_temp_allocator.html">TempAllocator</a></div><div class="ttdef"><b>Definition</b> TempAllocator.h:16</div></div>
- <div class="ttc" id="aclass_transformed_shape_html"><div class="ttname"><a href="class_transformed_shape.html">TransformedShape</a></div><div class="ttdef"><b>Definition</b> TransformedShape.h:26</div></div>
- <div class="ttc" id="aclass_unordered_map_html"><div class="ttname"><a href="class_unordered_map.html">UnorderedMap</a></div><div class="ttdef"><b>Definition</b> UnorderedMap.h:30</div></div>
- <div class="ttc" id="aclass_vec3_html"><div class="ttname"><a href="class_vec3.html">Vec3</a></div><div class="ttdef"><b>Definition</b> Vec3.h:17</div></div>
- <div class="ttc" id="aclass_vec3_html_ad03c52ab27761bc1e64e33c47632ba51"><div class="ttname"><a href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">Vec3::sZero</a></div><div class="ttdeci">static JPH_INLINE Vec3 sZero()</div><div class="ttdoc">Vector with all zeros.</div><div class="ttdef"><b>Definition</b> Vec3.inl:103</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html">CharacterVirtual::Contact</a></div><div class="ttdoc">Encapsulates a collision contact.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:484</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_a1f227d6b89bbddbc35de63b1c8f7d306"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#a1f227d6b89bbddbc35de63b1c8f7d306">CharacterVirtual::Contact::mMotionTypeB</a></div><div class="ttdeci">EMotionType mMotionTypeB</div><div class="ttdoc">Motion type of B, used to determine the priority of the contact.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:495</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_a3e0e1203d15a972c0b52b08940439664"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#a3e0e1203d15a972c0b52b08940439664">CharacterVirtual::Contact::mContactNormal</a></div><div class="ttdeci">Vec3 mContactNormal</div><div class="ttdoc">Contact normal, pointing towards the character.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:491</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_a668d987b784e7b11dd030ad79f202cab"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#a668d987b784e7b11dd030ad79f202cab">CharacterVirtual::Contact::mMaterial</a></div><div class="ttdeci">const PhysicsMaterial * mMaterial</div><div class="ttdoc">Material of B.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:499</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_a85abb6cf7ff39090dba7f596603c8f23"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#a85abb6cf7ff39090dba7f596603c8f23">CharacterVirtual::Contact::mFraction</a></div><div class="ttdeci">float mFraction</div><div class="ttdoc">Fraction along the path where this contact takes place.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:494</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_a904ea0676f8406e735f23ff45fa2d57a"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#a904ea0676f8406e735f23ff45fa2d57a">CharacterVirtual::Contact::mUserData</a></div><div class="ttdeci">uint64 mUserData</div><div class="ttdoc">User data of B.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:498</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_ab4c53990ab4c51b1b7f9abe59de0775c"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#ab4c53990ab4c51b1b7f9abe59de0775c">CharacterVirtual::Contact::mLinearVelocity</a></div><div class="ttdeci">Vec3 mLinearVelocity</div><div class="ttdoc">Velocity of the contact point.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:490</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_abbbf77d2cdfb572d1f637812bbca93e9"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#abbbf77d2cdfb572d1f637812bbca93e9">CharacterVirtual::Contact::mDistance</a></div><div class="ttdeci">float mDistance</div><div class="ttdoc">Distance to the contact <= 0 means that it is an actual contact, > 0 means predictive.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:493</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_ac8573f10d6b69928672603e63490d450"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#ac8573f10d6b69928672603e63490d450">CharacterVirtual::Contact::mSurfaceNormal</a></div><div class="ttdeci">Vec3 mSurfaceNormal</div><div class="ttdoc">Surface normal of the contact.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:492</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_ae0c5dd762716d33d3c0289846b4126ff"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#ae0c5dd762716d33d3c0289846b4126ff">CharacterVirtual::Contact::mPosition</a></div><div class="ttdeci">RVec3 mPosition</div><div class="ttdoc">Position where the character makes contact.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:489</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_contact_html_ae19592c8bdfb0e4fc0b22b88e12f3ebd"><div class="ttname"><a href="struct_character_virtual_1_1_contact.html#ae19592c8bdfb0e4fc0b22b88e12f3ebd">CharacterVirtual::Contact::mIsSensorB</a></div><div class="ttdeci">bool mIsSensorB</div><div class="ttdoc">If B is a sensor.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:496</div></div>
- <div class="ttc" id="astruct_character_virtual_1_1_extended_update_settings_html"><div class="ttname"><a href="struct_character_virtual_1_1_extended_update_settings.html">CharacterVirtual::ExtendedUpdateSettings</a></div><div class="ttdoc">Settings struct with settings for ExtendedUpdate.</div><div class="ttdef"><b>Definition</b> CharacterVirtual.h:366</div></div>
- </div><!-- fragment --></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="dir_d99289a5d3c46cf26f14ff6c90658d9f.html">Jolt</a></li><li class="navelem"><a class="el" href="dir_a0f33af92addde396fc27b064c5eb8a9.html">Physics</a></li><li class="navelem"><a class="el" href="dir_8886b075816da9dbc7f3dfcb4dab155e.html">Character</a></li><li class="navelem"><a class="el" href="_character_virtual_8h.html">CharacterVirtual.h</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>
|