class_body_manager.html 88 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424
  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: BodyManager 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_body_manager.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="#nested-classes">Classes</a> &#124;
  108. <a href="#pub-types">Public Types</a> &#124;
  109. <a href="#pub-methods">Public Member Functions</a> &#124;
  110. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  111. <a href="class_body_manager-members.html">List of all members</a> </div>
  112. <div class="headertitle"><div class="title">BodyManager Class Reference</div></div>
  113. </div><!--header-->
  114. <div class="contents">
  115. <p><code>#include &lt;<a class="el" href="_body_manager_8h_source.html">BodyManager.h</a>&gt;</code></p>
  116. <div class="dynheader">
  117. Inheritance diagram for BodyManager:</div>
  118. <div class="dyncontent">
  119. <div class="center">
  120. <img src="class_body_manager.png" usemap="#BodyManager_map" alt=""/>
  121. <map id="BodyManager_map" name="BodyManager_map">
  122. <area href="class_non_copyable.html" title="Class that makes another class non-copyable. Usage: Inherit from NonCopyable." alt="NonCopyable" shape="rect" coords="0,0,92,24"/>
  123. </map>
  124. </div></div>
  125. <table class="memberdecls">
  126. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
  127. Classes</h2></td></tr>
  128. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_body_manager_1_1_body_stats.html">BodyStats</a></td></tr>
  129. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper struct that counts the number of bodies of each type. <a href="struct_body_manager_1_1_body_stats.html#details">More...</a><br /></td></tr>
  130. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_body_manager_1_1_draw_settings.html">DrawSettings</a></td></tr>
  132. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. </table><table class="memberdecls">
  134. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
  135. Public Types</h2></td></tr>
  136. <tr class="memitem:ae1f52f80ea3133d1b767f007f83350e2" id="r_ae1f52f80ea3133d1b767f007f83350e2"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae1f52f80ea3133d1b767f007f83350e2">EShapeColor</a> { <br />
  137. &#160;&#160;<a class="el" href="#ae1f52f80ea3133d1b767f007f83350e2a99ee1c53265abeecfe720f4bc3fc44a6">InstanceColor</a>
  138. , <a class="el" href="#ae1f52f80ea3133d1b767f007f83350e2ae474501d8e6be0d0983214885896073a">ShapeTypeColor</a>
  139. , <a class="el" href="#ae1f52f80ea3133d1b767f007f83350e2ac415a727aec99b44707c3555b360c85b">MotionTypeColor</a>
  140. , <a class="el" href="#ae1f52f80ea3133d1b767f007f83350e2ac00cf17870a7f30bd11fb50ca2b66709">SleepColor</a>
  141. , <br />
  142. &#160;&#160;<a class="el" href="#ae1f52f80ea3133d1b767f007f83350e2a3396ca60625ec56b88b34019e16d5121">IslandColor</a>
  143. , <a class="el" href="#ae1f52f80ea3133d1b767f007f83350e2ae4a9ebce3bde9cd56c2cccdf58d392a0">MaterialColor</a>
  144. <br />
  145. }</td></tr>
  146. <tr class="separator:ae1f52f80ea3133d1b767f007f83350e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:aee0d75a5176680f7c00728fa33cbe9e2" id="r_aee0d75a5176680f7c00728fa33cbe9e2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a> = <a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a></td></tr>
  148. <tr class="memdesc:aee0d75a5176680f7c00728fa33cbe9e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bodies are protected using an array of mutexes (so a fixed number, not 1 per body). Each bit in this mask indicates a locked mutex. <br /></td></tr>
  149. <tr class="separator:aee0d75a5176680f7c00728fa33cbe9e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. </table><table class="memberdecls">
  151. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  152. Public Member Functions</h2></td></tr>
  153. <tr class="memitem:afad1dc5c74c430f9210a84e553d259ee" id="r_afad1dc5c74c430f9210a84e553d259ee"><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="#afad1dc5c74c430f9210a84e553d259ee">~BodyManager</a> ()</td></tr>
  154. <tr class="memdesc:afad1dc5c74c430f9210a84e553d259ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
  155. <tr class="separator:afad1dc5c74c430f9210a84e553d259ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <tr class="memitem:a2d0f5cce4bc65b5dd60e79edc37fd0d9" id="r_a2d0f5cce4bc65b5dd60e79edc37fd0d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2d0f5cce4bc65b5dd60e79edc37fd0d9">Init</a> (<a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inMaxBodies, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inNumBodyMutexes, const <a class="el" href="class_broad_phase_layer_interface.html">BroadPhaseLayerInterface</a> &amp;inLayerInterface)</td></tr>
  157. <tr class="memdesc:a2d0f5cce4bc65b5dd60e79edc37fd0d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the manager. <br /></td></tr>
  158. <tr class="separator:a2d0f5cce4bc65b5dd60e79edc37fd0d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr class="memitem:a28e008be233691bbccef7d17e20d113d" id="r_a28e008be233691bbccef7d17e20d113d"><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="#a28e008be233691bbccef7d17e20d113d">GetNumBodies</a> () const</td></tr>
  160. <tr class="memdesc:a28e008be233691bbccef7d17e20d113d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the current amount of bodies that are in the body manager. <br /></td></tr>
  161. <tr class="separator:a28e008be233691bbccef7d17e20d113d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:ad54b2a378ee3653de2130da1ab3f69a5" id="r_ad54b2a378ee3653de2130da1ab3f69a5"><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="#ad54b2a378ee3653de2130da1ab3f69a5">GetMaxBodies</a> () const</td></tr>
  163. <tr class="memdesc:ad54b2a378ee3653de2130da1ab3f69a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the max bodies that we can support. <br /></td></tr>
  164. <tr class="separator:ad54b2a378ee3653de2130da1ab3f69a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  165. <tr class="memitem:a63c55f1d5d3ed30c4aa6a19ad14713ac" id="r_a63c55f1d5d3ed30c4aa6a19ad14713ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_body_manager_1_1_body_stats.html">BodyStats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a63c55f1d5d3ed30c4aa6a19ad14713ac">GetBodyStats</a> () const</td></tr>
  166. <tr class="memdesc:a63c55f1d5d3ed30c4aa6a19ad14713ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get stats about the bodies in the body manager (slow, iterates through all bodies) <br /></td></tr>
  167. <tr class="separator:a63c55f1d5d3ed30c4aa6a19ad14713ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:ab90b6879d9b21e0301102dd1f5791cb2" id="r_ab90b6879d9b21e0301102dd1f5791cb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_body.html">Body</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab90b6879d9b21e0301102dd1f5791cb2">AllocateBody</a> (const <a class="el" href="class_body_creation_settings.html">BodyCreationSettings</a> &amp;inBodyCreationSettings) const</td></tr>
  169. <tr class="memdesc:ab90b6879d9b21e0301102dd1f5791cb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a body using creation settings. The returned body will not be part of the body manager yet. <br /></td></tr>
  170. <tr class="separator:ab90b6879d9b21e0301102dd1f5791cb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171. <tr class="memitem:a003634616068c3e51029c38e77de7fec" id="r_a003634616068c3e51029c38e77de7fec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_body.html">Body</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a003634616068c3e51029c38e77de7fec">AllocateSoftBody</a> (const <a class="el" href="class_soft_body_creation_settings.html">SoftBodyCreationSettings</a> &amp;inSoftBodyCreationSettings) const</td></tr>
  172. <tr class="memdesc:a003634616068c3e51029c38e77de7fec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a soft body using creation settings. The returned body will not be part of the body manager yet. <br /></td></tr>
  173. <tr class="separator:a003634616068c3e51029c38e77de7fec"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <tr class="memitem:ac9b3fea305ee74fb2cb1d70d4773aee0" id="r_ac9b3fea305ee74fb2cb1d70d4773aee0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac9b3fea305ee74fb2cb1d70d4773aee0">FreeBody</a> (<a class="el" href="class_body.html">Body</a> *inBody) const</td></tr>
  175. <tr class="memdesc:ac9b3fea305ee74fb2cb1d70d4773aee0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a body that has not been added to the body manager yet (if it has, use DestroyBodies). <br /></td></tr>
  176. <tr class="separator:ac9b3fea305ee74fb2cb1d70d4773aee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  177. <tr class="memitem:aa7e0cc82ef6c860655af523205fd9cb6" id="r_aa7e0cc82ef6c860655af523205fd9cb6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa7e0cc82ef6c860655af523205fd9cb6">AddBody</a> (<a class="el" href="class_body.html">Body</a> *ioBody)</td></tr>
  178. <tr class="memdesc:aa7e0cc82ef6c860655af523205fd9cb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a body to the body manager, assigning it the next available ID. Returns false if no more IDs are available. <br /></td></tr>
  179. <tr class="separator:aa7e0cc82ef6c860655af523205fd9cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <tr class="memitem:ad8c3c4c7e6257244b81cfa8bc590149b" id="r_ad8c3c4c7e6257244b81cfa8bc590149b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad8c3c4c7e6257244b81cfa8bc590149b">AddBodyWithCustomID</a> (<a class="el" href="class_body.html">Body</a> *ioBody, const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;inBodyID)</td></tr>
  181. <tr class="memdesc:ad8c3c4c7e6257244b81cfa8bc590149b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a body to the body manager, assigning it a custom ID. Returns false if the ID is not valid. <br /></td></tr>
  182. <tr class="separator:ad8c3c4c7e6257244b81cfa8bc590149b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  183. <tr class="memitem:a2a65ea34748b9f3f354d4325f905ab1c" id="r_a2a65ea34748b9f3f354d4325f905ab1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2a65ea34748b9f3f354d4325f905ab1c">RemoveBodies</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> *inBodyIDs, int inNumber, <a class="el" href="class_body.html">Body</a> **outBodies)</td></tr>
  184. <tr class="memdesc:a2a65ea34748b9f3f354d4325f905ab1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a list of bodies from the body manager. <br /></td></tr>
  185. <tr class="separator:a2a65ea34748b9f3f354d4325f905ab1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186. <tr class="memitem:a5c0cc30ec7f2c4a5bcd1119906a6632e" id="r_a5c0cc30ec7f2c4a5bcd1119906a6632e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5c0cc30ec7f2c4a5bcd1119906a6632e">DestroyBodies</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> *inBodyIDs, int inNumber)</td></tr>
  187. <tr class="memdesc:a5c0cc30ec7f2c4a5bcd1119906a6632e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a set of bodies from the body manager and frees them. <br /></td></tr>
  188. <tr class="separator:a5c0cc30ec7f2c4a5bcd1119906a6632e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  189. <tr class="memitem:aecdc4718d0c9ccf33f9eaf2a42c6ab79" id="r_aecdc4718d0c9ccf33f9eaf2a42c6ab79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aecdc4718d0c9ccf33f9eaf2a42c6ab79">ActivateBodies</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> *inBodyIDs, int inNumber)</td></tr>
  190. <tr class="separator:aecdc4718d0c9ccf33f9eaf2a42c6ab79"><td class="memSeparator" colspan="2">&#160;</td></tr>
  191. <tr class="memitem:ac8e13efcbe3e2fab505e2c9047f9d2ef" id="r_ac8e13efcbe3e2fab505e2c9047f9d2ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac8e13efcbe3e2fab505e2c9047f9d2ef">DeactivateBodies</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> *inBodyIDs, int inNumber)</td></tr>
  192. <tr class="separator:ac8e13efcbe3e2fab505e2c9047f9d2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
  193. <tr class="memitem:af449412eb723ffe93a193d9b9aa86f3b" id="r_af449412eb723ffe93a193d9b9aa86f3b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af449412eb723ffe93a193d9b9aa86f3b">SetMotionQuality</a> (<a class="el" href="class_body.html">Body</a> &amp;ioBody, <a class="el" href="_motion_quality_8h.html#af43db3453103c2e62526f54dd8542d3a">EMotionQuality</a> inMotionQuality)</td></tr>
  194. <tr class="memdesc:af449412eb723ffe93a193d9b9aa86f3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the motion quality for a body. <br /></td></tr>
  195. <tr class="separator:af449412eb723ffe93a193d9b9aa86f3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:aae54df1753149fbac33cb8ea6f930da7" id="r_aae54df1753149fbac33cb8ea6f930da7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aae54df1753149fbac33cb8ea6f930da7">GetActiveBodies</a> (<a class="el" href="_body_type_8h.html#ab494e27db6c263f9e31556ad388eb666">EBodyType</a> inType, <a class="el" href="_body_manager_8h.html#afc1c8d959352d66db407f29003a66bb8">BodyIDVector</a> &amp;outBodyIDs) const</td></tr>
  197. <tr class="memdesc:aae54df1753149fbac33cb8ea6f930da7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get copy of the list of active bodies under protection of a lock. <br /></td></tr>
  198. <tr class="separator:aae54df1753149fbac33cb8ea6f930da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  199. <tr class="memitem:ac646f95e699a7d4525d65407ee3bea69" id="r_ac646f95e699a7d4525d65407ee3bea69"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_body_i_d.html">BodyID</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac646f95e699a7d4525d65407ee3bea69">GetActiveBodiesUnsafe</a> (<a class="el" href="_body_type_8h.html#ab494e27db6c263f9e31556ad388eb666">EBodyType</a> inType) const</td></tr>
  200. <tr class="memdesc:ac646f95e699a7d4525d65407ee3bea69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the list of active bodies. Note: Not thread safe. The active bodies list can change at any moment. <br /></td></tr>
  201. <tr class="separator:ac646f95e699a7d4525d65407ee3bea69"><td class="memSeparator" colspan="2">&#160;</td></tr>
  202. <tr class="memitem:afc847edf3623bce165d4c872f0dc4d68" id="r_afc847edf3623bce165d4c872f0dc4d68"><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="#afc847edf3623bce165d4c872f0dc4d68">GetNumActiveBodies</a> (<a class="el" href="_body_type_8h.html#ab494e27db6c263f9e31556ad388eb666">EBodyType</a> inType) const</td></tr>
  203. <tr class="memdesc:afc847edf3623bce165d4c872f0dc4d68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of active bodies. <br /></td></tr>
  204. <tr class="separator:afc847edf3623bce165d4c872f0dc4d68"><td class="memSeparator" colspan="2">&#160;</td></tr>
  205. <tr class="memitem:a462f40b51e2bbdae500c62584d0376be" id="r_a462f40b51e2bbdae500c62584d0376be"><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="#a462f40b51e2bbdae500c62584d0376be">GetNumActiveCCDBodies</a> () const</td></tr>
  206. <tr class="memdesc:a462f40b51e2bbdae500c62584d0376be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of active bodies that are using continuous collision detection. <br /></td></tr>
  207. <tr class="separator:a462f40b51e2bbdae500c62584d0376be"><td class="memSeparator" colspan="2">&#160;</td></tr>
  208. <tr class="memitem:a5f4202f0ef087177b642a93c13d82d9a" id="r_a5f4202f0ef087177b642a93c13d82d9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5f4202f0ef087177b642a93c13d82d9a">SetBodyActivationListener</a> (<a class="el" href="class_body_activation_listener.html">BodyActivationListener</a> *inListener)</td></tr>
  209. <tr class="memdesc:a5f4202f0ef087177b642a93c13d82d9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Listener that is notified whenever a body is activated/deactivated. <br /></td></tr>
  210. <tr class="separator:a5f4202f0ef087177b642a93c13d82d9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  211. <tr class="memitem:a3bb9c3e62332a39fd9ac1eac4c12ca52" id="r_a3bb9c3e62332a39fd9ac1eac4c12ca52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_body_activation_listener.html">BodyActivationListener</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3bb9c3e62332a39fd9ac1eac4c12ca52">GetBodyActivationListener</a> () const</td></tr>
  212. <tr class="separator:a3bb9c3e62332a39fd9ac1eac4c12ca52"><td class="memSeparator" colspan="2">&#160;</td></tr>
  213. <tr class="memitem:ac6c6a208195a666e62fc3bd9c4456bfa" id="r_ac6c6a208195a666e62fc3bd9c4456bfa"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="_body_manager_8h.html#ae4e246af993ca15dd65cd797e6bf7640">BodyVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac6c6a208195a666e62fc3bd9c4456bfa">GetBodies</a> () const</td></tr>
  214. <tr class="memdesc:ac6c6a208195a666e62fc3bd9c4456bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all bodies. Note that this can contain invalid body pointers, call sIsValidBodyPointer to check. <br /></td></tr>
  215. <tr class="separator:ac6c6a208195a666e62fc3bd9c4456bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  216. <tr class="memitem:ace4bb400f2a6b4f17e04aa10134dee4f" id="r_ace4bb400f2a6b4f17e04aa10134dee4f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_body_manager_8h.html#ae4e246af993ca15dd65cd797e6bf7640">BodyVector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ace4bb400f2a6b4f17e04aa10134dee4f">GetBodies</a> ()</td></tr>
  217. <tr class="memdesc:ace4bb400f2a6b4f17e04aa10134dee4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all bodies. Note that this can contain invalid body pointers, call sIsValidBodyPointer to check. <br /></td></tr>
  218. <tr class="separator:ace4bb400f2a6b4f17e04aa10134dee4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  219. <tr class="memitem:aa65000b18f18a1d02bf432446dff7c05" id="r_aa65000b18f18a1d02bf432446dff7c05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa65000b18f18a1d02bf432446dff7c05">GetBodyIDs</a> (<a class="el" href="_body_manager_8h.html#afc1c8d959352d66db407f29003a66bb8">BodyIDVector</a> &amp;outBodies) const</td></tr>
  220. <tr class="memdesc:aa65000b18f18a1d02bf432446dff7c05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all body IDs under the protection of a lock. <br /></td></tr>
  221. <tr class="separator:aa65000b18f18a1d02bf432446dff7c05"><td class="memSeparator" colspan="2">&#160;</td></tr>
  222. <tr class="memitem:ae89bc88048a56cbf21d70e78ec142a18" id="r_ae89bc88048a56cbf21d70e78ec142a18"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_body.html">Body</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae89bc88048a56cbf21d70e78ec142a18">GetBody</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;inID) const</td></tr>
  223. <tr class="memdesc:ae89bc88048a56cbf21d70e78ec142a18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a body (not protected by lock) <br /></td></tr>
  224. <tr class="separator:ae89bc88048a56cbf21d70e78ec142a18"><td class="memSeparator" colspan="2">&#160;</td></tr>
  225. <tr class="memitem:a2ac7db2095cb425b04bdad508e2acc4f" id="r_a2ac7db2095cb425b04bdad508e2acc4f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_body.html">Body</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2ac7db2095cb425b04bdad508e2acc4f">GetBody</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;inID)</td></tr>
  226. <tr class="memdesc:a2ac7db2095cb425b04bdad508e2acc4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a body (not protected by lock) <br /></td></tr>
  227. <tr class="separator:a2ac7db2095cb425b04bdad508e2acc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  228. <tr class="memitem:ac441f5d6015c113423972740f3e2815f" id="r_ac441f5d6015c113423972740f3e2815f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_body.html">Body</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac441f5d6015c113423972740f3e2815f">TryGetBody</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;inID) const</td></tr>
  229. <tr class="memdesc:ac441f5d6015c113423972740f3e2815f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a body, will return a nullptr if the body ID is no longer valid (not protected by lock) <br /></td></tr>
  230. <tr class="separator:ac441f5d6015c113423972740f3e2815f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  231. <tr class="memitem:a57535e1d1645cc00b57fb7e8ecccc259" id="r_a57535e1d1645cc00b57fb7e8ecccc259"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_body.html">Body</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a57535e1d1645cc00b57fb7e8ecccc259">TryGetBody</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;inID)</td></tr>
  232. <tr class="memdesc:a57535e1d1645cc00b57fb7e8ecccc259"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a body, will return a nullptr if the body ID is no longer valid (not protected by lock) <br /></td></tr>
  233. <tr class="separator:a57535e1d1645cc00b57fb7e8ecccc259"><td class="memSeparator" colspan="2">&#160;</td></tr>
  234. <tr class="memitem:a608703b173fa10233dfd617150a2db67" id="r_a608703b173fa10233dfd617150a2db67"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shared_mutex.html">SharedMutex</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a608703b173fa10233dfd617150a2db67">GetMutexForBody</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;inID) const</td></tr>
  235. <tr class="memdesc:a608703b173fa10233dfd617150a2db67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the mutex for a single body. <br /></td></tr>
  236. <tr class="separator:a608703b173fa10233dfd617150a2db67"><td class="memSeparator" colspan="2">&#160;</td></tr>
  237. <tr class="memitem:a425eaf59b68a237d6821267ed1474f35" id="r_a425eaf59b68a237d6821267ed1474f35"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a425eaf59b68a237d6821267ed1474f35">LockAllBodies</a> () const</td></tr>
  238. <tr class="memdesc:a425eaf59b68a237d6821267ed1474f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock all bodies. This should only be done during <a class="el" href="class_physics_system.html#a4cdc76b2486dfaecfc9319d040e5e5f3">PhysicsSystem::Update()</a>. <br /></td></tr>
  239. <tr class="separator:a425eaf59b68a237d6821267ed1474f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
  240. <tr class="memitem:a5bfccfc12e83e13bc8ed0ceacff6ccc3" id="r_a5bfccfc12e83e13bc8ed0ceacff6ccc3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5bfccfc12e83e13bc8ed0ceacff6ccc3">UnlockAllBodies</a> () const</td></tr>
  241. <tr class="memdesc:a5bfccfc12e83e13bc8ed0ceacff6ccc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock all bodies. This should only be done during <a class="el" href="class_physics_system.html#a4cdc76b2486dfaecfc9319d040e5e5f3">PhysicsSystem::Update()</a>. <br /></td></tr>
  242. <tr class="separator:a5bfccfc12e83e13bc8ed0ceacff6ccc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  243. <tr class="memitem:ae42a0183320aaebe459af6b0cc937daf" id="r_ae42a0183320aaebe459af6b0cc937daf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae42a0183320aaebe459af6b0cc937daf">SetBodyObjectLayerInternal</a> (<a class="el" href="class_body.html">Body</a> &amp;ioBody, <a class="el" href="_object_layer_8h.html#a960eb396e2803ddad87bf25e0dcb4470">ObjectLayer</a> inLayer) const</td></tr>
  244. <tr class="memdesc:ae42a0183320aaebe459af6b0cc937daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to update body's layer (should only be called by the <a class="el" href="class_body_interface.html">BodyInterface</a> since it also requires updating the broadphase) <br /></td></tr>
  245. <tr class="separator:ae42a0183320aaebe459af6b0cc937daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  246. <tr class="memitem:a2d9975b3a1fb311c3956820eae65b7ce" id="r_a2d9975b3a1fb311c3956820eae65b7ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2d9975b3a1fb311c3956820eae65b7ce">InvalidateContactCacheForBody</a> (<a class="el" href="class_body.html">Body</a> &amp;ioBody)</td></tr>
  247. <tr class="memdesc:a2d9975b3a1fb311c3956820eae65b7ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Body::EFlags::InvalidateContactCache flag for the specified body. This means that the collision cache is invalid for any body pair involving that body until the next physics step. <br /></td></tr>
  248. <tr class="separator:a2d9975b3a1fb311c3956820eae65b7ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
  249. <tr class="memitem:a4e5f1bfab762cd561b21320d97ef0594" id="r_a4e5f1bfab762cd561b21320d97ef0594"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4e5f1bfab762cd561b21320d97ef0594">ValidateContactCacheForAllBodies</a> ()</td></tr>
  250. <tr class="memdesc:a4e5f1bfab762cd561b21320d97ef0594"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the Body::EFlags::InvalidateContactCache flag for all bodies. All contact pairs in the contact cache will now by valid again. <br /></td></tr>
  251. <tr class="separator:a4e5f1bfab762cd561b21320d97ef0594"><td class="memSeparator" colspan="2">&#160;</td></tr>
  252. <tr class="memitem:a5fcbaca9d9a52129a56451ce519e9598" id="r_a5fcbaca9d9a52129a56451ce519e9598"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5fcbaca9d9a52129a56451ce519e9598">SaveState</a> (<a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;inStream, const <a class="el" href="class_state_recorder_filter.html">StateRecorderFilter</a> *inFilter) const</td></tr>
  253. <tr class="memdesc:a5fcbaca9d9a52129a56451ce519e9598"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saving state for replay. <br /></td></tr>
  254. <tr class="separator:a5fcbaca9d9a52129a56451ce519e9598"><td class="memSeparator" colspan="2">&#160;</td></tr>
  255. <tr class="memitem:af64512a91a78f48a75c5cead5552e281" id="r_af64512a91a78f48a75c5cead5552e281"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af64512a91a78f48a75c5cead5552e281">RestoreState</a> (<a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;inStream)</td></tr>
  256. <tr class="memdesc:af64512a91a78f48a75c5cead5552e281"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restoring state for replay. Returns false if failed. <br /></td></tr>
  257. <tr class="separator:af64512a91a78f48a75c5cead5552e281"><td class="memSeparator" colspan="2">&#160;</td></tr>
  258. <tr class="memitem:ab1eb2a2bbf12bbe839475093826b6ceb" id="r_ab1eb2a2bbf12bbe839475093826b6ceb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab1eb2a2bbf12bbe839475093826b6ceb">SaveBodyState</a> (const <a class="el" href="class_body.html">Body</a> &amp;inBody, <a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;inStream) const</td></tr>
  259. <tr class="memdesc:ab1eb2a2bbf12bbe839475093826b6ceb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the state of a single body for replay. <br /></td></tr>
  260. <tr class="separator:ab1eb2a2bbf12bbe839475093826b6ceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  261. <tr class="memitem:ad1de147dfb454f5963629a98489c1159" id="r_ad1de147dfb454f5963629a98489c1159"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad1de147dfb454f5963629a98489c1159">RestoreBodyState</a> (<a class="el" href="class_body.html">Body</a> &amp;inBody, <a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;inStream)</td></tr>
  262. <tr class="memdesc:ad1de147dfb454f5963629a98489c1159"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the state of a single body for replay. <br /></td></tr>
  263. <tr class="separator:ad1de147dfb454f5963629a98489c1159"><td class="memSeparator" colspan="2">&#160;</td></tr>
  264. <tr class="memitem:a877463f0189e8e131edec5d83413726b" id="r_a877463f0189e8e131edec5d83413726b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a877463f0189e8e131edec5d83413726b">Draw</a> (const <a class="el" href="struct_body_manager_1_1_draw_settings.html">DrawSettings</a> &amp;inSettings, const <a class="el" href="struct_physics_settings.html">PhysicsSettings</a> &amp;inPhysicsSettings, <a class="el" href="class_debug_renderer.html">DebugRenderer</a> *inRenderer, const <a class="el" href="class_body_draw_filter.html">BodyDrawFilter</a> *inBodyFilter=nullptr)</td></tr>
  265. <tr class="memdesc:a877463f0189e8e131edec5d83413726b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw the state of the bodies (debugging purposes) <br /></td></tr>
  266. <tr class="separator:a877463f0189e8e131edec5d83413726b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  267. <tr><td colspan="2"><div class="groupHeader">Batch body mutex access (do not use directly)</div></td></tr>
  268. <tr class="memitem:a4e54107c92d7ac62098e267ab8d16eb2" id="r_a4e54107c92d7ac62098e267ab8d16eb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4e54107c92d7ac62098e267ab8d16eb2">GetAllBodiesMutexMask</a> () const</td></tr>
  269. <tr class="separator:a4e54107c92d7ac62098e267ab8d16eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  270. <tr class="memitem:a447a132451ef5c4def8e0c51450b2701" id="r_a447a132451ef5c4def8e0c51450b2701"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a447a132451ef5c4def8e0c51450b2701">GetMutexMask</a> (const <a class="el" href="class_body_i_d.html">BodyID</a> *inBodies, int inNumber) const</td></tr>
  271. <tr class="separator:a447a132451ef5c4def8e0c51450b2701"><td class="memSeparator" colspan="2">&#160;</td></tr>
  272. <tr class="memitem:ab9fe4438ea3c96fa4b2cbc724f425024" id="r_ab9fe4438ea3c96fa4b2cbc724f425024"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab9fe4438ea3c96fa4b2cbc724f425024">LockRead</a> (<a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a> inMutexMask) const</td></tr>
  273. <tr class="separator:ab9fe4438ea3c96fa4b2cbc724f425024"><td class="memSeparator" colspan="2">&#160;</td></tr>
  274. <tr class="memitem:a3cfb772a46e7495234f6f14bff09ba99" id="r_a3cfb772a46e7495234f6f14bff09ba99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3cfb772a46e7495234f6f14bff09ba99">UnlockRead</a> (<a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a> inMutexMask) const</td></tr>
  275. <tr class="separator:a3cfb772a46e7495234f6f14bff09ba99"><td class="memSeparator" colspan="2">&#160;</td></tr>
  276. <tr class="memitem:a21232e25b634203c299d6192180b6fe6" id="r_a21232e25b634203c299d6192180b6fe6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a21232e25b634203c299d6192180b6fe6">LockWrite</a> (<a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a> inMutexMask) const</td></tr>
  277. <tr class="separator:a21232e25b634203c299d6192180b6fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  278. <tr class="memitem:a27ee56a1128b6d9df49d56ea8308d95b" id="r_a27ee56a1128b6d9df49d56ea8308d95b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a27ee56a1128b6d9df49d56ea8308d95b">UnlockWrite</a> (<a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a> inMutexMask) const</td></tr>
  279. <tr class="separator:a27ee56a1128b6d9df49d56ea8308d95b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  280. <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>
  281. <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>
  282. <tr class="separator:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  283. <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>
  284. <tr class="separator:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  285. <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>
  286. <tr class="separator:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  287. </table><table class="memberdecls">
  288. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  289. Static Public Member Functions</h2></td></tr>
  290. <tr class="memitem:a2a95afcef6b2166321d1ba21dce19158" id="r_a2a95afcef6b2166321d1ba21dce19158"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2a95afcef6b2166321d1ba21dce19158">sIsValidBodyPointer</a> (const <a class="el" href="class_body.html">Body</a> *inBody)</td></tr>
  291. <tr class="memdesc:a2a95afcef6b2166321d1ba21dce19158"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if this is a valid body pointer. When a body is freed the memory that the pointer occupies is reused to store a freelist. <br /></td></tr>
  292. <tr class="separator:a2a95afcef6b2166321d1ba21dce19158"><td class="memSeparator" colspan="2">&#160;</td></tr>
  293. </table>
  294. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  295. <div class="textblock"><p>Class that contains all bodies</p>
  296. <p>WARNING: This class is an internal part of <a class="el" href="class_physics_system.html">PhysicsSystem</a>, it has no functions that can be called by users of the library. Its functionality is exposed through <a class="el" href="class_physics_system.html">PhysicsSystem</a>, <a class="el" href="class_body_interface.html">BodyInterface</a>, <a class="el" href="class_body_lock_read.html">BodyLockRead</a> and <a class="el" href="class_body_lock_write.html" title="Specialization that locks a body for writing to.">BodyLockWrite</a>. </p>
  297. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  298. <a id="aee0d75a5176680f7c00728fa33cbe9e2" name="aee0d75a5176680f7c00728fa33cbe9e2"></a>
  299. <h2 class="memtitle"><span class="permalink"><a href="#aee0d75a5176680f7c00728fa33cbe9e2">&#9670;&#160;</a></span>MutexMask</h2>
  300. <div class="memitem">
  301. <div class="memproto">
  302. <table class="memname">
  303. <tr>
  304. <td class="memname">using <a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">BodyManager::MutexMask</a> = <a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a></td>
  305. </tr>
  306. </table>
  307. </div><div class="memdoc">
  308. <p>Bodies are protected using an array of mutexes (so a fixed number, not 1 per body). Each bit in this mask indicates a locked mutex. </p>
  309. </div>
  310. </div>
  311. <h2 class="groupheader">Member Enumeration Documentation</h2>
  312. <a id="ae1f52f80ea3133d1b767f007f83350e2" name="ae1f52f80ea3133d1b767f007f83350e2"></a>
  313. <h2 class="memtitle"><span class="permalink"><a href="#ae1f52f80ea3133d1b767f007f83350e2">&#9670;&#160;</a></span>EShapeColor</h2>
  314. <div class="memitem">
  315. <div class="memproto">
  316. <table class="mlabels">
  317. <tr>
  318. <td class="mlabels-left">
  319. <table class="memname">
  320. <tr>
  321. <td class="memname">enum class <a class="el" href="#ae1f52f80ea3133d1b767f007f83350e2">BodyManager::EShapeColor</a></td>
  322. </tr>
  323. </table>
  324. </td>
  325. <td class="mlabels-right">
  326. <span class="mlabels"><span class="mlabel">strong</span></span> </td>
  327. </tr>
  328. </table>
  329. </div><div class="memdoc">
  330. <table class="fieldtable">
  331. <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae1f52f80ea3133d1b767f007f83350e2a99ee1c53265abeecfe720f4bc3fc44a6" name="ae1f52f80ea3133d1b767f007f83350e2a99ee1c53265abeecfe720f4bc3fc44a6"></a>InstanceColor&#160;</td><td class="fielddoc"><p>Random color per instance. </p>
  332. </td></tr>
  333. <tr><td class="fieldname"><a id="ae1f52f80ea3133d1b767f007f83350e2ae474501d8e6be0d0983214885896073a" name="ae1f52f80ea3133d1b767f007f83350e2ae474501d8e6be0d0983214885896073a"></a>ShapeTypeColor&#160;</td><td class="fielddoc"><p>Convex = green, scaled = yellow, compound = orange, mesh = red. </p>
  334. </td></tr>
  335. <tr><td class="fieldname"><a id="ae1f52f80ea3133d1b767f007f83350e2ac415a727aec99b44707c3555b360c85b" name="ae1f52f80ea3133d1b767f007f83350e2ac415a727aec99b44707c3555b360c85b"></a>MotionTypeColor&#160;</td><td class="fielddoc"><p>Static = grey, keyframed = green, dynamic = random color per instance. </p>
  336. </td></tr>
  337. <tr><td class="fieldname"><a id="ae1f52f80ea3133d1b767f007f83350e2ac00cf17870a7f30bd11fb50ca2b66709" name="ae1f52f80ea3133d1b767f007f83350e2ac00cf17870a7f30bd11fb50ca2b66709"></a>SleepColor&#160;</td><td class="fielddoc"><p>Static = grey, keyframed = green, dynamic = yellow, sleeping = red. </p>
  338. </td></tr>
  339. <tr><td class="fieldname"><a id="ae1f52f80ea3133d1b767f007f83350e2a3396ca60625ec56b88b34019e16d5121" name="ae1f52f80ea3133d1b767f007f83350e2a3396ca60625ec56b88b34019e16d5121"></a>IslandColor&#160;</td><td class="fielddoc"><p>Static = grey, active = random color per island, sleeping = light grey. </p>
  340. </td></tr>
  341. <tr><td class="fieldname"><a id="ae1f52f80ea3133d1b767f007f83350e2ae4a9ebce3bde9cd56c2cccdf58d392a0" name="ae1f52f80ea3133d1b767f007f83350e2ae4a9ebce3bde9cd56c2cccdf58d392a0"></a>MaterialColor&#160;</td><td class="fielddoc"><p><a class="el" href="class_color.html" title="Class that holds an RGBA color with 8-bits per component.">Color</a> as defined by the <a class="el" href="class_physics_material.html">PhysicsMaterial</a> of the shape. </p>
  342. </td></tr>
  343. </table>
  344. </div>
  345. </div>
  346. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  347. <a id="afad1dc5c74c430f9210a84e553d259ee" name="afad1dc5c74c430f9210a84e553d259ee"></a>
  348. <h2 class="memtitle"><span class="permalink"><a href="#afad1dc5c74c430f9210a84e553d259ee">&#9670;&#160;</a></span>~BodyManager()</h2>
  349. <div class="memitem">
  350. <div class="memproto">
  351. <table class="memname">
  352. <tr>
  353. <td class="memname">BodyManager::~BodyManager </td>
  354. <td>(</td>
  355. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  356. <td></td>
  357. </tr>
  358. </table>
  359. </div><div class="memdoc">
  360. <p>Destructor. </p>
  361. </div>
  362. </div>
  363. <h2 class="groupheader">Member Function Documentation</h2>
  364. <a id="aecdc4718d0c9ccf33f9eaf2a42c6ab79" name="aecdc4718d0c9ccf33f9eaf2a42c6ab79"></a>
  365. <h2 class="memtitle"><span class="permalink"><a href="#aecdc4718d0c9ccf33f9eaf2a42c6ab79">&#9670;&#160;</a></span>ActivateBodies()</h2>
  366. <div class="memitem">
  367. <div class="memproto">
  368. <table class="memname">
  369. <tr>
  370. <td class="memname">void BodyManager::ActivateBodies </td>
  371. <td>(</td>
  372. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>inBodyIDs</em></span>, </td>
  373. </tr>
  374. <tr>
  375. <td class="paramkey"></td>
  376. <td></td>
  377. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>&#160;)</td>
  378. </tr>
  379. </table>
  380. </div><div class="memdoc">
  381. <p>Activate a list of bodies. This function should only be called when an exclusive lock for the bodies are held. </p>
  382. </div>
  383. </div>
  384. <a id="aa7e0cc82ef6c860655af523205fd9cb6" name="aa7e0cc82ef6c860655af523205fd9cb6"></a>
  385. <h2 class="memtitle"><span class="permalink"><a href="#aa7e0cc82ef6c860655af523205fd9cb6">&#9670;&#160;</a></span>AddBody()</h2>
  386. <div class="memitem">
  387. <div class="memproto">
  388. <table class="memname">
  389. <tr>
  390. <td class="memname">bool BodyManager::AddBody </td>
  391. <td>(</td>
  392. <td class="paramtype"><a class="el" href="class_body.html">Body</a> *</td> <td class="paramname"><span class="paramname"><em>ioBody</em></span></td><td>)</td>
  393. <td></td>
  394. </tr>
  395. </table>
  396. </div><div class="memdoc">
  397. <p>Add a body to the body manager, assigning it the next available ID. Returns false if no more IDs are available. </p>
  398. </div>
  399. </div>
  400. <a id="ad8c3c4c7e6257244b81cfa8bc590149b" name="ad8c3c4c7e6257244b81cfa8bc590149b"></a>
  401. <h2 class="memtitle"><span class="permalink"><a href="#ad8c3c4c7e6257244b81cfa8bc590149b">&#9670;&#160;</a></span>AddBodyWithCustomID()</h2>
  402. <div class="memitem">
  403. <div class="memproto">
  404. <table class="memname">
  405. <tr>
  406. <td class="memname">bool BodyManager::AddBodyWithCustomID </td>
  407. <td>(</td>
  408. <td class="paramtype"><a class="el" href="class_body.html">Body</a> *</td> <td class="paramname"><span class="paramname"><em>ioBody</em></span>, </td>
  409. </tr>
  410. <tr>
  411. <td class="paramkey"></td>
  412. <td></td>
  413. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBodyID</em></span>&#160;)</td>
  414. </tr>
  415. </table>
  416. </div><div class="memdoc">
  417. <p>Add a body to the body manager, assigning it a custom ID. Returns false if the ID is not valid. </p>
  418. </div>
  419. </div>
  420. <a id="ab90b6879d9b21e0301102dd1f5791cb2" name="ab90b6879d9b21e0301102dd1f5791cb2"></a>
  421. <h2 class="memtitle"><span class="permalink"><a href="#ab90b6879d9b21e0301102dd1f5791cb2">&#9670;&#160;</a></span>AllocateBody()</h2>
  422. <div class="memitem">
  423. <div class="memproto">
  424. <table class="memname">
  425. <tr>
  426. <td class="memname"><a class="el" href="class_body.html">Body</a> * BodyManager::AllocateBody </td>
  427. <td>(</td>
  428. <td class="paramtype">const <a class="el" href="class_body_creation_settings.html">BodyCreationSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBodyCreationSettings</em></span></td><td>)</td>
  429. <td> const</td>
  430. </tr>
  431. </table>
  432. </div><div class="memdoc">
  433. <p>Create a body using creation settings. The returned body will not be part of the body manager yet. </p>
  434. </div>
  435. </div>
  436. <a id="a003634616068c3e51029c38e77de7fec" name="a003634616068c3e51029c38e77de7fec"></a>
  437. <h2 class="memtitle"><span class="permalink"><a href="#a003634616068c3e51029c38e77de7fec">&#9670;&#160;</a></span>AllocateSoftBody()</h2>
  438. <div class="memitem">
  439. <div class="memproto">
  440. <table class="memname">
  441. <tr>
  442. <td class="memname"><a class="el" href="class_body.html">Body</a> * BodyManager::AllocateSoftBody </td>
  443. <td>(</td>
  444. <td class="paramtype">const <a class="el" href="class_soft_body_creation_settings.html">SoftBodyCreationSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSoftBodyCreationSettings</em></span></td><td>)</td>
  445. <td> const</td>
  446. </tr>
  447. </table>
  448. </div><div class="memdoc">
  449. <p>Create a soft body using creation settings. The returned body will not be part of the body manager yet. </p>
  450. </div>
  451. </div>
  452. <a id="ac8e13efcbe3e2fab505e2c9047f9d2ef" name="ac8e13efcbe3e2fab505e2c9047f9d2ef"></a>
  453. <h2 class="memtitle"><span class="permalink"><a href="#ac8e13efcbe3e2fab505e2c9047f9d2ef">&#9670;&#160;</a></span>DeactivateBodies()</h2>
  454. <div class="memitem">
  455. <div class="memproto">
  456. <table class="memname">
  457. <tr>
  458. <td class="memname">void BodyManager::DeactivateBodies </td>
  459. <td>(</td>
  460. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>inBodyIDs</em></span>, </td>
  461. </tr>
  462. <tr>
  463. <td class="paramkey"></td>
  464. <td></td>
  465. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>&#160;)</td>
  466. </tr>
  467. </table>
  468. </div><div class="memdoc">
  469. <p>Deactivate a list of bodies. This function should only be called when an exclusive lock for the bodies are held. </p>
  470. </div>
  471. </div>
  472. <a id="a5c0cc30ec7f2c4a5bcd1119906a6632e" name="a5c0cc30ec7f2c4a5bcd1119906a6632e"></a>
  473. <h2 class="memtitle"><span class="permalink"><a href="#a5c0cc30ec7f2c4a5bcd1119906a6632e">&#9670;&#160;</a></span>DestroyBodies()</h2>
  474. <div class="memitem">
  475. <div class="memproto">
  476. <table class="memname">
  477. <tr>
  478. <td class="memname">void BodyManager::DestroyBodies </td>
  479. <td>(</td>
  480. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>inBodyIDs</em></span>, </td>
  481. </tr>
  482. <tr>
  483. <td class="paramkey"></td>
  484. <td></td>
  485. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>&#160;)</td>
  486. </tr>
  487. </table>
  488. </div><div class="memdoc">
  489. <p>Remove a set of bodies from the body manager and frees them. </p>
  490. </div>
  491. </div>
  492. <a id="a877463f0189e8e131edec5d83413726b" name="a877463f0189e8e131edec5d83413726b"></a>
  493. <h2 class="memtitle"><span class="permalink"><a href="#a877463f0189e8e131edec5d83413726b">&#9670;&#160;</a></span>Draw()</h2>
  494. <div class="memitem">
  495. <div class="memproto">
  496. <table class="memname">
  497. <tr>
  498. <td class="memname">void BodyManager::Draw </td>
  499. <td>(</td>
  500. <td class="paramtype">const <a class="el" href="struct_body_manager_1_1_draw_settings.html">DrawSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSettings</em></span>, </td>
  501. </tr>
  502. <tr>
  503. <td class="paramkey"></td>
  504. <td></td>
  505. <td class="paramtype">const <a class="el" href="struct_physics_settings.html">PhysicsSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inPhysicsSettings</em></span>, </td>
  506. </tr>
  507. <tr>
  508. <td class="paramkey"></td>
  509. <td></td>
  510. <td class="paramtype"><a class="el" href="class_debug_renderer.html">DebugRenderer</a> *</td> <td class="paramname"><span class="paramname"><em>inRenderer</em></span>, </td>
  511. </tr>
  512. <tr>
  513. <td class="paramkey"></td>
  514. <td></td>
  515. <td class="paramtype">const <a class="el" href="class_body_draw_filter.html">BodyDrawFilter</a> *</td> <td class="paramname"><span class="paramname"><em>inBodyFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">nullptr</span>&#160;)</td>
  516. </tr>
  517. </table>
  518. </div><div class="memdoc">
  519. <p>Draw the state of the bodies (debugging purposes) </p>
  520. </div>
  521. </div>
  522. <a id="ac9b3fea305ee74fb2cb1d70d4773aee0" name="ac9b3fea305ee74fb2cb1d70d4773aee0"></a>
  523. <h2 class="memtitle"><span class="permalink"><a href="#ac9b3fea305ee74fb2cb1d70d4773aee0">&#9670;&#160;</a></span>FreeBody()</h2>
  524. <div class="memitem">
  525. <div class="memproto">
  526. <table class="memname">
  527. <tr>
  528. <td class="memname">void BodyManager::FreeBody </td>
  529. <td>(</td>
  530. <td class="paramtype"><a class="el" href="class_body.html">Body</a> *</td> <td class="paramname"><span class="paramname"><em>inBody</em></span></td><td>)</td>
  531. <td> const</td>
  532. </tr>
  533. </table>
  534. </div><div class="memdoc">
  535. <p>Free a body that has not been added to the body manager yet (if it has, use DestroyBodies). </p>
  536. </div>
  537. </div>
  538. <a id="aae54df1753149fbac33cb8ea6f930da7" name="aae54df1753149fbac33cb8ea6f930da7"></a>
  539. <h2 class="memtitle"><span class="permalink"><a href="#aae54df1753149fbac33cb8ea6f930da7">&#9670;&#160;</a></span>GetActiveBodies()</h2>
  540. <div class="memitem">
  541. <div class="memproto">
  542. <table class="memname">
  543. <tr>
  544. <td class="memname">void BodyManager::GetActiveBodies </td>
  545. <td>(</td>
  546. <td class="paramtype"><a class="el" href="_body_type_8h.html#ab494e27db6c263f9e31556ad388eb666">EBodyType</a></td> <td class="paramname"><span class="paramname"><em>inType</em></span>, </td>
  547. </tr>
  548. <tr>
  549. <td class="paramkey"></td>
  550. <td></td>
  551. <td class="paramtype"><a class="el" href="_body_manager_8h.html#afc1c8d959352d66db407f29003a66bb8">BodyIDVector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outBodyIDs</em></span>&#160;) const</td>
  552. </tr>
  553. </table>
  554. </div><div class="memdoc">
  555. <p>Get copy of the list of active bodies under protection of a lock. </p>
  556. </div>
  557. </div>
  558. <a id="ac646f95e699a7d4525d65407ee3bea69" name="ac646f95e699a7d4525d65407ee3bea69"></a>
  559. <h2 class="memtitle"><span class="permalink"><a href="#ac646f95e699a7d4525d65407ee3bea69">&#9670;&#160;</a></span>GetActiveBodiesUnsafe()</h2>
  560. <div class="memitem">
  561. <div class="memproto">
  562. <table class="mlabels">
  563. <tr>
  564. <td class="mlabels-left">
  565. <table class="memname">
  566. <tr>
  567. <td class="memname">const <a class="el" href="class_body_i_d.html">BodyID</a> * BodyManager::GetActiveBodiesUnsafe </td>
  568. <td>(</td>
  569. <td class="paramtype"><a class="el" href="_body_type_8h.html#ab494e27db6c263f9e31556ad388eb666">EBodyType</a></td> <td class="paramname"><span class="paramname"><em>inType</em></span></td><td>)</td>
  570. <td> const</td>
  571. </tr>
  572. </table>
  573. </td>
  574. <td class="mlabels-right">
  575. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  576. </tr>
  577. </table>
  578. </div><div class="memdoc">
  579. <p>Get the list of active bodies. Note: Not thread safe. The active bodies list can change at any moment. </p>
  580. </div>
  581. </div>
  582. <a id="a4e54107c92d7ac62098e267ab8d16eb2" name="a4e54107c92d7ac62098e267ab8d16eb2"></a>
  583. <h2 class="memtitle"><span class="permalink"><a href="#a4e54107c92d7ac62098e267ab8d16eb2">&#9670;&#160;</a></span>GetAllBodiesMutexMask()</h2>
  584. <div class="memitem">
  585. <div class="memproto">
  586. <table class="mlabels">
  587. <tr>
  588. <td class="mlabels-left">
  589. <table class="memname">
  590. <tr>
  591. <td class="memname"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a> BodyManager::GetAllBodiesMutexMask </td>
  592. <td>(</td>
  593. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  594. <td> const</td>
  595. </tr>
  596. </table>
  597. </td>
  598. <td class="mlabels-right">
  599. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  600. </tr>
  601. </table>
  602. </div><div class="memdoc">
  603. </div>
  604. </div>
  605. <a id="ace4bb400f2a6b4f17e04aa10134dee4f" name="ace4bb400f2a6b4f17e04aa10134dee4f"></a>
  606. <h2 class="memtitle"><span class="permalink"><a href="#ace4bb400f2a6b4f17e04aa10134dee4f">&#9670;&#160;</a></span>GetBodies() <span class="overload">[1/2]</span></h2>
  607. <div class="memitem">
  608. <div class="memproto">
  609. <table class="mlabels">
  610. <tr>
  611. <td class="mlabels-left">
  612. <table class="memname">
  613. <tr>
  614. <td class="memname"><a class="el" href="_body_manager_8h.html#ae4e246af993ca15dd65cd797e6bf7640">BodyVector</a> &amp; BodyManager::GetBodies </td>
  615. <td>(</td>
  616. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  617. <td></td>
  618. </tr>
  619. </table>
  620. </td>
  621. <td class="mlabels-right">
  622. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  623. </tr>
  624. </table>
  625. </div><div class="memdoc">
  626. <p>Get all bodies. Note that this can contain invalid body pointers, call sIsValidBodyPointer to check. </p>
  627. </div>
  628. </div>
  629. <a id="ac6c6a208195a666e62fc3bd9c4456bfa" name="ac6c6a208195a666e62fc3bd9c4456bfa"></a>
  630. <h2 class="memtitle"><span class="permalink"><a href="#ac6c6a208195a666e62fc3bd9c4456bfa">&#9670;&#160;</a></span>GetBodies() <span class="overload">[2/2]</span></h2>
  631. <div class="memitem">
  632. <div class="memproto">
  633. <table class="mlabels">
  634. <tr>
  635. <td class="mlabels-left">
  636. <table class="memname">
  637. <tr>
  638. <td class="memname">const <a class="el" href="_body_manager_8h.html#ae4e246af993ca15dd65cd797e6bf7640">BodyVector</a> &amp; BodyManager::GetBodies </td>
  639. <td>(</td>
  640. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  641. <td> const</td>
  642. </tr>
  643. </table>
  644. </td>
  645. <td class="mlabels-right">
  646. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  647. </tr>
  648. </table>
  649. </div><div class="memdoc">
  650. <p>Get all bodies. Note that this can contain invalid body pointers, call sIsValidBodyPointer to check. </p>
  651. </div>
  652. </div>
  653. <a id="a2ac7db2095cb425b04bdad508e2acc4f" name="a2ac7db2095cb425b04bdad508e2acc4f"></a>
  654. <h2 class="memtitle"><span class="permalink"><a href="#a2ac7db2095cb425b04bdad508e2acc4f">&#9670;&#160;</a></span>GetBody() <span class="overload">[1/2]</span></h2>
  655. <div class="memitem">
  656. <div class="memproto">
  657. <table class="mlabels">
  658. <tr>
  659. <td class="mlabels-left">
  660. <table class="memname">
  661. <tr>
  662. <td class="memname"><a class="el" href="class_body.html">Body</a> &amp; BodyManager::GetBody </td>
  663. <td>(</td>
  664. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inID</em></span></td><td>)</td>
  665. <td></td>
  666. </tr>
  667. </table>
  668. </td>
  669. <td class="mlabels-right">
  670. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  671. </tr>
  672. </table>
  673. </div><div class="memdoc">
  674. <p>Access a body (not protected by lock) </p>
  675. </div>
  676. </div>
  677. <a id="ae89bc88048a56cbf21d70e78ec142a18" name="ae89bc88048a56cbf21d70e78ec142a18"></a>
  678. <h2 class="memtitle"><span class="permalink"><a href="#ae89bc88048a56cbf21d70e78ec142a18">&#9670;&#160;</a></span>GetBody() <span class="overload">[2/2]</span></h2>
  679. <div class="memitem">
  680. <div class="memproto">
  681. <table class="mlabels">
  682. <tr>
  683. <td class="mlabels-left">
  684. <table class="memname">
  685. <tr>
  686. <td class="memname">const <a class="el" href="class_body.html">Body</a> &amp; BodyManager::GetBody </td>
  687. <td>(</td>
  688. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inID</em></span></td><td>)</td>
  689. <td> const</td>
  690. </tr>
  691. </table>
  692. </td>
  693. <td class="mlabels-right">
  694. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  695. </tr>
  696. </table>
  697. </div><div class="memdoc">
  698. <p>Access a body (not protected by lock) </p>
  699. </div>
  700. </div>
  701. <a id="a3bb9c3e62332a39fd9ac1eac4c12ca52" name="a3bb9c3e62332a39fd9ac1eac4c12ca52"></a>
  702. <h2 class="memtitle"><span class="permalink"><a href="#a3bb9c3e62332a39fd9ac1eac4c12ca52">&#9670;&#160;</a></span>GetBodyActivationListener()</h2>
  703. <div class="memitem">
  704. <div class="memproto">
  705. <table class="mlabels">
  706. <tr>
  707. <td class="mlabels-left">
  708. <table class="memname">
  709. <tr>
  710. <td class="memname"><a class="el" href="class_body_activation_listener.html">BodyActivationListener</a> * BodyManager::GetBodyActivationListener </td>
  711. <td>(</td>
  712. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  713. <td> const</td>
  714. </tr>
  715. </table>
  716. </td>
  717. <td class="mlabels-right">
  718. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  719. </tr>
  720. </table>
  721. </div><div class="memdoc">
  722. </div>
  723. </div>
  724. <a id="aa65000b18f18a1d02bf432446dff7c05" name="aa65000b18f18a1d02bf432446dff7c05"></a>
  725. <h2 class="memtitle"><span class="permalink"><a href="#aa65000b18f18a1d02bf432446dff7c05">&#9670;&#160;</a></span>GetBodyIDs()</h2>
  726. <div class="memitem">
  727. <div class="memproto">
  728. <table class="memname">
  729. <tr>
  730. <td class="memname">void BodyManager::GetBodyIDs </td>
  731. <td>(</td>
  732. <td class="paramtype"><a class="el" href="_body_manager_8h.html#afc1c8d959352d66db407f29003a66bb8">BodyIDVector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outBodies</em></span></td><td>)</td>
  733. <td> const</td>
  734. </tr>
  735. </table>
  736. </div><div class="memdoc">
  737. <p>Get all body IDs under the protection of a lock. </p>
  738. </div>
  739. </div>
  740. <a id="a63c55f1d5d3ed30c4aa6a19ad14713ac" name="a63c55f1d5d3ed30c4aa6a19ad14713ac"></a>
  741. <h2 class="memtitle"><span class="permalink"><a href="#a63c55f1d5d3ed30c4aa6a19ad14713ac">&#9670;&#160;</a></span>GetBodyStats()</h2>
  742. <div class="memitem">
  743. <div class="memproto">
  744. <table class="memname">
  745. <tr>
  746. <td class="memname"><a class="el" href="struct_body_manager_1_1_body_stats.html">BodyManager::BodyStats</a> BodyManager::GetBodyStats </td>
  747. <td>(</td>
  748. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  749. <td> const</td>
  750. </tr>
  751. </table>
  752. </div><div class="memdoc">
  753. <p>Get stats about the bodies in the body manager (slow, iterates through all bodies) </p>
  754. </div>
  755. </div>
  756. <a id="ad54b2a378ee3653de2130da1ab3f69a5" name="ad54b2a378ee3653de2130da1ab3f69a5"></a>
  757. <h2 class="memtitle"><span class="permalink"><a href="#ad54b2a378ee3653de2130da1ab3f69a5">&#9670;&#160;</a></span>GetMaxBodies()</h2>
  758. <div class="memitem">
  759. <div class="memproto">
  760. <table class="mlabels">
  761. <tr>
  762. <td class="mlabels-left">
  763. <table class="memname">
  764. <tr>
  765. <td class="memname"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> BodyManager::GetMaxBodies </td>
  766. <td>(</td>
  767. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  768. <td> const</td>
  769. </tr>
  770. </table>
  771. </td>
  772. <td class="mlabels-right">
  773. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  774. </tr>
  775. </table>
  776. </div><div class="memdoc">
  777. <p>Gets the max bodies that we can support. </p>
  778. </div>
  779. </div>
  780. <a id="a608703b173fa10233dfd617150a2db67" name="a608703b173fa10233dfd617150a2db67"></a>
  781. <h2 class="memtitle"><span class="permalink"><a href="#a608703b173fa10233dfd617150a2db67">&#9670;&#160;</a></span>GetMutexForBody()</h2>
  782. <div class="memitem">
  783. <div class="memproto">
  784. <table class="mlabels">
  785. <tr>
  786. <td class="mlabels-left">
  787. <table class="memname">
  788. <tr>
  789. <td class="memname"><a class="el" href="class_shared_mutex.html">SharedMutex</a> &amp; BodyManager::GetMutexForBody </td>
  790. <td>(</td>
  791. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inID</em></span></td><td>)</td>
  792. <td> const</td>
  793. </tr>
  794. </table>
  795. </td>
  796. <td class="mlabels-right">
  797. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  798. </tr>
  799. </table>
  800. </div><div class="memdoc">
  801. <p>Access the mutex for a single body. </p>
  802. </div>
  803. </div>
  804. <a id="a447a132451ef5c4def8e0c51450b2701" name="a447a132451ef5c4def8e0c51450b2701"></a>
  805. <h2 class="memtitle"><span class="permalink"><a href="#a447a132451ef5c4def8e0c51450b2701">&#9670;&#160;</a></span>GetMutexMask()</h2>
  806. <div class="memitem">
  807. <div class="memproto">
  808. <table class="memname">
  809. <tr>
  810. <td class="memname"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">BodyManager::MutexMask</a> BodyManager::GetMutexMask </td>
  811. <td>(</td>
  812. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>inBodies</em></span>, </td>
  813. </tr>
  814. <tr>
  815. <td class="paramkey"></td>
  816. <td></td>
  817. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>&#160;) const</td>
  818. </tr>
  819. </table>
  820. </div><div class="memdoc">
  821. </div>
  822. </div>
  823. <a id="afc847edf3623bce165d4c872f0dc4d68" name="afc847edf3623bce165d4c872f0dc4d68"></a>
  824. <h2 class="memtitle"><span class="permalink"><a href="#afc847edf3623bce165d4c872f0dc4d68">&#9670;&#160;</a></span>GetNumActiveBodies()</h2>
  825. <div class="memitem">
  826. <div class="memproto">
  827. <table class="mlabels">
  828. <tr>
  829. <td class="mlabels-left">
  830. <table class="memname">
  831. <tr>
  832. <td class="memname"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> BodyManager::GetNumActiveBodies </td>
  833. <td>(</td>
  834. <td class="paramtype"><a class="el" href="_body_type_8h.html#ab494e27db6c263f9e31556ad388eb666">EBodyType</a></td> <td class="paramname"><span class="paramname"><em>inType</em></span></td><td>)</td>
  835. <td> const</td>
  836. </tr>
  837. </table>
  838. </td>
  839. <td class="mlabels-right">
  840. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  841. </tr>
  842. </table>
  843. </div><div class="memdoc">
  844. <p>Get the number of active bodies. </p>
  845. </div>
  846. </div>
  847. <a id="a462f40b51e2bbdae500c62584d0376be" name="a462f40b51e2bbdae500c62584d0376be"></a>
  848. <h2 class="memtitle"><span class="permalink"><a href="#a462f40b51e2bbdae500c62584d0376be">&#9670;&#160;</a></span>GetNumActiveCCDBodies()</h2>
  849. <div class="memitem">
  850. <div class="memproto">
  851. <table class="mlabels">
  852. <tr>
  853. <td class="mlabels-left">
  854. <table class="memname">
  855. <tr>
  856. <td class="memname"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> BodyManager::GetNumActiveCCDBodies </td>
  857. <td>(</td>
  858. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  859. <td> const</td>
  860. </tr>
  861. </table>
  862. </td>
  863. <td class="mlabels-right">
  864. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  865. </tr>
  866. </table>
  867. </div><div class="memdoc">
  868. <p>Get the number of active bodies that are using continuous collision detection. </p>
  869. </div>
  870. </div>
  871. <a id="a28e008be233691bbccef7d17e20d113d" name="a28e008be233691bbccef7d17e20d113d"></a>
  872. <h2 class="memtitle"><span class="permalink"><a href="#a28e008be233691bbccef7d17e20d113d">&#9670;&#160;</a></span>GetNumBodies()</h2>
  873. <div class="memitem">
  874. <div class="memproto">
  875. <table class="memname">
  876. <tr>
  877. <td class="memname"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> BodyManager::GetNumBodies </td>
  878. <td>(</td>
  879. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  880. <td> const</td>
  881. </tr>
  882. </table>
  883. </div><div class="memdoc">
  884. <p>Gets the current amount of bodies that are in the body manager. </p>
  885. </div>
  886. </div>
  887. <a id="a2d0f5cce4bc65b5dd60e79edc37fd0d9" name="a2d0f5cce4bc65b5dd60e79edc37fd0d9"></a>
  888. <h2 class="memtitle"><span class="permalink"><a href="#a2d0f5cce4bc65b5dd60e79edc37fd0d9">&#9670;&#160;</a></span>Init()</h2>
  889. <div class="memitem">
  890. <div class="memproto">
  891. <table class="memname">
  892. <tr>
  893. <td class="memname">void BodyManager::Init </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>inMaxBodies</em></span>, </td>
  896. </tr>
  897. <tr>
  898. <td class="paramkey"></td>
  899. <td></td>
  900. <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inNumBodyMutexes</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_broad_phase_layer_interface.html">BroadPhaseLayerInterface</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inLayerInterface</em></span>&#160;)</td>
  906. </tr>
  907. </table>
  908. </div><div class="memdoc">
  909. <p>Initialize the manager. </p>
  910. </div>
  911. </div>
  912. <a id="a2d9975b3a1fb311c3956820eae65b7ce" name="a2d9975b3a1fb311c3956820eae65b7ce"></a>
  913. <h2 class="memtitle"><span class="permalink"><a href="#a2d9975b3a1fb311c3956820eae65b7ce">&#9670;&#160;</a></span>InvalidateContactCacheForBody()</h2>
  914. <div class="memitem">
  915. <div class="memproto">
  916. <table class="memname">
  917. <tr>
  918. <td class="memname">void BodyManager::InvalidateContactCacheForBody </td>
  919. <td>(</td>
  920. <td class="paramtype"><a class="el" href="class_body.html">Body</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioBody</em></span></td><td>)</td>
  921. <td></td>
  922. </tr>
  923. </table>
  924. </div><div class="memdoc">
  925. <p>Set the Body::EFlags::InvalidateContactCache flag for the specified body. This means that the collision cache is invalid for any body pair involving that body until the next physics step. </p>
  926. </div>
  927. </div>
  928. <a id="a425eaf59b68a237d6821267ed1474f35" name="a425eaf59b68a237d6821267ed1474f35"></a>
  929. <h2 class="memtitle"><span class="permalink"><a href="#a425eaf59b68a237d6821267ed1474f35">&#9670;&#160;</a></span>LockAllBodies()</h2>
  930. <div class="memitem">
  931. <div class="memproto">
  932. <table class="memname">
  933. <tr>
  934. <td class="memname">void BodyManager::LockAllBodies </td>
  935. <td>(</td>
  936. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  937. <td> const</td>
  938. </tr>
  939. </table>
  940. </div><div class="memdoc">
  941. <p>Lock all bodies. This should only be done during <a class="el" href="class_physics_system.html#a4cdc76b2486dfaecfc9319d040e5e5f3">PhysicsSystem::Update()</a>. </p>
  942. </div>
  943. </div>
  944. <a id="ab9fe4438ea3c96fa4b2cbc724f425024" name="ab9fe4438ea3c96fa4b2cbc724f425024"></a>
  945. <h2 class="memtitle"><span class="permalink"><a href="#ab9fe4438ea3c96fa4b2cbc724f425024">&#9670;&#160;</a></span>LockRead()</h2>
  946. <div class="memitem">
  947. <div class="memproto">
  948. <table class="memname">
  949. <tr>
  950. <td class="memname">void BodyManager::LockRead </td>
  951. <td>(</td>
  952. <td class="paramtype"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a></td> <td class="paramname"><span class="paramname"><em>inMutexMask</em></span></td><td>)</td>
  953. <td> const</td>
  954. </tr>
  955. </table>
  956. </div><div class="memdoc">
  957. </div>
  958. </div>
  959. <a id="a21232e25b634203c299d6192180b6fe6" name="a21232e25b634203c299d6192180b6fe6"></a>
  960. <h2 class="memtitle"><span class="permalink"><a href="#a21232e25b634203c299d6192180b6fe6">&#9670;&#160;</a></span>LockWrite()</h2>
  961. <div class="memitem">
  962. <div class="memproto">
  963. <table class="memname">
  964. <tr>
  965. <td class="memname">void BodyManager::LockWrite </td>
  966. <td>(</td>
  967. <td class="paramtype"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a></td> <td class="paramname"><span class="paramname"><em>inMutexMask</em></span></td><td>)</td>
  968. <td> const</td>
  969. </tr>
  970. </table>
  971. </div><div class="memdoc">
  972. </div>
  973. </div>
  974. <a id="a2a65ea34748b9f3f354d4325f905ab1c" name="a2a65ea34748b9f3f354d4325f905ab1c"></a>
  975. <h2 class="memtitle"><span class="permalink"><a href="#a2a65ea34748b9f3f354d4325f905ab1c">&#9670;&#160;</a></span>RemoveBodies()</h2>
  976. <div class="memitem">
  977. <div class="memproto">
  978. <table class="memname">
  979. <tr>
  980. <td class="memname">void BodyManager::RemoveBodies </td>
  981. <td>(</td>
  982. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>inBodyIDs</em></span>, </td>
  983. </tr>
  984. <tr>
  985. <td class="paramkey"></td>
  986. <td></td>
  987. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>, </td>
  988. </tr>
  989. <tr>
  990. <td class="paramkey"></td>
  991. <td></td>
  992. <td class="paramtype"><a class="el" href="class_body.html">Body</a> **</td> <td class="paramname"><span class="paramname"><em>outBodies</em></span>&#160;)</td>
  993. </tr>
  994. </table>
  995. </div><div class="memdoc">
  996. <p>Remove a list of bodies from the body manager. </p>
  997. </div>
  998. </div>
  999. <a id="ad1de147dfb454f5963629a98489c1159" name="ad1de147dfb454f5963629a98489c1159"></a>
  1000. <h2 class="memtitle"><span class="permalink"><a href="#ad1de147dfb454f5963629a98489c1159">&#9670;&#160;</a></span>RestoreBodyState()</h2>
  1001. <div class="memitem">
  1002. <div class="memproto">
  1003. <table class="memname">
  1004. <tr>
  1005. <td class="memname">void BodyManager::RestoreBodyState </td>
  1006. <td>(</td>
  1007. <td class="paramtype"><a class="el" href="class_body.html">Body</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBody</em></span>, </td>
  1008. </tr>
  1009. <tr>
  1010. <td class="paramkey"></td>
  1011. <td></td>
  1012. <td class="paramtype"><a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span>&#160;)</td>
  1013. </tr>
  1014. </table>
  1015. </div><div class="memdoc">
  1016. <p>Save the state of a single body for replay. </p>
  1017. </div>
  1018. </div>
  1019. <a id="af64512a91a78f48a75c5cead5552e281" name="af64512a91a78f48a75c5cead5552e281"></a>
  1020. <h2 class="memtitle"><span class="permalink"><a href="#af64512a91a78f48a75c5cead5552e281">&#9670;&#160;</a></span>RestoreState()</h2>
  1021. <div class="memitem">
  1022. <div class="memproto">
  1023. <table class="memname">
  1024. <tr>
  1025. <td class="memname">bool BodyManager::RestoreState </td>
  1026. <td>(</td>
  1027. <td class="paramtype"><a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span></td><td>)</td>
  1028. <td></td>
  1029. </tr>
  1030. </table>
  1031. </div><div class="memdoc">
  1032. <p>Restoring state for replay. Returns false if failed. </p>
  1033. </div>
  1034. </div>
  1035. <a id="ab1eb2a2bbf12bbe839475093826b6ceb" name="ab1eb2a2bbf12bbe839475093826b6ceb"></a>
  1036. <h2 class="memtitle"><span class="permalink"><a href="#ab1eb2a2bbf12bbe839475093826b6ceb">&#9670;&#160;</a></span>SaveBodyState()</h2>
  1037. <div class="memitem">
  1038. <div class="memproto">
  1039. <table class="memname">
  1040. <tr>
  1041. <td class="memname">void BodyManager::SaveBodyState </td>
  1042. <td>(</td>
  1043. <td class="paramtype">const <a class="el" href="class_body.html">Body</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBody</em></span>, </td>
  1044. </tr>
  1045. <tr>
  1046. <td class="paramkey"></td>
  1047. <td></td>
  1048. <td class="paramtype"><a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span>&#160;) const</td>
  1049. </tr>
  1050. </table>
  1051. </div><div class="memdoc">
  1052. <p>Save the state of a single body for replay. </p>
  1053. </div>
  1054. </div>
  1055. <a id="a5fcbaca9d9a52129a56451ce519e9598" name="a5fcbaca9d9a52129a56451ce519e9598"></a>
  1056. <h2 class="memtitle"><span class="permalink"><a href="#a5fcbaca9d9a52129a56451ce519e9598">&#9670;&#160;</a></span>SaveState()</h2>
  1057. <div class="memitem">
  1058. <div class="memproto">
  1059. <table class="memname">
  1060. <tr>
  1061. <td class="memname">void BodyManager::SaveState </td>
  1062. <td>(</td>
  1063. <td class="paramtype"><a class="el" href="class_state_recorder.html">StateRecorder</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inStream</em></span>, </td>
  1064. </tr>
  1065. <tr>
  1066. <td class="paramkey"></td>
  1067. <td></td>
  1068. <td class="paramtype">const <a class="el" href="class_state_recorder_filter.html">StateRecorderFilter</a> *</td> <td class="paramname"><span class="paramname"><em>inFilter</em></span>&#160;) const</td>
  1069. </tr>
  1070. </table>
  1071. </div><div class="memdoc">
  1072. <p>Saving state for replay. </p>
  1073. </div>
  1074. </div>
  1075. <a id="a5f4202f0ef087177b642a93c13d82d9a" name="a5f4202f0ef087177b642a93c13d82d9a"></a>
  1076. <h2 class="memtitle"><span class="permalink"><a href="#a5f4202f0ef087177b642a93c13d82d9a">&#9670;&#160;</a></span>SetBodyActivationListener()</h2>
  1077. <div class="memitem">
  1078. <div class="memproto">
  1079. <table class="memname">
  1080. <tr>
  1081. <td class="memname">void BodyManager::SetBodyActivationListener </td>
  1082. <td>(</td>
  1083. <td class="paramtype"><a class="el" href="class_body_activation_listener.html">BodyActivationListener</a> *</td> <td class="paramname"><span class="paramname"><em>inListener</em></span></td><td>)</td>
  1084. <td></td>
  1085. </tr>
  1086. </table>
  1087. </div><div class="memdoc">
  1088. <p>Listener that is notified whenever a body is activated/deactivated. </p>
  1089. </div>
  1090. </div>
  1091. <a id="ae42a0183320aaebe459af6b0cc937daf" name="ae42a0183320aaebe459af6b0cc937daf"></a>
  1092. <h2 class="memtitle"><span class="permalink"><a href="#ae42a0183320aaebe459af6b0cc937daf">&#9670;&#160;</a></span>SetBodyObjectLayerInternal()</h2>
  1093. <div class="memitem">
  1094. <div class="memproto">
  1095. <table class="mlabels">
  1096. <tr>
  1097. <td class="mlabels-left">
  1098. <table class="memname">
  1099. <tr>
  1100. <td class="memname">void BodyManager::SetBodyObjectLayerInternal </td>
  1101. <td>(</td>
  1102. <td class="paramtype"><a class="el" href="class_body.html">Body</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioBody</em></span>, </td>
  1103. </tr>
  1104. <tr>
  1105. <td class="paramkey"></td>
  1106. <td></td>
  1107. <td class="paramtype"><a class="el" href="_object_layer_8h.html#a960eb396e2803ddad87bf25e0dcb4470">ObjectLayer</a></td> <td class="paramname"><span class="paramname"><em>inLayer</em></span>&#160;) const</td>
  1108. </tr>
  1109. </table>
  1110. </td>
  1111. <td class="mlabels-right">
  1112. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1113. </tr>
  1114. </table>
  1115. </div><div class="memdoc">
  1116. <p>Function to update body's layer (should only be called by the <a class="el" href="class_body_interface.html">BodyInterface</a> since it also requires updating the broadphase) </p>
  1117. </div>
  1118. </div>
  1119. <a id="af449412eb723ffe93a193d9b9aa86f3b" name="af449412eb723ffe93a193d9b9aa86f3b"></a>
  1120. <h2 class="memtitle"><span class="permalink"><a href="#af449412eb723ffe93a193d9b9aa86f3b">&#9670;&#160;</a></span>SetMotionQuality()</h2>
  1121. <div class="memitem">
  1122. <div class="memproto">
  1123. <table class="memname">
  1124. <tr>
  1125. <td class="memname">void BodyManager::SetMotionQuality </td>
  1126. <td>(</td>
  1127. <td class="paramtype"><a class="el" href="class_body.html">Body</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioBody</em></span>, </td>
  1128. </tr>
  1129. <tr>
  1130. <td class="paramkey"></td>
  1131. <td></td>
  1132. <td class="paramtype"><a class="el" href="_motion_quality_8h.html#af43db3453103c2e62526f54dd8542d3a">EMotionQuality</a></td> <td class="paramname"><span class="paramname"><em>inMotionQuality</em></span>&#160;)</td>
  1133. </tr>
  1134. </table>
  1135. </div><div class="memdoc">
  1136. <p>Update the motion quality for a body. </p>
  1137. </div>
  1138. </div>
  1139. <a id="a2a95afcef6b2166321d1ba21dce19158" name="a2a95afcef6b2166321d1ba21dce19158"></a>
  1140. <h2 class="memtitle"><span class="permalink"><a href="#a2a95afcef6b2166321d1ba21dce19158">&#9670;&#160;</a></span>sIsValidBodyPointer()</h2>
  1141. <div class="memitem">
  1142. <div class="memproto">
  1143. <table class="mlabels">
  1144. <tr>
  1145. <td class="mlabels-left">
  1146. <table class="memname">
  1147. <tr>
  1148. <td class="memname">static bool BodyManager::sIsValidBodyPointer </td>
  1149. <td>(</td>
  1150. <td class="paramtype">const <a class="el" href="class_body.html">Body</a> *</td> <td class="paramname"><span class="paramname"><em>inBody</em></span></td><td>)</td>
  1151. <td></td>
  1152. </tr>
  1153. </table>
  1154. </td>
  1155. <td class="mlabels-right">
  1156. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  1157. </tr>
  1158. </table>
  1159. </div><div class="memdoc">
  1160. <p>Check if this is a valid body pointer. When a body is freed the memory that the pointer occupies is reused to store a freelist. </p>
  1161. </div>
  1162. </div>
  1163. <a id="a57535e1d1645cc00b57fb7e8ecccc259" name="a57535e1d1645cc00b57fb7e8ecccc259"></a>
  1164. <h2 class="memtitle"><span class="permalink"><a href="#a57535e1d1645cc00b57fb7e8ecccc259">&#9670;&#160;</a></span>TryGetBody() <span class="overload">[1/2]</span></h2>
  1165. <div class="memitem">
  1166. <div class="memproto">
  1167. <table class="mlabels">
  1168. <tr>
  1169. <td class="mlabels-left">
  1170. <table class="memname">
  1171. <tr>
  1172. <td class="memname"><a class="el" href="class_body.html">Body</a> * BodyManager::TryGetBody </td>
  1173. <td>(</td>
  1174. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inID</em></span></td><td>)</td>
  1175. <td></td>
  1176. </tr>
  1177. </table>
  1178. </td>
  1179. <td class="mlabels-right">
  1180. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1181. </tr>
  1182. </table>
  1183. </div><div class="memdoc">
  1184. <p>Access a body, will return a nullptr if the body ID is no longer valid (not protected by lock) </p>
  1185. </div>
  1186. </div>
  1187. <a id="ac441f5d6015c113423972740f3e2815f" name="ac441f5d6015c113423972740f3e2815f"></a>
  1188. <h2 class="memtitle"><span class="permalink"><a href="#ac441f5d6015c113423972740f3e2815f">&#9670;&#160;</a></span>TryGetBody() <span class="overload">[2/2]</span></h2>
  1189. <div class="memitem">
  1190. <div class="memproto">
  1191. <table class="mlabels">
  1192. <tr>
  1193. <td class="mlabels-left">
  1194. <table class="memname">
  1195. <tr>
  1196. <td class="memname">const <a class="el" href="class_body.html">Body</a> * BodyManager::TryGetBody </td>
  1197. <td>(</td>
  1198. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inID</em></span></td><td>)</td>
  1199. <td> const</td>
  1200. </tr>
  1201. </table>
  1202. </td>
  1203. <td class="mlabels-right">
  1204. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1205. </tr>
  1206. </table>
  1207. </div><div class="memdoc">
  1208. <p>Access a body, will return a nullptr if the body ID is no longer valid (not protected by lock) </p>
  1209. </div>
  1210. </div>
  1211. <a id="a5bfccfc12e83e13bc8ed0ceacff6ccc3" name="a5bfccfc12e83e13bc8ed0ceacff6ccc3"></a>
  1212. <h2 class="memtitle"><span class="permalink"><a href="#a5bfccfc12e83e13bc8ed0ceacff6ccc3">&#9670;&#160;</a></span>UnlockAllBodies()</h2>
  1213. <div class="memitem">
  1214. <div class="memproto">
  1215. <table class="memname">
  1216. <tr>
  1217. <td class="memname">void BodyManager::UnlockAllBodies </td>
  1218. <td>(</td>
  1219. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1220. <td> const</td>
  1221. </tr>
  1222. </table>
  1223. </div><div class="memdoc">
  1224. <p>Unlock all bodies. This should only be done during <a class="el" href="class_physics_system.html#a4cdc76b2486dfaecfc9319d040e5e5f3">PhysicsSystem::Update()</a>. </p>
  1225. </div>
  1226. </div>
  1227. <a id="a3cfb772a46e7495234f6f14bff09ba99" name="a3cfb772a46e7495234f6f14bff09ba99"></a>
  1228. <h2 class="memtitle"><span class="permalink"><a href="#a3cfb772a46e7495234f6f14bff09ba99">&#9670;&#160;</a></span>UnlockRead()</h2>
  1229. <div class="memitem">
  1230. <div class="memproto">
  1231. <table class="memname">
  1232. <tr>
  1233. <td class="memname">void BodyManager::UnlockRead </td>
  1234. <td>(</td>
  1235. <td class="paramtype"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a></td> <td class="paramname"><span class="paramname"><em>inMutexMask</em></span></td><td>)</td>
  1236. <td> const</td>
  1237. </tr>
  1238. </table>
  1239. </div><div class="memdoc">
  1240. </div>
  1241. </div>
  1242. <a id="a27ee56a1128b6d9df49d56ea8308d95b" name="a27ee56a1128b6d9df49d56ea8308d95b"></a>
  1243. <h2 class="memtitle"><span class="permalink"><a href="#a27ee56a1128b6d9df49d56ea8308d95b">&#9670;&#160;</a></span>UnlockWrite()</h2>
  1244. <div class="memitem">
  1245. <div class="memproto">
  1246. <table class="memname">
  1247. <tr>
  1248. <td class="memname">void BodyManager::UnlockWrite </td>
  1249. <td>(</td>
  1250. <td class="paramtype"><a class="el" href="#aee0d75a5176680f7c00728fa33cbe9e2">MutexMask</a></td> <td class="paramname"><span class="paramname"><em>inMutexMask</em></span></td><td>)</td>
  1251. <td> const</td>
  1252. </tr>
  1253. </table>
  1254. </div><div class="memdoc">
  1255. </div>
  1256. </div>
  1257. <a id="a4e5f1bfab762cd561b21320d97ef0594" name="a4e5f1bfab762cd561b21320d97ef0594"></a>
  1258. <h2 class="memtitle"><span class="permalink"><a href="#a4e5f1bfab762cd561b21320d97ef0594">&#9670;&#160;</a></span>ValidateContactCacheForAllBodies()</h2>
  1259. <div class="memitem">
  1260. <div class="memproto">
  1261. <table class="memname">
  1262. <tr>
  1263. <td class="memname">void BodyManager::ValidateContactCacheForAllBodies </td>
  1264. <td>(</td>
  1265. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1266. <td></td>
  1267. </tr>
  1268. </table>
  1269. </div><div class="memdoc">
  1270. <p>Reset the Body::EFlags::InvalidateContactCache flag for all bodies. All contact pairs in the contact cache will now by valid again. </p>
  1271. </div>
  1272. </div>
  1273. <hr/>The documentation for this class was generated from the following files:<ul>
  1274. <li>Jolt/Physics/Body/<a class="el" href="_body_manager_8h_source.html">BodyManager.h</a></li>
  1275. <li>Jolt/Physics/Body/<a class="el" href="_body_manager_8cpp.html">BodyManager.cpp</a></li>
  1276. </ul>
  1277. </div><!-- contents -->
  1278. </div><!-- doc-content -->
  1279. <!-- start footer part -->
  1280. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  1281. <ul>
  1282. <li class="navelem"><a class="el" href="class_body_manager.html">BodyManager</a></li>
  1283. <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>
  1284. </ul>
  1285. </div>
  1286. </body>
  1287. </html>