class_mutable_compound_shape.html 130 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.12.0"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Jolt Physics: MutableCompoundShape Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <script type="text/javascript" src="clipboard.js"></script>
  13. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript" src="resize.js"></script>
  17. <script type="text/javascript" src="cookie.js"></script>
  18. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  19. <script type="text/javascript" src="search/searchdata.js"></script>
  20. <script type="text/javascript" src="search/search.js"></script>
  21. <script type="text/x-mathjax-config">
  22. MathJax.Hub.Config({
  23. extensions: ["tex2jax.js"],
  24. jax: ["input/TeX","output/HTML-CSS"],
  25. });
  26. </script>
  27. <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
  28. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  29. </head>
  30. <body>
  31. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  32. <div id="titlearea">
  33. <table cellspacing="0" cellpadding="0">
  34. <tbody>
  35. <tr id="projectrow">
  36. <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
  37. <td id="projectalign">
  38. <div id="projectname">Jolt Physics
  39. </div>
  40. <div id="projectbrief">A multi core friendly Game Physics Engine</div>
  41. </td>
  42. </tr>
  43. </tbody>
  44. </table>
  45. </div>
  46. <!-- end header part -->
  47. <!-- Generated by Doxygen 1.12.0 -->
  48. <script type="text/javascript">
  49. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  50. var searchBox = new SearchBox("searchBox", "search/",'.html');
  51. /* @license-end */
  52. </script>
  53. <script type="text/javascript">
  54. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  55. $(function() { codefold.init(0); });
  56. /* @license-end */
  57. </script>
  58. <script type="text/javascript" src="menudata.js"></script>
  59. <script type="text/javascript" src="menu.js"></script>
  60. <script type="text/javascript">
  61. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  62. $(function() {
  63. initMenu('',true,false,'search.php','Search',true);
  64. $(function() { init_search(); });
  65. });
  66. /* @license-end */
  67. </script>
  68. <div id="main-nav"></div>
  69. </div><!-- top -->
  70. <div id="side-nav" class="ui-resizable side-nav-resizable">
  71. <div id="nav-tree">
  72. <div id="nav-tree-contents">
  73. <div id="nav-sync" class="sync"></div>
  74. </div>
  75. </div>
  76. <div id="splitbar" style="-moz-user-select:none;"
  77. class="ui-resizable-handle">
  78. </div>
  79. </div>
  80. <script type="text/javascript">
  81. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  82. $(function(){initNavTree('class_mutable_compound_shape.html',''); initResizable(true); });
  83. /* @license-end */
  84. </script>
  85. <div id="doc-content">
  86. <!-- window showing the filter options -->
  87. <div id="MSearchSelectWindow"
  88. onmouseover="return searchBox.OnSearchSelectShow()"
  89. onmouseout="return searchBox.OnSearchSelectHide()"
  90. onkeydown="return searchBox.OnSearchSelectKey(event)">
  91. </div>
  92. <!-- iframe showing the search results (closed by default) -->
  93. <div id="MSearchResultsWindow">
  94. <div id="MSearchResults">
  95. <div class="SRPage">
  96. <div id="SRIndex">
  97. <div id="SRResults"></div>
  98. <div class="SRStatus" id="Loading">Loading...</div>
  99. <div class="SRStatus" id="Searching">Searching...</div>
  100. <div class="SRStatus" id="NoMatches">No Matches</div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="header">
  106. <div class="summary">
  107. <a href="#pub-methods">Public Member Functions</a> &#124;
  108. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  109. <a href="#pro-methods">Protected Member Functions</a> &#124;
  110. <a href="class_mutable_compound_shape-members.html">List of all members</a> </div>
  111. <div class="headertitle"><div class="title">MutableCompoundShape Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
  112. </div><!--header-->
  113. <div class="contents">
  114. <p><code>#include &lt;<a class="el" href="_mutable_compound_shape_8h_source.html">MutableCompoundShape.h</a>&gt;</code></p>
  115. <div class="dynheader">
  116. Inheritance diagram for MutableCompoundShape:</div>
  117. <div class="dyncontent">
  118. <div class="center">
  119. <img src="class_mutable_compound_shape.png" usemap="#MutableCompoundShape_map" alt=""/>
  120. <map id="MutableCompoundShape_map" name="MutableCompoundShape_map">
  121. <area href="class_compound_shape.html" title="Base class for a compound shape." alt="CompoundShape" shape="rect" coords="81,112,234,136"/>
  122. <area href="class_shape.html" title="Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det..." alt="Shape" shape="rect" coords="81,56,234,80"/>
  123. <area href="class_ref_target.html" alt="RefTarget&lt; Shape &gt;" shape="rect" coords="0,0,153,24"/>
  124. <area href="class_non_copyable.html" title="Class that makes another class non-copyable. Usage: Inherit from NonCopyable." alt="NonCopyable" shape="rect" coords="163,0,316,24"/>
  125. </map>
  126. </div></div>
  127. <table class="memberdecls">
  128. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  129. Public Member Functions</h2></td></tr>
  130. <tr class="memitem:a661ed40beb5af222c420b5746c16f431" id="r_a661ed40beb5af222c420b5746c16f431"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a661ed40beb5af222c420b5746c16f431">MutableCompoundShape</a> ()</td></tr>
  131. <tr class="memdesc:a661ed40beb5af222c420b5746c16f431"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
  132. <tr class="separator:a661ed40beb5af222c420b5746c16f431"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:aa1412a6fbb245ef5476d7c72597f7aa9" id="r_aa1412a6fbb245ef5476d7c72597f7aa9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa1412a6fbb245ef5476d7c72597f7aa9">MutableCompoundShape</a> (const <a class="el" href="class_mutable_compound_shape_settings.html">MutableCompoundShapeSettings</a> &amp;inSettings, <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> &amp;outResult)</td></tr>
  134. <tr class="separator:aa1412a6fbb245ef5476d7c72597f7aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:a00b71825b8bf3d4b4dfb577b061a2576" id="r_a00b71825b8bf3d4b4dfb577b061a2576"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_ref.html">Ref</a>&lt; <a class="el" href="class_mutable_compound_shape.html">MutableCompoundShape</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a00b71825b8bf3d4b4dfb577b061a2576">Clone</a> () const</td></tr>
  136. <tr class="memdesc:a00b71825b8bf3d4b4dfb577b061a2576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clone this shape. Can be used to avoid race conditions. See the documentation of this class for more information. <br /></td></tr>
  137. <tr class="separator:a00b71825b8bf3d4b4dfb577b061a2576"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:afd8f121a563bf40c32b8169765636a2b" id="r_afd8f121a563bf40c32b8169765636a2b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afd8f121a563bf40c32b8169765636a2b">CastRay</a> (const <a class="el" href="struct_ray_cast.html">RayCast</a> &amp;inRay, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inSubShapeIDCreator, <a class="el" href="class_ray_cast_result.html">RayCastResult</a> &amp;ioHit) const override</td></tr>
  139. <tr class="separator:afd8f121a563bf40c32b8169765636a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:ab09749afef2d856a1a9b8834857ee5fa" id="r_ab09749afef2d856a1a9b8834857ee5fa"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab09749afef2d856a1a9b8834857ee5fa">CastRay</a> (const <a class="el" href="struct_ray_cast.html">RayCast</a> &amp;inRay, const <a class="el" href="class_ray_cast_settings.html">RayCastSettings</a> &amp;inRayCastSettings, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inSubShapeIDCreator, <a class="el" href="_shape_8h.html#a09896ea7755d75dc0c2c3e7058a6b85b">CastRayCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter={ }) const override</td></tr>
  141. <tr class="separator:ab09749afef2d856a1a9b8834857ee5fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:aa145b08202a26df921533b5f2db9f55f" id="r_aa145b08202a26df921533b5f2db9f55f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa145b08202a26df921533b5f2db9f55f">CollidePoint</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPoint, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inSubShapeIDCreator, <a class="el" href="_shape_8h.html#aebaf36faa66f5b466411acbe12342d70">CollidePointCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter={ }) const override</td></tr>
  143. <tr class="separator:aa145b08202a26df921533b5f2db9f55f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:a1d0db8584b022b03077a13f3d632e22c" id="r_a1d0db8584b022b03077a13f3d632e22c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1d0db8584b022b03077a13f3d632e22c">CollectTransformedShapes</a> (const <a class="el" href="class_a_a_box.html">AABox</a> &amp;inBox, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPositionCOM, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inSubShapeIDCreator, <a class="el" href="_shape_8h.html#ac1f1a1681fa4d69dfbc6cd9cc08c2ee4">TransformedShapeCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter) const override</td></tr>
  145. <tr class="separator:a1d0db8584b022b03077a13f3d632e22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. <tr class="memitem:a384f4371999246795c2e3f84ad75eca0" id="r_a384f4371999246795c2e3f84ad75eca0"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a384f4371999246795c2e3f84ad75eca0">GetIntersectingSubShapes</a> (const <a class="el" href="class_a_a_box.html">AABox</a> &amp;inBox, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> *outSubShapeIndices, int inMaxSubShapeIndices) const override</td></tr>
  147. <tr class="separator:a384f4371999246795c2e3f84ad75eca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:ad254423b72d228ee50b548c9d4b52696" id="r_ad254423b72d228ee50b548c9d4b52696"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad254423b72d228ee50b548c9d4b52696">GetIntersectingSubShapes</a> (const <a class="el" href="class_oriented_box.html">OrientedBox</a> &amp;inBox, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> *outSubShapeIndices, int inMaxSubShapeIndices) const override</td></tr>
  149. <tr class="separator:ad254423b72d228ee50b548c9d4b52696"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:a07aa65e4960f1ad78764007a209c13eb" id="r_a07aa65e4960f1ad78764007a209c13eb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a07aa65e4960f1ad78764007a209c13eb">SaveBinaryState</a> (<a class="el" href="class_stream_out.html">StreamOut</a> &amp;inStream) const override</td></tr>
  151. <tr class="memdesc:a07aa65e4960f1ad78764007a209c13eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves the contents of the shape in binary form to inStream. <br /></td></tr>
  152. <tr class="separator:a07aa65e4960f1ad78764007a209c13eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  153. <tr class="memitem:aabd799e121f048e83a6ef43490422fbe" id="r_aabd799e121f048e83a6ef43490422fbe"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="struct_shape_1_1_stats.html">Stats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aabd799e121f048e83a6ef43490422fbe">GetStats</a> () const override</td></tr>
  154. <tr class="memdesc:aabd799e121f048e83a6ef43490422fbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get stats of this shape. Use for logging / data collection purposes only. Does not add values from child shapes, use GetStatsRecursive for this. <br /></td></tr>
  155. <tr class="separator:aabd799e121f048e83a6ef43490422fbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <tr class="memitem:a3fc3b41a717b952d323ea9062e917693" id="r_a3fc3b41a717b952d323ea9062e917693"><td class="memTemplParams" colspan="2">template&lt;class Visitor &gt; </td></tr>
  157. <tr class="memitem:a3fc3b41a717b952d323ea9062e917693"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a3fc3b41a717b952d323ea9062e917693">WalkSubShapes</a> (Visitor &amp;ioVisitor) const</td></tr>
  158. <tr class="separator:a3fc3b41a717b952d323ea9062e917693"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr><td colspan="2"><div class="groupHeader">Mutating shapes. Note that this is not thread safe, so you need to ensure that any bodies that use this shape are locked at the time of modification using BodyLockWrite. After modification you need to call BodyInterface::NotifyShapeChanged to update the broadphase and collision caches.</div></td></tr>
  160. <tr class="memitem:ac5944df39ec23c2336c92224afab2651" id="r_ac5944df39ec23c2336c92224afab2651"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac5944df39ec23c2336c92224afab2651">AddShape</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPosition, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, const <a class="el" href="class_shape.html">Shape</a> *inShape, <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> inUserData=0, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inIndex=UINT_MAX)</td></tr>
  161. <tr class="separator:ac5944df39ec23c2336c92224afab2651"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:ab91b4cd767b396eca6a341e98501daea" id="r_ab91b4cd767b396eca6a341e98501daea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab91b4cd767b396eca6a341e98501daea">RemoveShape</a> (<a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inIndex)</td></tr>
  163. <tr class="separator:ab91b4cd767b396eca6a341e98501daea"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. <tr class="memitem:a3992cb7a984307a08139812e44da14ae" id="r_a3992cb7a984307a08139812e44da14ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3992cb7a984307a08139812e44da14ae">ModifyShape</a> (<a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inIndex, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPosition, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation)</td></tr>
  165. <tr class="separator:a3992cb7a984307a08139812e44da14ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
  166. <tr class="memitem:a6b947de024a9a91039f4b472072efdba" id="r_a6b947de024a9a91039f4b472072efdba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6b947de024a9a91039f4b472072efdba">ModifyShape</a> (<a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inIndex, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPosition, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, const <a class="el" href="class_shape.html">Shape</a> *inShape)</td></tr>
  167. <tr class="separator:a6b947de024a9a91039f4b472072efdba"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:a48172d558ec67cb67e4a4d0ec7b48133" id="r_a48172d558ec67cb67e4a4d0ec7b48133"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a48172d558ec67cb67e4a4d0ec7b48133">ModifyShapes</a> (<a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inStartIndex, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inNumber, const <a class="el" href="class_vec3.html">Vec3</a> *inPositions, const <a class="el" href="class_quat.html">Quat</a> *inRotations, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inPositionStride=sizeof(<a class="el" href="class_vec3.html">Vec3</a>), <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inRotationStride=sizeof(<a class="el" href="class_quat.html">Quat</a>))</td></tr>
  169. <tr class="memdesc:a48172d558ec67cb67e4a4d0ec7b48133"><td class="mdescLeft">&#160;</td><td class="mdescRight">Batch set positions / orientations, this avoids duplicate work due to bounding box calculation. Beware this can create a race condition if you're running collision queries in parallel. See class documentation for more information. <br /></td></tr>
  170. <tr class="separator:a48172d558ec67cb67e4a4d0ec7b48133"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171. <tr class="memitem:aadb711e8d328adc04397be0cf44d4f4c" id="r_aadb711e8d328adc04397be0cf44d4f4c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aadb711e8d328adc04397be0cf44d4f4c">AdjustCenterOfMass</a> ()</td></tr>
  172. <tr class="separator:aadb711e8d328adc04397be0cf44d4f4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  173. <tr class="inherit_header pub_methods_class_compound_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_compound_shape')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_compound_shape.html">CompoundShape</a></td></tr>
  174. <tr class="memitem:a6e087096097e738d9cb0547d1be060c9 inherit pub_methods_class_compound_shape" id="r_a6e087096097e738d9cb0547d1be060c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a6e087096097e738d9cb0547d1be060c9">CompoundShape</a> (<a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType)</td></tr>
  175. <tr class="memdesc:a6e087096097e738d9cb0547d1be060c9 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
  176. <tr class="separator:a6e087096097e738d9cb0547d1be060c9 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  177. <tr class="memitem:ac6d8a7e5c9f6758682f1a85437b09014 inherit pub_methods_class_compound_shape" id="r_ac6d8a7e5c9f6758682f1a85437b09014"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ac6d8a7e5c9f6758682f1a85437b09014">CompoundShape</a> (<a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType, const <a class="el" href="class_shape_settings.html">ShapeSettings</a> &amp;inSettings, <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> &amp;outResult)</td></tr>
  178. <tr class="separator:ac6d8a7e5c9f6758682f1a85437b09014 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. <tr class="memitem:aeec4b7c1a31225a01b314f2528f27b24 inherit pub_methods_class_compound_shape" id="r_aeec4b7c1a31225a01b314f2528f27b24"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#aeec4b7c1a31225a01b314f2528f27b24">GetCenterOfMass</a> () const override</td></tr>
  180. <tr class="memdesc:aeec4b7c1a31225a01b314f2528f27b24 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">All shapes are centered around their center of mass. This function returns the center of mass position that needs to be applied to transform the shape to where it was created. <br /></td></tr>
  181. <tr class="separator:aeec4b7c1a31225a01b314f2528f27b24 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <tr class="memitem:a1fe017e41afb14b1192689a5fa81ad2e inherit pub_methods_class_compound_shape" id="r_a1fe017e41afb14b1192689a5fa81ad2e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a1fe017e41afb14b1192689a5fa81ad2e">MustBeStatic</a> () const override</td></tr>
  183. <tr class="memdesc:a1fe017e41afb14b1192689a5fa81ad2e inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if this shape can only be used to create a static body or if it can also be dynamic/kinematic. <br /></td></tr>
  184. <tr class="separator:a1fe017e41afb14b1192689a5fa81ad2e inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  185. <tr class="memitem:aed1247824e7919d8a948293f586b15dc inherit pub_methods_class_compound_shape" id="r_aed1247824e7919d8a948293f586b15dc"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_a_a_box.html">AABox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#aed1247824e7919d8a948293f586b15dc">GetLocalBounds</a> () const override</td></tr>
  186. <tr class="memdesc:aed1247824e7919d8a948293f586b15dc inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get local bounding box including convex radius, this box is centered around the center of mass rather than the world transform. <br /></td></tr>
  187. <tr class="separator:aed1247824e7919d8a948293f586b15dc inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <tr class="memitem:ab0cb754108355742e26e08614beaaec1 inherit pub_methods_class_compound_shape" id="r_ab0cb754108355742e26e08614beaaec1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ab0cb754108355742e26e08614beaaec1">GetSubShapeIDBitsRecursive</a> () const override</td></tr>
  189. <tr class="memdesc:ab0cb754108355742e26e08614beaaec1 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the max number of sub shape ID bits that are needed to be able to address any leaf shape in this shape. Used mainly for checking that it is smaller or equal than <a class="el" href="class_sub_shape_i_d.html#a74d6785fe41b99c0d783fb6e66c39f4d" title="How many bits we can store in this ID.">SubShapeID::MaxBits</a>. <br /></td></tr>
  190. <tr class="separator:ab0cb754108355742e26e08614beaaec1 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  191. <tr class="memitem:a4c52ac0245dea72dd6fc63c7f6f2ef4b inherit pub_methods_class_compound_shape" id="r_a4c52ac0245dea72dd6fc63c7f6f2ef4b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_a_a_box.html">AABox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a4c52ac0245dea72dd6fc63c7f6f2ef4b">GetWorldSpaceBounds</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const override</td></tr>
  192. <tr class="separator:a4c52ac0245dea72dd6fc63c7f6f2ef4b inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  193. <tr class="memitem:ae17025f3ed04cdf063dc0f3b180468a4 inherit pub_methods_class_compound_shape" id="r_ae17025f3ed04cdf063dc0f3b180468a4"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ae17025f3ed04cdf063dc0f3b180468a4">GetInnerRadius</a> () const override</td></tr>
  194. <tr class="separator:ae17025f3ed04cdf063dc0f3b180468a4 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  195. <tr class="memitem:a24b8501f64dae77c9cb4cfa408fc7537 inherit pub_methods_class_compound_shape" id="r_a24b8501f64dae77c9cb4cfa408fc7537"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_mass_properties.html">MassProperties</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a24b8501f64dae77c9cb4cfa408fc7537">GetMassProperties</a> () const override</td></tr>
  196. <tr class="memdesc:a24b8501f64dae77c9cb4cfa408fc7537 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the mass and inertia of this shape. <br /></td></tr>
  197. <tr class="separator:a24b8501f64dae77c9cb4cfa408fc7537 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  198. <tr class="memitem:a53e888da6c84a5a7a8b96bacd0a12f92 inherit pub_methods_class_compound_shape" id="r_a53e888da6c84a5a7a8b96bacd0a12f92"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="class_physics_material.html">PhysicsMaterial</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a53e888da6c84a5a7a8b96bacd0a12f92">GetMaterial</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID) const override</td></tr>
  199. <tr class="memdesc:a53e888da6c84a5a7a8b96bacd0a12f92 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the material assigned to a particular sub shape ID. <br /></td></tr>
  200. <tr class="separator:a53e888da6c84a5a7a8b96bacd0a12f92 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  201. <tr class="memitem:a40578c3218a3282bb4a39e858f01e4b0 inherit pub_methods_class_compound_shape" id="r_a40578c3218a3282bb4a39e858f01e4b0"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="class_shape.html">Shape</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a40578c3218a3282bb4a39e858f01e4b0">GetLeafShape</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID, <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;outRemainder) const override</td></tr>
  202. <tr class="separator:a40578c3218a3282bb4a39e858f01e4b0 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  203. <tr class="memitem:adf93c781343189f225f39656a64240db inherit pub_methods_class_compound_shape" id="r_adf93c781343189f225f39656a64240db"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#adf93c781343189f225f39656a64240db">GetSubShapeUserData</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID) const override</td></tr>
  204. <tr class="memdesc:adf93c781343189f225f39656a64240db inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the user data of a particular sub shape ID. Corresponds with the value stored in <a class="el" href="class_shape.html#a7146c658ddb5c7b0fec4489535ca664f" title="User data (to be used freely by the application)">Shape::GetUserData</a> of the leaf shape pointed to by inSubShapeID. <br /></td></tr>
  205. <tr class="separator:adf93c781343189f225f39656a64240db inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  206. <tr class="memitem:ae21a8dff0919f928ae1d282293018a8c inherit pub_methods_class_compound_shape" id="r_ae21a8dff0919f928ae1d282293018a8c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_transformed_shape.html">TransformedShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ae21a8dff0919f928ae1d282293018a8c">GetSubShapeTransformedShape</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPositionCOM, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;outRemainder) const override</td></tr>
  207. <tr class="separator:ae21a8dff0919f928ae1d282293018a8c inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  208. <tr class="memitem:a4f1bcd2e95e17efeff42556cbc729110 inherit pub_methods_class_compound_shape" id="r_a4f1bcd2e95e17efeff42556cbc729110"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a4f1bcd2e95e17efeff42556cbc729110">GetSurfaceNormal</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inLocalSurfacePosition) const override</td></tr>
  209. <tr class="separator:a4f1bcd2e95e17efeff42556cbc729110 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  210. <tr class="memitem:aaa7ac5ce56a586d8179181add8af60fa inherit pub_methods_class_compound_shape" id="r_aaa7ac5ce56a586d8179181add8af60fa"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#aaa7ac5ce56a586d8179181add8af60fa">GetSupportingFace</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inDirection, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, <a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="class_shape.html#a95d3060318d33c1ef314c5b856a70cb8">SupportingFace</a> &amp;outVertices) const override</td></tr>
  211. <tr class="separator:aaa7ac5ce56a586d8179181add8af60fa inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  212. <tr class="memitem:a9a5f3e80546cee592d5a79cd4e3561ee inherit pub_methods_class_compound_shape" id="r_a9a5f3e80546cee592d5a79cd4e3561ee"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a9a5f3e80546cee592d5a79cd4e3561ee">GetSubmergedVolume</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, const <a class="el" href="class_plane.html">Plane</a> &amp;inSurface, float &amp;outTotalVolume, float &amp;outSubmergedVolume, <a class="el" href="class_vec3.html">Vec3</a> &amp;outCenterOfBuoyancy <a class="el" href="_core_8h.html#ab6d002cadb39841b46bb93fe8a20e00e">JPH_IF_DEBUG_RENDERER</a>(, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset)) const override</td></tr>
  213. <tr class="separator:a9a5f3e80546cee592d5a79cd4e3561ee inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  214. <tr class="memitem:ae6d820f0033d6933b35babdd50cabe29 inherit pub_methods_class_compound_shape" id="r_ae6d820f0033d6933b35babdd50cabe29"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ae6d820f0033d6933b35babdd50cabe29">Draw</a> (<a class="el" href="class_debug_renderer.html">DebugRenderer</a> *inRenderer, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, <a class="el" href="_color_8h.html#a3daf1ee578b30da1860ff132c70474b5">ColorArg</a> inColor, bool inUseMaterialColors, bool inDrawWireframe) const override</td></tr>
  215. <tr class="memdesc:ae6d820f0033d6933b35babdd50cabe29 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the shape at a particular location with a particular color (debugging purposes) <br /></td></tr>
  216. <tr class="separator:ae6d820f0033d6933b35babdd50cabe29 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  217. <tr class="memitem:afe32beff5208c480e33fd9177ab8a6be inherit pub_methods_class_compound_shape" id="r_afe32beff5208c480e33fd9177ab8a6be"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#afe32beff5208c480e33fd9177ab8a6be">DrawGetSupportFunction</a> (<a class="el" href="class_debug_renderer.html">DebugRenderer</a> *inRenderer, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, <a class="el" href="_color_8h.html#a3daf1ee578b30da1860ff132c70474b5">ColorArg</a> inColor, bool inDrawSupportDirection) const override</td></tr>
  218. <tr class="memdesc:afe32beff5208c480e33fd9177ab8a6be inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the results of the GetSupportFunction with the convex radius added back on to show any errors introduced by this process (only relevant for convex shapes) <br /></td></tr>
  219. <tr class="separator:afe32beff5208c480e33fd9177ab8a6be inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  220. <tr class="memitem:ad881834415dfef9c84b044402818d7fd inherit pub_methods_class_compound_shape" id="r_ad881834415dfef9c84b044402818d7fd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ad881834415dfef9c84b044402818d7fd">DrawGetSupportingFace</a> (<a class="el" href="class_debug_renderer.html">DebugRenderer</a> *inRenderer, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const override</td></tr>
  221. <tr class="memdesc:ad881834415dfef9c84b044402818d7fd inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the results of the GetSupportingFace function to show any errors introduced by this process (only relevant for convex shapes) <br /></td></tr>
  222. <tr class="separator:ad881834415dfef9c84b044402818d7fd inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  223. <tr class="memitem:a24ebeaea9b58cc37bf9bffe30043d3f0 inherit pub_methods_class_compound_shape" id="r_a24ebeaea9b58cc37bf9bffe30043d3f0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a24ebeaea9b58cc37bf9bffe30043d3f0">CollideSoftBodyVertices</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, const <a class="el" href="class_collide_soft_body_vertex_iterator.html">CollideSoftBodyVertexIterator</a> &amp;inVertices, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inNumVertices, int inCollidingShapeIndex) const override</td></tr>
  224. <tr class="separator:a24ebeaea9b58cc37bf9bffe30043d3f0 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  225. <tr class="memitem:a10919d4b9069ed45d39e765f94e44b2c inherit pub_methods_class_compound_shape" id="r_a10919d4b9069ed45d39e765f94e44b2c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a10919d4b9069ed45d39e765f94e44b2c">TransformShape</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_shape_8h.html#ac1f1a1681fa4d69dfbc6cd9cc08c2ee4">TransformedShapeCollector</a> &amp;ioCollector) const override</td></tr>
  226. <tr class="separator:a10919d4b9069ed45d39e765f94e44b2c inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  227. <tr class="memitem:a1e3571fbe4835d1bfec50d9d7a1a2b1f inherit pub_methods_class_compound_shape" id="r_a1e3571fbe4835d1bfec50d9d7a1a2b1f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a1e3571fbe4835d1bfec50d9d7a1a2b1f">GetTrianglesStart</a> (<a class="el" href="struct_shape_1_1_get_triangles_context.html">GetTrianglesContext</a> &amp;ioContext, const <a class="el" href="class_a_a_box.html">AABox</a> &amp;inBox, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPositionCOM, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const override</td></tr>
  228. <tr class="separator:a1e3571fbe4835d1bfec50d9d7a1a2b1f inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  229. <tr class="memitem:a86dbc7e794fdf43a39fed13e60731a0b inherit pub_methods_class_compound_shape" id="r_a86dbc7e794fdf43a39fed13e60731a0b"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a86dbc7e794fdf43a39fed13e60731a0b">GetTrianglesNext</a> (<a class="el" href="struct_shape_1_1_get_triangles_context.html">GetTrianglesContext</a> &amp;ioContext, int inMaxTrianglesRequested, <a class="el" href="class_float3.html">Float3</a> *outTriangleVertices, const <a class="el" href="class_physics_material.html">PhysicsMaterial</a> **outMaterials=nullptr) const override</td></tr>
  230. <tr class="separator:a86dbc7e794fdf43a39fed13e60731a0b inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  231. <tr class="memitem:a3c4efdc6b41fc47e604ee8154425a80a inherit pub_methods_class_compound_shape" id="r_a3c4efdc6b41fc47e604ee8154425a80a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_compound_shape.html#a55fbd4f496242427b0e62d788a597e5b">SubShapes</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a3c4efdc6b41fc47e604ee8154425a80a">GetSubShapes</a> () const</td></tr>
  232. <tr class="memdesc:a3c4efdc6b41fc47e604ee8154425a80a inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to the sub shapes of this compound. <br /></td></tr>
  233. <tr class="separator:a3c4efdc6b41fc47e604ee8154425a80a inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  234. <tr class="memitem:abe1e5333a667ccd80b6146b951abf918 inherit pub_methods_class_compound_shape" id="r_abe1e5333a667ccd80b6146b951abf918"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#abe1e5333a667ccd80b6146b951abf918">GetNumSubShapes</a> () const</td></tr>
  235. <tr class="memdesc:abe1e5333a667ccd80b6146b951abf918 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total number of sub shapes. <br /></td></tr>
  236. <tr class="separator:abe1e5333a667ccd80b6146b951abf918 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  237. <tr class="memitem:af70b012c88d2bedfb9541d40e6e46fb2 inherit pub_methods_class_compound_shape" id="r_af70b012c88d2bedfb9541d40e6e46fb2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="struct_compound_shape_1_1_sub_shape.html">SubShape</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#af70b012c88d2bedfb9541d40e6e46fb2">GetSubShape</a> (<a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inIdx) const</td></tr>
  238. <tr class="memdesc:af70b012c88d2bedfb9541d40e6e46fb2 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to a particular sub shape. <br /></td></tr>
  239. <tr class="separator:af70b012c88d2bedfb9541d40e6e46fb2 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  240. <tr class="memitem:a596eae9a25f8ed13ac35f2a58b318368 inherit pub_methods_class_compound_shape" id="r_a596eae9a25f8ed13ac35f2a58b318368"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a596eae9a25f8ed13ac35f2a58b318368">GetCompoundUserData</a> (<a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inIdx) const</td></tr>
  241. <tr class="memdesc:a596eae9a25f8ed13ac35f2a58b318368 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the user data associated with a shape in this compound. <br /></td></tr>
  242. <tr class="separator:a596eae9a25f8ed13ac35f2a58b318368 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  243. <tr class="memitem:a79a6d4592f894bfc0ed0496bdce68e98 inherit pub_methods_class_compound_shape" id="r_a79a6d4592f894bfc0ed0496bdce68e98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a79a6d4592f894bfc0ed0496bdce68e98">SetCompoundUserData</a> (<a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inIdx, <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> inUserData)</td></tr>
  244. <tr class="memdesc:a79a6d4592f894bfc0ed0496bdce68e98 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the user data associated with a shape in this compound. <br /></td></tr>
  245. <tr class="separator:a79a6d4592f894bfc0ed0496bdce68e98 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  246. <tr class="memitem:a3fd5589e3e33b94b8c112393b431152b inherit pub_methods_class_compound_shape" id="r_a3fd5589e3e33b94b8c112393b431152b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a3fd5589e3e33b94b8c112393b431152b">IsSubShapeIDValid</a> (<a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> inSubShapeID) const</td></tr>
  247. <tr class="separator:a3fd5589e3e33b94b8c112393b431152b inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  248. <tr class="memitem:a6ff804957bb05620ab762532d2f2ab3d inherit pub_methods_class_compound_shape" id="r_a6ff804957bb05620ab762532d2f2ab3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a6ff804957bb05620ab762532d2f2ab3d">GetSubShapeIndexFromID</a> (<a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> inSubShapeID, <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;outRemainder) const</td></tr>
  249. <tr class="separator:a6ff804957bb05620ab762532d2f2ab3d inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  250. <tr class="memitem:a66ae55d5b737c492d73286dff4615215 inherit pub_methods_class_compound_shape" id="r_a66ae55d5b737c492d73286dff4615215"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a66ae55d5b737c492d73286dff4615215">GetSubShapeIDFromIndex</a> (int inIdx, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inParentSubShapeID) const</td></tr>
  251. <tr class="memdesc:a66ae55d5b737c492d73286dff4615215 inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a sub shape index to a sub shape ID. <br /></td></tr>
  252. <tr class="separator:a66ae55d5b737c492d73286dff4615215 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  253. <tr class="memitem:ac06931859e525bc0b7a2513c7c84176a inherit pub_methods_class_compound_shape" id="r_ac06931859e525bc0b7a2513c7c84176a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ac06931859e525bc0b7a2513c7c84176a">SaveSubShapeState</a> (<a class="el" href="_shape_8h.html#aa3428b3d5af96a1e2200ae7d14057d3c">ShapeList</a> &amp;outSubShapes) const override</td></tr>
  254. <tr class="memdesc:ac06931859e525bc0b7a2513c7c84176a inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the shape references that this shape has to outSubShapes. <br /></td></tr>
  255. <tr class="separator:ac06931859e525bc0b7a2513c7c84176a inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  256. <tr class="memitem:a75ac24c967580322df489ae7afb6e87b inherit pub_methods_class_compound_shape" id="r_a75ac24c967580322df489ae7afb6e87b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a75ac24c967580322df489ae7afb6e87b">RestoreSubShapeState</a> (const <a class="el" href="_shape_8h.html#a840e6a4efc782d25701f730eb48ef249">ShapeRefC</a> *inSubShapes, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inNumShapes) override</td></tr>
  257. <tr class="memdesc:a75ac24c967580322df489ae7afb6e87b inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restore the shape references after calling sRestoreFromBinaryState. Note that the exact same shapes need to be provided in the same order as returned by SaveSubShapeState. <br /></td></tr>
  258. <tr class="separator:a75ac24c967580322df489ae7afb6e87b inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  259. <tr class="memitem:acd0cdb69e92db34899880f3f6b596bec inherit pub_methods_class_compound_shape" id="r_acd0cdb69e92db34899880f3f6b596bec"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="struct_shape_1_1_stats.html">Stats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#acd0cdb69e92db34899880f3f6b596bec">GetStatsRecursive</a> (<a class="el" href="class_shape.html#afff02f0117147a8f7eb43e9c5a50e969">VisitedShapes</a> &amp;ioVisitedShapes) const override</td></tr>
  260. <tr class="memdesc:acd0cdb69e92db34899880f3f6b596bec inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Volume of this shape (m^3). Note that for compound shapes the volume may be incorrect since child shapes can overlap which is not accounted for. <br /></td></tr>
  261. <tr class="separator:acd0cdb69e92db34899880f3f6b596bec inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  262. <tr class="memitem:a2c66ad490f6662e3ef81e44cabee11fa inherit pub_methods_class_compound_shape" id="r_a2c66ad490f6662e3ef81e44cabee11fa"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a2c66ad490f6662e3ef81e44cabee11fa">GetVolume</a> () const override</td></tr>
  263. <tr class="separator:a2c66ad490f6662e3ef81e44cabee11fa inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  264. <tr class="memitem:a8d582144c0bcce878f9a956aaf116c79 inherit pub_methods_class_compound_shape" id="r_a8d582144c0bcce878f9a956aaf116c79"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a8d582144c0bcce878f9a956aaf116c79">IsValidScale</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const override</td></tr>
  265. <tr class="separator:a8d582144c0bcce878f9a956aaf116c79 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  266. <tr class="memitem:a7c3c686e436b80d627b038ccac943b48 inherit pub_methods_class_compound_shape" id="r_a7c3c686e436b80d627b038ccac943b48"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a7c3c686e436b80d627b038ccac943b48">MakeScaleValid</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const override</td></tr>
  267. <tr class="separator:a7c3c686e436b80d627b038ccac943b48 inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  268. <tr class="memitem:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_compound_shape" id="r_adc0e48fe3e684665c0b4ba3ec9e9ed6b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_a_a_box.html">AABox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#adc0e48fe3e684665c0b4ba3ec9e9ed6b">GetWorldSpaceBounds</a> (<a class="el" href="_math_types_8h.html#aaf37cd542ccb684a70ab8e9123af8df5">DMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const</td></tr>
  269. <tr class="memdesc:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get world space bounds including convex radius. <br /></td></tr>
  270. <tr class="separator:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  271. <tr class="inherit_header pub_methods_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_shape')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
  272. <tr class="memitem:a23734c9a65732276c51b77ba8542291d inherit pub_methods_class_shape" id="r_a23734c9a65732276c51b77ba8542291d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a23734c9a65732276c51b77ba8542291d">Shape</a> (<a class="el" href="_shape_8h.html#ad64a1c665070a3100e456e54073554a5">EShapeType</a> inType, <a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType)</td></tr>
  273. <tr class="memdesc:a23734c9a65732276c51b77ba8542291d inherit pub_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
  274. <tr class="separator:a23734c9a65732276c51b77ba8542291d inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  275. <tr class="memitem:a5c9ae4999b05e4334aede38781a536ad inherit pub_methods_class_shape" id="r_a5c9ae4999b05e4334aede38781a536ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a5c9ae4999b05e4334aede38781a536ad">Shape</a> (<a class="el" href="_shape_8h.html#ad64a1c665070a3100e456e54073554a5">EShapeType</a> inType, <a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType, const <a class="el" href="class_shape_settings.html">ShapeSettings</a> &amp;inSettings, <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> &amp;outResult)</td></tr>
  276. <tr class="separator:a5c9ae4999b05e4334aede38781a536ad inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  277. <tr class="memitem:ac8ad2fd02e1e94beeb98e65ab795cd56 inherit pub_methods_class_shape" id="r_ac8ad2fd02e1e94beeb98e65ab795cd56"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#ac8ad2fd02e1e94beeb98e65ab795cd56">~Shape</a> ()=default</td></tr>
  278. <tr class="memdesc:ac8ad2fd02e1e94beeb98e65ab795cd56 inherit pub_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
  279. <tr class="separator:ac8ad2fd02e1e94beeb98e65ab795cd56 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  280. <tr class="memitem:a35b8f1a8a02f90d3edc02db22f03932a inherit pub_methods_class_shape" id="r_a35b8f1a8a02f90d3edc02db22f03932a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_shape_8h.html#ad64a1c665070a3100e456e54073554a5">EShapeType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a35b8f1a8a02f90d3edc02db22f03932a">GetType</a> () const</td></tr>
  281. <tr class="memdesc:a35b8f1a8a02f90d3edc02db22f03932a inherit pub_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get type. <br /></td></tr>
  282. <tr class="separator:a35b8f1a8a02f90d3edc02db22f03932a inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  283. <tr class="memitem:a864cef23ca0a3add699adea26ed1fef7 inherit pub_methods_class_shape" id="r_a864cef23ca0a3add699adea26ed1fef7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a864cef23ca0a3add699adea26ed1fef7">GetSubType</a> () const</td></tr>
  284. <tr class="separator:a864cef23ca0a3add699adea26ed1fef7 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  285. <tr class="memitem:a7146c658ddb5c7b0fec4489535ca664f inherit pub_methods_class_shape" id="r_a7146c658ddb5c7b0fec4489535ca664f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a7146c658ddb5c7b0fec4489535ca664f">GetUserData</a> () const</td></tr>
  286. <tr class="memdesc:a7146c658ddb5c7b0fec4489535ca664f inherit pub_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">User data (to be used freely by the application) <br /></td></tr>
  287. <tr class="separator:a7146c658ddb5c7b0fec4489535ca664f inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  288. <tr class="memitem:abe1ea0795fb422387c3e41f260caea1c inherit pub_methods_class_shape" id="r_abe1ea0795fb422387c3e41f260caea1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#abe1ea0795fb422387c3e41f260caea1c">SetUserData</a> (<a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> inUserData)</td></tr>
  289. <tr class="separator:abe1ea0795fb422387c3e41f260caea1c inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  290. <tr class="memitem:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_shape" id="r_adc0e48fe3e684665c0b4ba3ec9e9ed6b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_a_a_box.html">AABox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#adc0e48fe3e684665c0b4ba3ec9e9ed6b">GetWorldSpaceBounds</a> (<a class="el" href="_math_types_8h.html#aaf37cd542ccb684a70ab8e9123af8df5">DMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const</td></tr>
  291. <tr class="memdesc:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get world space bounds including convex radius. <br /></td></tr>
  292. <tr class="separator:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  293. <tr class="memitem:a99f077aa0ffef0d518ced9b69ca21d18 inherit pub_methods_class_shape" id="r_a99f077aa0ffef0d518ced9b69ca21d18"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a99f077aa0ffef0d518ced9b69ca21d18">GetSubmergedVolume</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, const <a class="el" href="class_plane.html">Plane</a> &amp;inSurface, float &amp;outTotalVolume, float &amp;outSubmergedVolume, <a class="el" href="class_vec3.html">Vec3</a> &amp;outCenterOfBuoyancy, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset) const =0</td></tr>
  294. <tr class="separator:a99f077aa0ffef0d518ced9b69ca21d18 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  295. <tr class="memitem:ae4a0954ec23eabd48f0961b16eff750a inherit pub_methods_class_shape" id="r_ae4a0954ec23eabd48f0961b16eff750a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#ae4a0954ec23eabd48f0961b16eff750a">ScaleShape</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const</td></tr>
  296. <tr class="separator:ae4a0954ec23eabd48f0961b16eff750a inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  297. <tr class="memitem:a6ff903d54f10469f51e1862b32406845 inherit pub_methods_class_shape" id="r_a6ff903d54f10469f51e1862b32406845"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a6ff903d54f10469f51e1862b32406845">SaveMaterialState</a> (<a class="el" href="_shape_8h.html#ae22d65df49227119a635532dbc63a9a3">PhysicsMaterialList</a> &amp;outMaterials) const</td></tr>
  298. <tr class="memdesc:a6ff903d54f10469f51e1862b32406845 inherit pub_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the material references that this shape has to outMaterials. <br /></td></tr>
  299. <tr class="separator:a6ff903d54f10469f51e1862b32406845 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  300. <tr class="memitem:a6e823e7198f22ec824cacf9998d9904c inherit pub_methods_class_shape" id="r_a6e823e7198f22ec824cacf9998d9904c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a6e823e7198f22ec824cacf9998d9904c">RestoreMaterialState</a> (const <a class="el" href="_shape_8h.html#ae4083d6c957623ad6d3735d1d515b05e">PhysicsMaterialRefC</a> *inMaterials, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inNumMaterials)</td></tr>
  301. <tr class="memdesc:a6e823e7198f22ec824cacf9998d9904c inherit pub_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restore the material references after calling sRestoreFromBinaryState. Note that the exact same materials need to be provided in the same order as returned by SaveMaterialState. <br /></td></tr>
  302. <tr class="separator:a6e823e7198f22ec824cacf9998d9904c inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  303. <tr class="memitem:a29511616de01507e714e8187686bc9f1 inherit pub_methods_class_shape" id="r_a29511616de01507e714e8187686bc9f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a29511616de01507e714e8187686bc9f1">SaveWithChildren</a> (<a class="el" href="class_stream_out.html">StreamOut</a> &amp;inStream, <a class="el" href="class_shape.html#a5944ae14aeacc70bb42a38d7c3a31220">ShapeToIDMap</a> &amp;ioShapeMap, <a class="el" href="class_shape.html#a78cea5d82e89748412a5dca2f1352de1">MaterialToIDMap</a> &amp;ioMaterialMap) const</td></tr>
  304. <tr class="memdesc:a29511616de01507e714e8187686bc9f1 inherit pub_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save this shape, all its children and its materials. Pass in an empty map in ioShapeMap / ioMaterialMap or reuse the same map while saving multiple shapes to the same stream in order to avoid writing duplicates. <br /></td></tr>
  305. <tr class="separator:a29511616de01507e714e8187686bc9f1 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  306. <tr class="inherit_header pub_methods_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_ref_target')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_ref_target.html">RefTarget&lt; Shape &gt;</a></td></tr>
  307. <tr class="memitem:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target" id="r_a4c8a23738e2e1dd6369520a30e250b17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a4c8a23738e2e1dd6369520a30e250b17">RefTarget</a> ()=default</td></tr>
  308. <tr class="memdesc:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
  309. <tr class="separator:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  310. <tr class="memitem:a50444e3b659c6f93c64aee224a93f6ab inherit pub_methods_class_ref_target" id="r_a50444e3b659c6f93c64aee224a93f6ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a50444e3b659c6f93c64aee224a93f6ab">RefTarget</a> (const <a class="el" href="class_ref_target.html">RefTarget</a> &amp;)</td></tr>
  311. <tr class="separator:a50444e3b659c6f93c64aee224a93f6ab inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  312. <tr class="memitem:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target" id="r_ac3110b9f511287f881d7afaf26871e1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#ac3110b9f511287f881d7afaf26871e1b">~RefTarget</a> ()</td></tr>
  313. <tr class="memdesc:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">assert no one is referencing us <br /></td></tr>
  314. <tr class="separator:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  315. <tr class="memitem:a3befa746ea517453572f6f4f5fc3b099 inherit pub_methods_class_ref_target" id="r_a3befa746ea517453572f6f4f5fc3b099"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a3befa746ea517453572f6f4f5fc3b099">SetEmbedded</a> () const</td></tr>
  316. <tr class="separator:a3befa746ea517453572f6f4f5fc3b099 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  317. <tr class="memitem:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target" id="r_a1fc15bfe979bc43a7fa71c7c34f87ed0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_ref_target.html">RefTarget</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a1fc15bfe979bc43a7fa71c7c34f87ed0">operator=</a> (const <a class="el" href="class_ref_target.html">RefTarget</a> &amp;)</td></tr>
  318. <tr class="memdesc:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <br /></td></tr>
  319. <tr class="separator:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  320. <tr class="memitem:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target" id="r_acaf07366183c51cd8460c7d3dcd07c2d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#acaf07366183c51cd8460c7d3dcd07c2d">GetRefCount</a> () const</td></tr>
  321. <tr class="memdesc:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current refcount of this object. <br /></td></tr>
  322. <tr class="separator:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  323. <tr class="memitem:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target" id="r_acf02c18a343bc9de9d6afb7c966f0363"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#acf02c18a343bc9de9d6afb7c966f0363">AddRef</a> () const</td></tr>
  324. <tr class="memdesc:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add or release a reference to this object. <br /></td></tr>
  325. <tr class="separator:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  326. <tr class="memitem:a0451661dd5d85b01f969319e767993eb inherit pub_methods_class_ref_target" id="r_a0451661dd5d85b01f969319e767993eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a0451661dd5d85b01f969319e767993eb">Release</a> () const</td></tr>
  327. <tr class="separator:a0451661dd5d85b01f969319e767993eb inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  328. <tr class="inherit_header pub_methods_class_non_copyable"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_non_copyable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_non_copyable.html">NonCopyable</a></td></tr>
  329. <tr class="memitem:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable" id="r_a809b6e4ade7ae32f6d248f2a3b783d45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#a809b6e4ade7ae32f6d248f2a3b783d45">NonCopyable</a> ()=default</td></tr>
  330. <tr class="separator:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  331. <tr class="memitem:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable" id="r_a501d34ffcc34b30de6d541887a901057"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#a501d34ffcc34b30de6d541887a901057">NonCopyable</a> (const <a class="el" href="class_non_copyable.html">NonCopyable</a> &amp;)=delete</td></tr>
  332. <tr class="separator:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  333. <tr class="memitem:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable" id="r_aaf9b12dcaae80c9d304df7a941d4e21f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#aaf9b12dcaae80c9d304df7a941d4e21f">operator=</a> (const <a class="el" href="class_non_copyable.html">NonCopyable</a> &amp;)=delete</td></tr>
  334. <tr class="separator:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  335. </table><table class="memberdecls">
  336. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  337. Static Public Member Functions</h2></td></tr>
  338. <tr class="memitem:a1c9b4561e27c2a0180c51eea489cf9b9" id="r_a1c9b4561e27c2a0180c51eea489cf9b9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1c9b4561e27c2a0180c51eea489cf9b9">sRegister</a> ()</td></tr>
  339. <tr class="separator:a1c9b4561e27c2a0180c51eea489cf9b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  340. <tr class="inherit_header pub_static_methods_class_compound_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_methods_class_compound_shape')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_compound_shape.html">CompoundShape</a></td></tr>
  341. <tr class="memitem:a76f5b0d6e064aa361723e20870874c0e inherit pub_static_methods_class_compound_shape" id="r_a76f5b0d6e064aa361723e20870874c0e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a76f5b0d6e064aa361723e20870874c0e">sRegister</a> ()</td></tr>
  342. <tr class="separator:a76f5b0d6e064aa361723e20870874c0e inherit pub_static_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  343. <tr class="inherit_header pub_static_methods_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_methods_class_shape')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
  344. <tr class="memitem:a6e4794eda984be9d44335e38824eb1bb inherit pub_static_methods_class_shape" id="r_a6e4794eda984be9d44335e38824eb1bb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a6e4794eda984be9d44335e38824eb1bb">sRestoreFromBinaryState</a> (<a class="el" href="class_stream_in.html">StreamIn</a> &amp;inStream)</td></tr>
  345. <tr class="memdesc:a6e4794eda984be9d44335e38824eb1bb inherit pub_static_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_shape.html" title="Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det...">Shape</a> of the correct type and restores its contents from the binary stream inStream. <br /></td></tr>
  346. <tr class="separator:a6e4794eda984be9d44335e38824eb1bb inherit pub_static_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  347. <tr class="memitem:a439b98c1569fb5d44570446306823f5e inherit pub_static_methods_class_shape" id="r_a439b98c1569fb5d44570446306823f5e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a439b98c1569fb5d44570446306823f5e">sRestoreWithChildren</a> (<a class="el" href="class_stream_in.html">StreamIn</a> &amp;inStream, <a class="el" href="class_shape.html#a06ba83cf87213a408c508acbc786d2fe">IDToShapeMap</a> &amp;ioShapeMap, <a class="el" href="class_shape.html#a045656fa1693fed85254f1dd3975f5da">IDToMaterialMap</a> &amp;ioMaterialMap)</td></tr>
  348. <tr class="memdesc:a439b98c1569fb5d44570446306823f5e inherit pub_static_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restore a shape, all its children and materials. Pass in an empty map in ioShapeMap / ioMaterialMap or reuse the same map while reading multiple shapes from the same stream in order to restore duplicates. <br /></td></tr>
  349. <tr class="separator:a439b98c1569fb5d44570446306823f5e inherit pub_static_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  350. <tr class="inherit_header pub_static_methods_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_methods_class_ref_target')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_ref_target.html">RefTarget&lt; Shape &gt;</a></td></tr>
  351. <tr class="memitem:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target" id="r_a58b5a94748691b18ecf651ce918ae743"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a58b5a94748691b18ecf651ce918ae743">sInternalGetRefCountOffset</a> ()</td></tr>
  352. <tr class="memdesc:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTERNAL HELPER FUNCTION USED BY SERIALIZATION. <br /></td></tr>
  353. <tr class="separator:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  354. </table><table class="memberdecls">
  355. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
  356. Protected Member Functions</h2></td></tr>
  357. <tr class="memitem:ad787fdba1914f3550e2cf3c4036e99b8" id="r_ad787fdba1914f3550e2cf3c4036e99b8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad787fdba1914f3550e2cf3c4036e99b8">RestoreBinaryState</a> (<a class="el" href="class_stream_in.html">StreamIn</a> &amp;inStream) override</td></tr>
  358. <tr class="memdesc:ad787fdba1914f3550e2cf3c4036e99b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function should not be called directly, it is used by sRestoreFromBinaryState. <br /></td></tr>
  359. <tr class="separator:ad787fdba1914f3550e2cf3c4036e99b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  360. <tr class="inherit_header pro_methods_class_compound_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_class_compound_shape')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_compound_shape.html">CompoundShape</a></td></tr>
  361. <tr class="memitem:a3f4a71f903b9b37eb61262257ca268f2 inherit pro_methods_class_compound_shape" id="r_a3f4a71f903b9b37eb61262257ca268f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a3f4a71f903b9b37eb61262257ca268f2">GetSubShapeIDBits</a> () const</td></tr>
  362. <tr class="memdesc:a3f4a71f903b9b37eb61262257ca268f2 inherit pro_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine amount of bits needed to encode sub shape id. <br /></td></tr>
  363. <tr class="separator:a3f4a71f903b9b37eb61262257ca268f2 inherit pro_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  364. <tr class="memitem:ab1a1657fdb82a4b135872bacbca9ceaa inherit pro_methods_class_compound_shape" id="r_ab1a1657fdb82a4b135872bacbca9ceaa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ab1a1657fdb82a4b135872bacbca9ceaa">CalculateInnerRadius</a> ()</td></tr>
  365. <tr class="memdesc:ab1a1657fdb82a4b135872bacbca9ceaa inherit pro_methods_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the inner radius of this shape. <br /></td></tr>
  366. <tr class="separator:ab1a1657fdb82a4b135872bacbca9ceaa inherit pro_methods_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  367. <tr class="inherit_header pro_methods_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_class_shape')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
  368. </table><table class="memberdecls">
  369. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
  370. Additional Inherited Members</h2></td></tr>
  371. <tr class="inherit_header pub_types_class_compound_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_types_class_compound_shape')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="class_compound_shape.html">CompoundShape</a></td></tr>
  372. <tr class="memitem:a55fbd4f496242427b0e62d788a597e5b inherit pub_types_class_compound_shape" id="r_a55fbd4f496242427b0e62d788a597e5b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a55fbd4f496242427b0e62d788a597e5b">SubShapes</a> = <a class="el" href="class_array.html">Array</a>&lt;<a class="el" href="struct_compound_shape_1_1_sub_shape.html">SubShape</a>&gt;</td></tr>
  373. <tr class="separator:a55fbd4f496242427b0e62d788a597e5b inherit pub_types_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  374. <tr class="inherit_header pub_types_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_types_class_shape')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
  375. <tr class="memitem:a11c1ce0984dccb67176566d78331375e inherit pub_types_class_shape" id="r_a11c1ce0984dccb67176566d78331375e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> = <a class="el" href="class_shape_settings.html#a8573ddc7722fadfc12bb16515d77254a">ShapeSettings::ShapeResult</a></td></tr>
  376. <tr class="separator:a11c1ce0984dccb67176566d78331375e inherit pub_types_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  377. <tr class="memitem:a95d3060318d33c1ef314c5b856a70cb8 inherit pub_types_class_shape" id="r_a95d3060318d33c1ef314c5b856a70cb8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a95d3060318d33c1ef314c5b856a70cb8">SupportingFace</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_vec3.html">Vec3</a>, 32&gt;</td></tr>
  378. <tr class="memdesc:a95d3060318d33c1ef314c5b856a70cb8 inherit pub_types_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definition for a supporting face. <br /></td></tr>
  379. <tr class="separator:a95d3060318d33c1ef314c5b856a70cb8 inherit pub_types_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  380. <tr class="memitem:afff02f0117147a8f7eb43e9c5a50e969 inherit pub_types_class_shape" id="r_afff02f0117147a8f7eb43e9c5a50e969"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#afff02f0117147a8f7eb43e9c5a50e969">VisitedShapes</a> = <a class="el" href="class_unordered_set.html">UnorderedSet</a>&lt;const <a class="el" href="class_shape.html">Shape</a> *&gt;</td></tr>
  381. <tr class="separator:afff02f0117147a8f7eb43e9c5a50e969 inherit pub_types_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  382. <tr class="memitem:a5944ae14aeacc70bb42a38d7c3a31220 inherit pub_types_class_shape" id="r_a5944ae14aeacc70bb42a38d7c3a31220"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a5944ae14aeacc70bb42a38d7c3a31220">ShapeToIDMap</a> = <a class="el" href="namespace_stream_utils.html#a2c35a4aac73cd9d9d8c567e1cd528603">StreamUtils::ObjectToIDMap</a>&lt;<a class="el" href="class_shape.html">Shape</a>&gt;</td></tr>
  383. <tr class="separator:a5944ae14aeacc70bb42a38d7c3a31220 inherit pub_types_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  384. <tr class="memitem:a06ba83cf87213a408c508acbc786d2fe inherit pub_types_class_shape" id="r_a06ba83cf87213a408c508acbc786d2fe"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a06ba83cf87213a408c508acbc786d2fe">IDToShapeMap</a> = <a class="el" href="namespace_stream_utils.html#a4e9b8d62b617c5d31288ae8313a6b6cb">StreamUtils::IDToObjectMap</a>&lt;<a class="el" href="class_shape.html">Shape</a>&gt;</td></tr>
  385. <tr class="separator:a06ba83cf87213a408c508acbc786d2fe inherit pub_types_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  386. <tr class="memitem:a78cea5d82e89748412a5dca2f1352de1 inherit pub_types_class_shape" id="r_a78cea5d82e89748412a5dca2f1352de1"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a78cea5d82e89748412a5dca2f1352de1">MaterialToIDMap</a> = <a class="el" href="namespace_stream_utils.html#a2c35a4aac73cd9d9d8c567e1cd528603">StreamUtils::ObjectToIDMap</a>&lt;<a class="el" href="class_physics_material.html">PhysicsMaterial</a>&gt;</td></tr>
  387. <tr class="separator:a78cea5d82e89748412a5dca2f1352de1 inherit pub_types_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  388. <tr class="memitem:a045656fa1693fed85254f1dd3975f5da inherit pub_types_class_shape" id="r_a045656fa1693fed85254f1dd3975f5da"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a045656fa1693fed85254f1dd3975f5da">IDToMaterialMap</a> = <a class="el" href="namespace_stream_utils.html#a4e9b8d62b617c5d31288ae8313a6b6cb">StreamUtils::IDToObjectMap</a>&lt;<a class="el" href="class_physics_material.html">PhysicsMaterial</a>&gt;</td></tr>
  389. <tr class="separator:a045656fa1693fed85254f1dd3975f5da inherit pub_types_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  390. <tr class="inherit_header pub_static_attribs_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_attribs_class_shape')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
  391. <tr class="memitem:a69184c6cd6ddf309ee9b789300accbb6 inherit pub_static_attribs_class_shape" id="r_a69184c6cd6ddf309ee9b789300accbb6"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a69184c6cd6ddf309ee9b789300accbb6">cGetTrianglesMinTrianglesRequested</a> = 32</td></tr>
  392. <tr class="memdesc:a69184c6cd6ddf309ee9b789300accbb6 inherit pub_static_attribs_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the minimum amount of triangles that should be requested through GetTrianglesNext. <br /></td></tr>
  393. <tr class="separator:a69184c6cd6ddf309ee9b789300accbb6 inherit pub_static_attribs_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  394. <tr class="memitem:af317ba0cd0b3cd9e093c2e417f5f230e inherit pub_static_attribs_class_shape" id="r_af317ba0cd0b3cd9e093c2e417f5f230e"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#af317ba0cd0b3cd9e093c2e417f5f230e">sDrawSubmergedVolumes</a> = false</td></tr>
  395. <tr class="memdesc:af317ba0cd0b3cd9e093c2e417f5f230e inherit pub_static_attribs_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debug helper which draws the intersection between water and the shapes, the center of buoyancy and the submerged volume. <br /></td></tr>
  396. <tr class="separator:af317ba0cd0b3cd9e093c2e417f5f230e inherit pub_static_attribs_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  397. <tr class="inherit_header pro_static_methods_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_static_methods_class_shape')"><img src="closed.png" alt="-"/>&#160;Static Protected Member Functions inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
  398. <tr class="memitem:a2fff7d5dd25602bf880f69bd92049652 inherit pro_static_methods_class_shape" id="r_a2fff7d5dd25602bf880f69bd92049652"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a2fff7d5dd25602bf880f69bd92049652">sCollidePointUsingRayCast</a> (const <a class="el" href="class_shape.html">Shape</a> &amp;inShape, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPoint, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inSubShapeIDCreator, <a class="el" href="_shape_8h.html#aebaf36faa66f5b466411acbe12342d70">CollidePointCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter)</td></tr>
  399. <tr class="memdesc:a2fff7d5dd25602bf880f69bd92049652 inherit pro_static_methods_class_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">A fallback version of CollidePoint that uses a ray cast and counts the number of hits to determine if the point is inside the shape. Odd number of hits means inside, even number of hits means outside. <br /></td></tr>
  400. <tr class="separator:a2fff7d5dd25602bf880f69bd92049652 inherit pro_static_methods_class_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  401. <tr class="inherit_header pro_attribs_class_compound_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_attribs_class_compound_shape')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_compound_shape.html">CompoundShape</a></td></tr>
  402. <tr class="memitem:a6f0173f4441e35a94b5faa7e95062234 inherit pro_attribs_class_compound_shape" id="r_a6f0173f4441e35a94b5faa7e95062234"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a6f0173f4441e35a94b5faa7e95062234">mCenterOfMass</a> { <a class="el" href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">Vec3::sZero</a>() }</td></tr>
  403. <tr class="memdesc:a6f0173f4441e35a94b5faa7e95062234 inherit pro_attribs_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Center of mass of the compound. <br /></td></tr>
  404. <tr class="separator:a6f0173f4441e35a94b5faa7e95062234 inherit pro_attribs_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  405. <tr class="memitem:a230f2ff5c2d384c55f7845ff18acc8b0 inherit pro_attribs_class_compound_shape" id="r_a230f2ff5c2d384c55f7845ff18acc8b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_a_a_box.html">AABox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a230f2ff5c2d384c55f7845ff18acc8b0">mLocalBounds</a> { <a class="el" href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">Vec3::sZero</a>(), <a class="el" href="class_vec3.html#ad03c52ab27761bc1e64e33c47632ba51">Vec3::sZero</a>() }</td></tr>
  406. <tr class="separator:a230f2ff5c2d384c55f7845ff18acc8b0 inherit pro_attribs_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  407. <tr class="memitem:ad0a3a145f580f2d8f5fabb2495a8eb7c inherit pro_attribs_class_compound_shape" id="r_ad0a3a145f580f2d8f5fabb2495a8eb7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_compound_shape.html#a55fbd4f496242427b0e62d788a597e5b">SubShapes</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#ad0a3a145f580f2d8f5fabb2495a8eb7c">mSubShapes</a></td></tr>
  408. <tr class="separator:ad0a3a145f580f2d8f5fabb2495a8eb7c inherit pro_attribs_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  409. <tr class="memitem:a3218b42376c5d2e7958d01010fb4a326 inherit pro_attribs_class_compound_shape" id="r_a3218b42376c5d2e7958d01010fb4a326"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_compound_shape.html#a3218b42376c5d2e7958d01010fb4a326">mInnerRadius</a> = FLT_MAX</td></tr>
  410. <tr class="memdesc:a3218b42376c5d2e7958d01010fb4a326 inherit pro_attribs_class_compound_shape"><td class="mdescLeft">&#160;</td><td class="mdescRight">Smallest radius of <a class="el" href="class_compound_shape.html#ae17025f3ed04cdf063dc0f3b180468a4">GetInnerRadius()</a> of child shapes. <br /></td></tr>
  411. <tr class="separator:a3218b42376c5d2e7958d01010fb4a326 inherit pro_attribs_class_compound_shape"><td class="memSeparator" colspan="2">&#160;</td></tr>
  412. <tr class="inherit_header pro_attribs_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_attribs_class_ref_target')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_ref_target.html">RefTarget&lt; Shape &gt;</a></td></tr>
  413. <tr class="memitem:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target" id="r_a12afba0bdae7706a0afd4d96ac128231"><td class="memItemLeft" align="right" valign="top">atomic&lt; <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a12afba0bdae7706a0afd4d96ac128231">mRefCount</a></td></tr>
  414. <tr class="memdesc:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current reference count. <br /></td></tr>
  415. <tr class="separator:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  416. <tr class="inherit_header pro_static_attribs_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_static_attribs_class_ref_target')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_ref_target.html">RefTarget&lt; Shape &gt;</a></td></tr>
  417. <tr class="memitem:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target" id="r_ad37db773efa3c8756f6d95df3862b875"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#ad37db773efa3c8756f6d95df3862b875">cEmbedded</a></td></tr>
  418. <tr class="memdesc:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target"><td class="mdescLeft">&#160;</td><td class="mdescRight">A large value that gets added to the refcount to mark the object as embedded. <br /></td></tr>
  419. <tr class="separator:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target"><td class="memSeparator" colspan="2">&#160;</td></tr>
  420. </table>
  421. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  422. <div class="textblock"><p>A compound shape, sub shapes can be rotated and translated. This shape is optimized for adding / removing and changing the rotation / translation of sub shapes but is less efficient in querying. Shifts all child objects so that they're centered around the center of mass (which needs to be kept up to date by calling AdjustCenterOfMass).</p>
  423. <p>Note: If you're using <a class="el" href="class_mutable_compound_shape.html">MutableCompoundShape</a> and are querying data while modifying the shape you'll have a race condition. In this case it is best to create a new <a class="el" href="class_mutable_compound_shape.html">MutableCompoundShape</a> using the Clone function. You replace the shape on a body using <a class="el" href="class_body_interface.html#a051a4064706509e2b1c4dcc6d688676d">BodyInterface::SetShape</a>. If a query is still working on the old shape, it will have taken a reference and keep the old shape alive until the query finishes.</p>
  424. <p>When you modify a <a class="el" href="class_mutable_compound_shape.html">MutableCompoundShape</a>, beware that the SubShapeIDs of all other shapes can change. So be careful when storing SubShapeIDs. </p>
  425. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  426. <a id="a661ed40beb5af222c420b5746c16f431" name="a661ed40beb5af222c420b5746c16f431"></a>
  427. <h2 class="memtitle"><span class="permalink"><a href="#a661ed40beb5af222c420b5746c16f431">&#9670;&#160;</a></span>MutableCompoundShape() <span class="overload">[1/2]</span></h2>
  428. <div class="memitem">
  429. <div class="memproto">
  430. <table class="mlabels">
  431. <tr>
  432. <td class="mlabels-left">
  433. <table class="memname">
  434. <tr>
  435. <td class="memname"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a> MutableCompoundShape::MutableCompoundShape </td>
  436. <td>(</td>
  437. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  438. <td></td>
  439. </tr>
  440. </table>
  441. </td>
  442. <td class="mlabels-right">
  443. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  444. </tr>
  445. </table>
  446. </div><div class="memdoc">
  447. <p>Constructor. </p>
  448. </div>
  449. </div>
  450. <a id="aa1412a6fbb245ef5476d7c72597f7aa9" name="aa1412a6fbb245ef5476d7c72597f7aa9"></a>
  451. <h2 class="memtitle"><span class="permalink"><a href="#aa1412a6fbb245ef5476d7c72597f7aa9">&#9670;&#160;</a></span>MutableCompoundShape() <span class="overload">[2/2]</span></h2>
  452. <div class="memitem">
  453. <div class="memproto">
  454. <table class="memname">
  455. <tr>
  456. <td class="memname">MutableCompoundShape::MutableCompoundShape </td>
  457. <td>(</td>
  458. <td class="paramtype">const <a class="el" href="class_mutable_compound_shape_settings.html">MutableCompoundShapeSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSettings</em></span>, </td>
  459. </tr>
  460. <tr>
  461. <td class="paramkey"></td>
  462. <td></td>
  463. <td class="paramtype"><a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outResult</em></span>&#160;)</td>
  464. </tr>
  465. </table>
  466. </div><div class="memdoc">
  467. </div>
  468. </div>
  469. <h2 class="groupheader">Member Function Documentation</h2>
  470. <a id="ac5944df39ec23c2336c92224afab2651" name="ac5944df39ec23c2336c92224afab2651"></a>
  471. <h2 class="memtitle"><span class="permalink"><a href="#ac5944df39ec23c2336c92224afab2651">&#9670;&#160;</a></span>AddShape()</h2>
  472. <div class="memitem">
  473. <div class="memproto">
  474. <table class="memname">
  475. <tr>
  476. <td class="memname"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> MutableCompoundShape::AddShape </td>
  477. <td>(</td>
  478. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPosition</em></span>, </td>
  479. </tr>
  480. <tr>
  481. <td class="paramkey"></td>
  482. <td></td>
  483. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRotation</em></span>, </td>
  484. </tr>
  485. <tr>
  486. <td class="paramkey"></td>
  487. <td></td>
  488. <td class="paramtype">const <a class="el" href="class_shape.html">Shape</a> *</td> <td class="paramname"><span class="paramname"><em>inShape</em></span>, </td>
  489. </tr>
  490. <tr>
  491. <td class="paramkey"></td>
  492. <td></td>
  493. <td class="paramtype"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a></td> <td class="paramname"><span class="paramname"><em>inUserData</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
  494. </tr>
  495. <tr>
  496. <td class="paramkey"></td>
  497. <td></td>
  498. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inIndex</em></span><span class="paramdefsep"> = </span><span class="paramdefval">UINT_MAX</span>&#160;)</td>
  499. </tr>
  500. </table>
  501. </div><div class="memdoc">
  502. <p>Adding a new shape. Beware this can create a race condition if you're running collision queries in parallel. See class documentation for more information. </p><dl class="params"><dt>Parameters</dt><dd>
  503. <table class="params">
  504. <tr><td class="paramname">inPosition</td><td>The position of the new shape </td></tr>
  505. <tr><td class="paramname">inRotation</td><td>The orientation of the new shape </td></tr>
  506. <tr><td class="paramname">inShape</td><td>The shape to add </td></tr>
  507. <tr><td class="paramname">inUserData</td><td>User data that will be stored with the shape and can be retrieved using GetCompoundUserData </td></tr>
  508. <tr><td class="paramname">inIndex</td><td>Index where to insert the shape, UINT_MAX to add to the end </td></tr>
  509. </table>
  510. </dd>
  511. </dl>
  512. <dl class="section return"><dt>Returns</dt><dd>The index of the newly added shape </dd></dl>
  513. </div>
  514. </div>
  515. <a id="aadb711e8d328adc04397be0cf44d4f4c" name="aadb711e8d328adc04397be0cf44d4f4c"></a>
  516. <h2 class="memtitle"><span class="permalink"><a href="#aadb711e8d328adc04397be0cf44d4f4c">&#9670;&#160;</a></span>AdjustCenterOfMass()</h2>
  517. <div class="memitem">
  518. <div class="memproto">
  519. <table class="memname">
  520. <tr>
  521. <td class="memname">void MutableCompoundShape::AdjustCenterOfMass </td>
  522. <td>(</td>
  523. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  524. <td></td>
  525. </tr>
  526. </table>
  527. </div><div class="memdoc">
  528. <p>Recalculate the center of mass and shift all objects so they're centered around it (this needs to be done of dynamic bodies and if the center of mass changes significantly due to adding / removing / repositioning sub shapes or else the simulation will look unnatural) Note that after adjusting the center of mass of an object you need to call <a class="el" href="class_body_interface.html#aa2e0c12f152375b42b3de56faf9bec86">BodyInterface::NotifyShapeChanged</a> and <a class="el" href="class_constraint.html#a3072411d2c9da10356f2087cdc02ec70">Constraint::NotifyShapeChanged</a> on the relevant bodies / constraints. Beware this can create a race condition if you're running collision queries in parallel. See class documentation for more information. </p>
  529. </div>
  530. </div>
  531. <a id="ab09749afef2d856a1a9b8834857ee5fa" name="ab09749afef2d856a1a9b8834857ee5fa"></a>
  532. <h2 class="memtitle"><span class="permalink"><a href="#ab09749afef2d856a1a9b8834857ee5fa">&#9670;&#160;</a></span>CastRay() <span class="overload">[1/2]</span></h2>
  533. <div class="memitem">
  534. <div class="memproto">
  535. <table class="mlabels">
  536. <tr>
  537. <td class="mlabels-left">
  538. <table class="memname">
  539. <tr>
  540. <td class="memname">void MutableCompoundShape::CastRay </td>
  541. <td>(</td>
  542. <td class="paramtype">const <a class="el" href="struct_ray_cast.html">RayCast</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRay</em></span>, </td>
  543. </tr>
  544. <tr>
  545. <td class="paramkey"></td>
  546. <td></td>
  547. <td class="paramtype">const <a class="el" href="class_ray_cast_settings.html">RayCastSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRayCastSettings</em></span>, </td>
  548. </tr>
  549. <tr>
  550. <td class="paramkey"></td>
  551. <td></td>
  552. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeIDCreator</em></span>, </td>
  553. </tr>
  554. <tr>
  555. <td class="paramkey"></td>
  556. <td></td>
  557. <td class="paramtype"><a class="el" href="_shape_8h.html#a09896ea7755d75dc0c2c3e7058a6b85b">CastRayCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  558. </tr>
  559. <tr>
  560. <td class="paramkey"></td>
  561. <td></td>
  562. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{&#160;}</span>&#160;) const</td>
  563. </tr>
  564. </table>
  565. </td>
  566. <td class="mlabels-right">
  567. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  568. </tr>
  569. </table>
  570. </div><div class="memdoc">
  571. <p>Cast a ray against this shape. Allows returning multiple hits through ioCollector. Note that this version is more flexible but also slightly slower than the CastRay function that returns only a single hit. If you want the surface normal of the hit use GetSurfaceNormal(collected sub shape ID, inRay.GetPointOnRay(collected faction)). </p>
  572. <p>Implements <a class="el" href="class_shape.html#a54b33219a3685aa4b964f6b69a2cfa7d">Shape</a>.</p>
  573. </div>
  574. </div>
  575. <a id="afd8f121a563bf40c32b8169765636a2b" name="afd8f121a563bf40c32b8169765636a2b"></a>
  576. <h2 class="memtitle"><span class="permalink"><a href="#afd8f121a563bf40c32b8169765636a2b">&#9670;&#160;</a></span>CastRay() <span class="overload">[2/2]</span></h2>
  577. <div class="memitem">
  578. <div class="memproto">
  579. <table class="mlabels">
  580. <tr>
  581. <td class="mlabels-left">
  582. <table class="memname">
  583. <tr>
  584. <td class="memname">bool MutableCompoundShape::CastRay </td>
  585. <td>(</td>
  586. <td class="paramtype">const <a class="el" href="struct_ray_cast.html">RayCast</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRay</em></span>, </td>
  587. </tr>
  588. <tr>
  589. <td class="paramkey"></td>
  590. <td></td>
  591. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeIDCreator</em></span>, </td>
  592. </tr>
  593. <tr>
  594. <td class="paramkey"></td>
  595. <td></td>
  596. <td class="paramtype"><a class="el" href="class_ray_cast_result.html">RayCastResult</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioHit</em></span>&#160;) const</td>
  597. </tr>
  598. </table>
  599. </td>
  600. <td class="mlabels-right">
  601. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  602. </tr>
  603. </table>
  604. </div><div class="memdoc">
  605. <p>Cast a ray against this shape, returns true if it finds a hit closer than ioHit.mFraction and updates that fraction. Otherwise ioHit is left untouched and the function returns false. Note that the ray should be relative to the center of mass of this shape (i.e. subtract <a class="el" href="class_shape.html#a7e34b0626a40c31db0b2a761922adb1a" title="All shapes are centered around their center of mass. This function returns the center of mass positio...">Shape::GetCenterOfMass()</a> from <a class="el" href="struct_ray_cast_t.html#ae66dc4b0c20b242f17bcf70cb5507e51">RayCast::mOrigin</a> if you want to cast against the shape in the space it was created). Convex objects will be treated as solid (meaning if the ray starts inside, you'll get a hit fraction of 0) and back face hits against triangles are returned. If you want the surface normal of the hit use GetSurfaceNormal(ioHit.mSubShapeID2, inRay.GetPointOnRay(ioHit.mFraction)). </p>
  606. <p>Implements <a class="el" href="class_shape.html#a955ec1953bc94c6c910dc4dc16114732">Shape</a>.</p>
  607. </div>
  608. </div>
  609. <a id="a00b71825b8bf3d4b4dfb577b061a2576" name="a00b71825b8bf3d4b4dfb577b061a2576"></a>
  610. <h2 class="memtitle"><span class="permalink"><a href="#a00b71825b8bf3d4b4dfb577b061a2576">&#9670;&#160;</a></span>Clone()</h2>
  611. <div class="memitem">
  612. <div class="memproto">
  613. <table class="memname">
  614. <tr>
  615. <td class="memname"><a class="el" href="class_ref.html">Ref</a>&lt; <a class="el" href="class_mutable_compound_shape.html">MutableCompoundShape</a> &gt; MutableCompoundShape::Clone </td>
  616. <td>(</td>
  617. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  618. <td> const</td>
  619. </tr>
  620. </table>
  621. </div><div class="memdoc">
  622. <p>Clone this shape. Can be used to avoid race conditions. See the documentation of this class for more information. </p>
  623. </div>
  624. </div>
  625. <a id="a1d0db8584b022b03077a13f3d632e22c" name="a1d0db8584b022b03077a13f3d632e22c"></a>
  626. <h2 class="memtitle"><span class="permalink"><a href="#a1d0db8584b022b03077a13f3d632e22c">&#9670;&#160;</a></span>CollectTransformedShapes()</h2>
  627. <div class="memitem">
  628. <div class="memproto">
  629. <table class="mlabels">
  630. <tr>
  631. <td class="mlabels-left">
  632. <table class="memname">
  633. <tr>
  634. <td class="memname">void MutableCompoundShape::CollectTransformedShapes </td>
  635. <td>(</td>
  636. <td class="paramtype">const <a class="el" href="class_a_a_box.html">AABox</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  637. </tr>
  638. <tr>
  639. <td class="paramkey"></td>
  640. <td></td>
  641. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPositionCOM</em></span>, </td>
  642. </tr>
  643. <tr>
  644. <td class="paramkey"></td>
  645. <td></td>
  646. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRotation</em></span>, </td>
  647. </tr>
  648. <tr>
  649. <td class="paramkey"></td>
  650. <td></td>
  651. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inScale</em></span>, </td>
  652. </tr>
  653. <tr>
  654. <td class="paramkey"></td>
  655. <td></td>
  656. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeIDCreator</em></span>, </td>
  657. </tr>
  658. <tr>
  659. <td class="paramkey"></td>
  660. <td></td>
  661. <td class="paramtype"><a class="el" href="_shape_8h.html#ac1f1a1681fa4d69dfbc6cd9cc08c2ee4">TransformedShapeCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  662. </tr>
  663. <tr>
  664. <td class="paramkey"></td>
  665. <td></td>
  666. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span>&#160;) const</td>
  667. </tr>
  668. </table>
  669. </td>
  670. <td class="mlabels-right">
  671. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  672. </tr>
  673. </table>
  674. </div><div class="memdoc">
  675. <p>Collect the leaf transformed shapes of all leaf shapes of this shape. inBox is the world space axis aligned box which leaf shapes should collide with. inPositionCOM/inRotation/inScale describes the transform of this shape. inSubShapeIDCreator represents the current sub shape ID of this shape. </p>
  676. <p>Reimplemented from <a class="el" href="class_shape.html#a3ed865e7eb30221b418cfd61d1430173">Shape</a>.</p>
  677. </div>
  678. </div>
  679. <a id="aa145b08202a26df921533b5f2db9f55f" name="aa145b08202a26df921533b5f2db9f55f"></a>
  680. <h2 class="memtitle"><span class="permalink"><a href="#aa145b08202a26df921533b5f2db9f55f">&#9670;&#160;</a></span>CollidePoint()</h2>
  681. <div class="memitem">
  682. <div class="memproto">
  683. <table class="mlabels">
  684. <tr>
  685. <td class="mlabels-left">
  686. <table class="memname">
  687. <tr>
  688. <td class="memname">void MutableCompoundShape::CollidePoint </td>
  689. <td>(</td>
  690. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPoint</em></span>, </td>
  691. </tr>
  692. <tr>
  693. <td class="paramkey"></td>
  694. <td></td>
  695. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeIDCreator</em></span>, </td>
  696. </tr>
  697. <tr>
  698. <td class="paramkey"></td>
  699. <td></td>
  700. <td class="paramtype"><a class="el" href="_shape_8h.html#aebaf36faa66f5b466411acbe12342d70">CollidePointCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  701. </tr>
  702. <tr>
  703. <td class="paramkey"></td>
  704. <td></td>
  705. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{&#160;}</span>&#160;) const</td>
  706. </tr>
  707. </table>
  708. </td>
  709. <td class="mlabels-right">
  710. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  711. </tr>
  712. </table>
  713. </div><div class="memdoc">
  714. <p>Check if inPoint is inside this shape. For this tests all shapes are treated as if they were solid. Note that inPoint should be relative to the center of mass of this shape (i.e. subtract <a class="el" href="class_shape.html#a7e34b0626a40c31db0b2a761922adb1a" title="All shapes are centered around their center of mass. This function returns the center of mass positio...">Shape::GetCenterOfMass()</a> from inPoint if you want to test against the shape in the space it was created). For a mesh shape, this test will only provide sensible information if the mesh is a closed manifold. For each shape that collides, ioCollector will receive a hit. </p>
  715. <p>Implements <a class="el" href="class_shape.html#af6e77d16736434769d72152bf059a126">Shape</a>.</p>
  716. </div>
  717. </div>
  718. <a id="a384f4371999246795c2e3f84ad75eca0" name="a384f4371999246795c2e3f84ad75eca0"></a>
  719. <h2 class="memtitle"><span class="permalink"><a href="#a384f4371999246795c2e3f84ad75eca0">&#9670;&#160;</a></span>GetIntersectingSubShapes() <span class="overload">[1/2]</span></h2>
  720. <div class="memitem">
  721. <div class="memproto">
  722. <table class="mlabels">
  723. <tr>
  724. <td class="mlabels-left">
  725. <table class="memname">
  726. <tr>
  727. <td class="memname">int MutableCompoundShape::GetIntersectingSubShapes </td>
  728. <td>(</td>
  729. <td class="paramtype">const <a class="el" href="class_a_a_box.html">AABox</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  730. </tr>
  731. <tr>
  732. <td class="paramkey"></td>
  733. <td></td>
  734. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> *</td> <td class="paramname"><span class="paramname"><em>outSubShapeIndices</em></span>, </td>
  735. </tr>
  736. <tr>
  737. <td class="paramkey"></td>
  738. <td></td>
  739. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inMaxSubShapeIndices</em></span>&#160;) const</td>
  740. </tr>
  741. </table>
  742. </td>
  743. <td class="mlabels-right">
  744. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  745. </tr>
  746. </table>
  747. </div><div class="memdoc">
  748. <p>Get which sub shape's bounding boxes overlap with an axis aligned box </p><dl class="params"><dt>Parameters</dt><dd>
  749. <table class="params">
  750. <tr><td class="paramname">inBox</td><td>The axis aligned box to test against (relative to the center of mass of this shape) </td></tr>
  751. <tr><td class="paramname">outSubShapeIndices</td><td>Buffer where to place the indices of the sub shapes that intersect </td></tr>
  752. <tr><td class="paramname">inMaxSubShapeIndices</td><td>How many indices will fit in the buffer (normally you'd provide a buffer of <a class="el" href="class_compound_shape.html#abe1e5333a667ccd80b6146b951abf918" title="Get the total number of sub shapes.">GetNumSubShapes()</a> indices) </td></tr>
  753. </table>
  754. </dd>
  755. </dl>
  756. <dl class="section return"><dt>Returns</dt><dd>How many indices were placed in outSubShapeIndices </dd></dl>
  757. <p>Implements <a class="el" href="class_compound_shape.html#abe5c3a8558c840abba213a6a48149f85">CompoundShape</a>.</p>
  758. </div>
  759. </div>
  760. <a id="ad254423b72d228ee50b548c9d4b52696" name="ad254423b72d228ee50b548c9d4b52696"></a>
  761. <h2 class="memtitle"><span class="permalink"><a href="#ad254423b72d228ee50b548c9d4b52696">&#9670;&#160;</a></span>GetIntersectingSubShapes() <span class="overload">[2/2]</span></h2>
  762. <div class="memitem">
  763. <div class="memproto">
  764. <table class="mlabels">
  765. <tr>
  766. <td class="mlabels-left">
  767. <table class="memname">
  768. <tr>
  769. <td class="memname">int MutableCompoundShape::GetIntersectingSubShapes </td>
  770. <td>(</td>
  771. <td class="paramtype">const <a class="el" href="class_oriented_box.html">OrientedBox</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  772. </tr>
  773. <tr>
  774. <td class="paramkey"></td>
  775. <td></td>
  776. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> *</td> <td class="paramname"><span class="paramname"><em>outSubShapeIndices</em></span>, </td>
  777. </tr>
  778. <tr>
  779. <td class="paramkey"></td>
  780. <td></td>
  781. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inMaxSubShapeIndices</em></span>&#160;) const</td>
  782. </tr>
  783. </table>
  784. </td>
  785. <td class="mlabels-right">
  786. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  787. </tr>
  788. </table>
  789. </div><div class="memdoc">
  790. <p>Get which sub shape's bounding boxes overlap with an axis aligned box </p><dl class="params"><dt>Parameters</dt><dd>
  791. <table class="params">
  792. <tr><td class="paramname">inBox</td><td>The axis aligned box to test against (relative to the center of mass of this shape) </td></tr>
  793. <tr><td class="paramname">outSubShapeIndices</td><td>Buffer where to place the indices of the sub shapes that intersect </td></tr>
  794. <tr><td class="paramname">inMaxSubShapeIndices</td><td>How many indices will fit in the buffer (normally you'd provide a buffer of <a class="el" href="class_compound_shape.html#abe1e5333a667ccd80b6146b951abf918" title="Get the total number of sub shapes.">GetNumSubShapes()</a> indices) </td></tr>
  795. </table>
  796. </dd>
  797. </dl>
  798. <dl class="section return"><dt>Returns</dt><dd>How many indices were placed in outSubShapeIndices </dd></dl>
  799. <p>Implements <a class="el" href="class_compound_shape.html#a3f38b90e13eccc4d52de7bbc2cbcb9aa">CompoundShape</a>.</p>
  800. </div>
  801. </div>
  802. <a id="aabd799e121f048e83a6ef43490422fbe" name="aabd799e121f048e83a6ef43490422fbe"></a>
  803. <h2 class="memtitle"><span class="permalink"><a href="#aabd799e121f048e83a6ef43490422fbe">&#9670;&#160;</a></span>GetStats()</h2>
  804. <div class="memitem">
  805. <div class="memproto">
  806. <table class="mlabels">
  807. <tr>
  808. <td class="mlabels-left">
  809. <table class="memname">
  810. <tr>
  811. <td class="memname">virtual <a class="el" href="struct_shape_1_1_stats.html">Stats</a> MutableCompoundShape::GetStats </td>
  812. <td>(</td>
  813. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  814. <td> const</td>
  815. </tr>
  816. </table>
  817. </td>
  818. <td class="mlabels-right">
  819. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  820. </tr>
  821. </table>
  822. </div><div class="memdoc">
  823. <p>Get stats of this shape. Use for logging / data collection purposes only. Does not add values from child shapes, use GetStatsRecursive for this. </p>
  824. <p>Implements <a class="el" href="class_shape.html#a87ae161e649ab6af75a60fe130dd195b">Shape</a>.</p>
  825. </div>
  826. </div>
  827. <a id="a3992cb7a984307a08139812e44da14ae" name="a3992cb7a984307a08139812e44da14ae"></a>
  828. <h2 class="memtitle"><span class="permalink"><a href="#a3992cb7a984307a08139812e44da14ae">&#9670;&#160;</a></span>ModifyShape() <span class="overload">[1/2]</span></h2>
  829. <div class="memitem">
  830. <div class="memproto">
  831. <table class="memname">
  832. <tr>
  833. <td class="memname">void MutableCompoundShape::ModifyShape </td>
  834. <td>(</td>
  835. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inIndex</em></span>, </td>
  836. </tr>
  837. <tr>
  838. <td class="paramkey"></td>
  839. <td></td>
  840. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPosition</em></span>, </td>
  841. </tr>
  842. <tr>
  843. <td class="paramkey"></td>
  844. <td></td>
  845. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRotation</em></span>&#160;)</td>
  846. </tr>
  847. </table>
  848. </div><div class="memdoc">
  849. <p>Modify the position / orientation of a shape. Beware this can create a race condition if you're running collision queries in parallel. See class documentation for more information. </p>
  850. </div>
  851. </div>
  852. <a id="a6b947de024a9a91039f4b472072efdba" name="a6b947de024a9a91039f4b472072efdba"></a>
  853. <h2 class="memtitle"><span class="permalink"><a href="#a6b947de024a9a91039f4b472072efdba">&#9670;&#160;</a></span>ModifyShape() <span class="overload">[2/2]</span></h2>
  854. <div class="memitem">
  855. <div class="memproto">
  856. <table class="memname">
  857. <tr>
  858. <td class="memname">void MutableCompoundShape::ModifyShape </td>
  859. <td>(</td>
  860. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inIndex</em></span>, </td>
  861. </tr>
  862. <tr>
  863. <td class="paramkey"></td>
  864. <td></td>
  865. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPosition</em></span>, </td>
  866. </tr>
  867. <tr>
  868. <td class="paramkey"></td>
  869. <td></td>
  870. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRotation</em></span>, </td>
  871. </tr>
  872. <tr>
  873. <td class="paramkey"></td>
  874. <td></td>
  875. <td class="paramtype">const <a class="el" href="class_shape.html">Shape</a> *</td> <td class="paramname"><span class="paramname"><em>inShape</em></span>&#160;)</td>
  876. </tr>
  877. </table>
  878. </div><div class="memdoc">
  879. <p>Modify the position / orientation and shape at the same time. Beware this can create a race condition if you're running collision queries in parallel. See class documentation for more information. </p>
  880. </div>
  881. </div>
  882. <a id="a48172d558ec67cb67e4a4d0ec7b48133" name="a48172d558ec67cb67e4a4d0ec7b48133"></a>
  883. <h2 class="memtitle"><span class="permalink"><a href="#a48172d558ec67cb67e4a4d0ec7b48133">&#9670;&#160;</a></span>ModifyShapes()</h2>
  884. <div class="memitem">
  885. <div class="memproto">
  886. <table class="memname">
  887. <tr>
  888. <td class="memname">void MutableCompoundShape::ModifyShapes </td>
  889. <td>(</td>
  890. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inStartIndex</em></span>, </td>
  891. </tr>
  892. <tr>
  893. <td class="paramkey"></td>
  894. <td></td>
  895. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>, </td>
  896. </tr>
  897. <tr>
  898. <td class="paramkey"></td>
  899. <td></td>
  900. <td class="paramtype">const <a class="el" href="class_vec3.html">Vec3</a> *</td> <td class="paramname"><span class="paramname"><em>inPositions</em></span>, </td>
  901. </tr>
  902. <tr>
  903. <td class="paramkey"></td>
  904. <td></td>
  905. <td class="paramtype">const <a class="el" href="class_quat.html">Quat</a> *</td> <td class="paramname"><span class="paramname"><em>inRotations</em></span>, </td>
  906. </tr>
  907. <tr>
  908. <td class="paramkey"></td>
  909. <td></td>
  910. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inPositionStride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">sizeof(<a class="el" href="class_vec3.html">Vec3</a>)</span>, </td>
  911. </tr>
  912. <tr>
  913. <td class="paramkey"></td>
  914. <td></td>
  915. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inRotationStride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">sizeof(<a class="el" href="class_quat.html">Quat</a>)</span>&#160;)</td>
  916. </tr>
  917. </table>
  918. </div><div class="memdoc">
  919. <p>Batch set positions / orientations, this avoids duplicate work due to bounding box calculation. Beware this can create a race condition if you're running collision queries in parallel. See class documentation for more information. </p>
  920. <dl class="params"><dt>Parameters</dt><dd>
  921. <table class="params">
  922. <tr><td class="paramname">inStartIndex</td><td>Index of first shape to update </td></tr>
  923. <tr><td class="paramname">inNumber</td><td>Number of shapes to update </td></tr>
  924. <tr><td class="paramname">inPositions</td><td>A list of positions with arbitrary stride </td></tr>
  925. <tr><td class="paramname">inRotations</td><td>A list of orientations with arbitrary stride </td></tr>
  926. <tr><td class="paramname">inPositionStride</td><td>The position stride (the number of bytes between the first and second element) </td></tr>
  927. <tr><td class="paramname">inRotationStride</td><td>The orientation stride (the number of bytes between the first and second element) </td></tr>
  928. </table>
  929. </dd>
  930. </dl>
  931. </div>
  932. </div>
  933. <a id="ab91b4cd767b396eca6a341e98501daea" name="ab91b4cd767b396eca6a341e98501daea"></a>
  934. <h2 class="memtitle"><span class="permalink"><a href="#ab91b4cd767b396eca6a341e98501daea">&#9670;&#160;</a></span>RemoveShape()</h2>
  935. <div class="memitem">
  936. <div class="memproto">
  937. <table class="memname">
  938. <tr>
  939. <td class="memname">void MutableCompoundShape::RemoveShape </td>
  940. <td>(</td>
  941. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inIndex</em></span></td><td>)</td>
  942. <td></td>
  943. </tr>
  944. </table>
  945. </div><div class="memdoc">
  946. <p>Remove a shape by index. Beware this can create a race condition if you're running collision queries in parallel. See class documentation for more information. </p>
  947. </div>
  948. </div>
  949. <a id="ad787fdba1914f3550e2cf3c4036e99b8" name="ad787fdba1914f3550e2cf3c4036e99b8"></a>
  950. <h2 class="memtitle"><span class="permalink"><a href="#ad787fdba1914f3550e2cf3c4036e99b8">&#9670;&#160;</a></span>RestoreBinaryState()</h2>
  951. <div class="memitem">
  952. <div class="memproto">
  953. <table class="mlabels">
  954. <tr>
  955. <td class="mlabels-left">
  956. <table class="memname">
  957. <tr>
  958. <td class="memname">void MutableCompoundShape::RestoreBinaryState </td>
  959. <td>(</td>
  960. <td class="paramtype"><a class="el" href="class_stream_in.html">StreamIn</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span></td><td>)</td>
  961. <td></td>
  962. </tr>
  963. </table>
  964. </td>
  965. <td class="mlabels-right">
  966. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  967. </tr>
  968. </table>
  969. </div><div class="memdoc">
  970. <p>This function should not be called directly, it is used by sRestoreFromBinaryState. </p>
  971. <p>Reimplemented from <a class="el" href="class_compound_shape.html#a117d02ee25d15fff53f59f29434b3449">CompoundShape</a>.</p>
  972. </div>
  973. </div>
  974. <a id="a07aa65e4960f1ad78764007a209c13eb" name="a07aa65e4960f1ad78764007a209c13eb"></a>
  975. <h2 class="memtitle"><span class="permalink"><a href="#a07aa65e4960f1ad78764007a209c13eb">&#9670;&#160;</a></span>SaveBinaryState()</h2>
  976. <div class="memitem">
  977. <div class="memproto">
  978. <table class="mlabels">
  979. <tr>
  980. <td class="mlabels-left">
  981. <table class="memname">
  982. <tr>
  983. <td class="memname">void MutableCompoundShape::SaveBinaryState </td>
  984. <td>(</td>
  985. <td class="paramtype"><a class="el" href="class_stream_out.html">StreamOut</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span></td><td>)</td>
  986. <td> const</td>
  987. </tr>
  988. </table>
  989. </td>
  990. <td class="mlabels-right">
  991. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  992. </tr>
  993. </table>
  994. </div><div class="memdoc">
  995. <p>Saves the contents of the shape in binary form to inStream. </p>
  996. <p>Reimplemented from <a class="el" href="class_compound_shape.html#a92f328ba37c5ad9d3a5555db36e05003">CompoundShape</a>.</p>
  997. </div>
  998. </div>
  999. <a id="a1c9b4561e27c2a0180c51eea489cf9b9" name="a1c9b4561e27c2a0180c51eea489cf9b9"></a>
  1000. <h2 class="memtitle"><span class="permalink"><a href="#a1c9b4561e27c2a0180c51eea489cf9b9">&#9670;&#160;</a></span>sRegister()</h2>
  1001. <div class="memitem">
  1002. <div class="memproto">
  1003. <table class="mlabels">
  1004. <tr>
  1005. <td class="mlabels-left">
  1006. <table class="memname">
  1007. <tr>
  1008. <td class="memname">void MutableCompoundShape::sRegister </td>
  1009. <td>(</td>
  1010. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1011. <td></td>
  1012. </tr>
  1013. </table>
  1014. </td>
  1015. <td class="mlabels-right">
  1016. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  1017. </tr>
  1018. </table>
  1019. </div><div class="memdoc">
  1020. </div>
  1021. </div>
  1022. <a id="a3fc3b41a717b952d323ea9062e917693" name="a3fc3b41a717b952d323ea9062e917693"></a>
  1023. <h2 class="memtitle"><span class="permalink"><a href="#a3fc3b41a717b952d323ea9062e917693">&#9670;&#160;</a></span>WalkSubShapes()</h2>
  1024. <div class="memitem">
  1025. <div class="memproto">
  1026. <div class="memtemplate">
  1027. template&lt;class Visitor &gt; </div>
  1028. <table class="mlabels">
  1029. <tr>
  1030. <td class="mlabels-left">
  1031. <table class="memname">
  1032. <tr>
  1033. <td class="memname">void MutableCompoundShape::WalkSubShapes </td>
  1034. <td>(</td>
  1035. <td class="paramtype">Visitor &amp;</td> <td class="paramname"><span class="paramname"><em>ioVisitor</em></span></td><td>)</td>
  1036. <td> const</td>
  1037. </tr>
  1038. </table>
  1039. </td>
  1040. <td class="mlabels-right">
  1041. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1042. </tr>
  1043. </table>
  1044. </div><div class="memdoc">
  1045. </div>
  1046. </div>
  1047. <hr/>The documentation for this class was generated from the following files:<ul>
  1048. <li>Jolt/Physics/Collision/Shape/<a class="el" href="_mutable_compound_shape_8h_source.html">MutableCompoundShape.h</a></li>
  1049. <li>Jolt/Physics/Collision/Shape/<a class="el" href="_mutable_compound_shape_8cpp.html">MutableCompoundShape.cpp</a></li>
  1050. </ul>
  1051. </div><!-- contents -->
  1052. </div><!-- doc-content -->
  1053. <!-- start footer part -->
  1054. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  1055. <ul>
  1056. <li class="navelem"><a class="el" href="class_mutable_compound_shape.html">MutableCompoundShape</a></li>
  1057. <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>
  1058. </ul>
  1059. </div>
  1060. </body>
  1061. </html>