class_broad_phase_brute_force.html 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  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: BroadPhaseBruteForce 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_broad_phase_brute_force.html',''); initResizable(true); });
  83. /* @license-end */
  84. </script>
  85. <div id="doc-content">
  86. <!-- window showing the filter options -->
  87. <div id="MSearchSelectWindow"
  88. onmouseover="return searchBox.OnSearchSelectShow()"
  89. onmouseout="return searchBox.OnSearchSelectHide()"
  90. onkeydown="return searchBox.OnSearchSelectKey(event)">
  91. </div>
  92. <!-- iframe showing the search results (closed by default) -->
  93. <div id="MSearchResultsWindow">
  94. <div id="MSearchResults">
  95. <div class="SRPage">
  96. <div id="SRIndex">
  97. <div id="SRResults"></div>
  98. <div class="SRStatus" id="Loading">Loading...</div>
  99. <div class="SRStatus" id="Searching">Searching...</div>
  100. <div class="SRStatus" id="NoMatches">No Matches</div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="header">
  106. <div class="summary">
  107. <a href="#pub-methods">Public Member Functions</a> &#124;
  108. <a href="class_broad_phase_brute_force-members.html">List of all members</a> </div>
  109. <div class="headertitle"><div class="title">BroadPhaseBruteForce Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
  110. </div><!--header-->
  111. <div class="contents">
  112. <p>Test <a class="el" href="class_broad_phase.html" title="Used to do coarse collision detection operations to quickly prune out bodies that will not collide.">BroadPhase</a> implementation that does not do anything to speed up the operations. Can be used as a reference implementation.
  113. <a href="#details">More...</a></p>
  114. <p><code>#include &lt;<a class="el" href="_broad_phase_brute_force_8h_source.html">BroadPhaseBruteForce.h</a>&gt;</code></p>
  115. <div class="dynheader">
  116. Inheritance diagram for BroadPhaseBruteForce:</div>
  117. <div class="dyncontent">
  118. <div class="center">
  119. <img src="class_broad_phase_brute_force.png" usemap="#BroadPhaseBruteForce_map" alt=""/>
  120. <map id="BroadPhaseBruteForce_map" name="BroadPhaseBruteForce_map">
  121. <area href="class_broad_phase.html" title="Used to do coarse collision detection operations to quickly prune out bodies that will not collide." alt="BroadPhase" shape="rect" coords="0,112,145,136"/>
  122. <area href="class_broad_phase_query.html" alt="BroadPhaseQuery" shape="rect" coords="0,56,145,80"/>
  123. <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,145,24"/>
  124. </map>
  125. </div></div>
  126. <table class="memberdecls">
  127. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  128. Public Member Functions</h2></td></tr>
  129. <tr class="memitem:a75b3feb54f2c3710b20b27c5379ad55e" id="r_a75b3feb54f2c3710b20b27c5379ad55e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a75b3feb54f2c3710b20b27c5379ad55e">AddBodiesFinalize</a> (<a class="el" href="class_body_i_d.html">BodyID</a> *ioBodies, int inNumber, <a class="el" href="class_broad_phase.html#ae7d00a18a41401f177a2a1d111265b10">AddState</a> inAddState) override</td></tr>
  130. <tr class="separator:a75b3feb54f2c3710b20b27c5379ad55e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:a488f130c96e125ae1b0dda672d805f65" id="r_a488f130c96e125ae1b0dda672d805f65"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a488f130c96e125ae1b0dda672d805f65">RemoveBodies</a> (<a class="el" href="class_body_i_d.html">BodyID</a> *ioBodies, int inNumber) override</td></tr>
  132. <tr class="separator:a488f130c96e125ae1b0dda672d805f65"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:a59e4b801e711b42da8018c7f9e8362be" id="r_a59e4b801e711b42da8018c7f9e8362be"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a59e4b801e711b42da8018c7f9e8362be">NotifyBodiesAABBChanged</a> (<a class="el" href="class_body_i_d.html">BodyID</a> *ioBodies, int inNumber, bool inTakeLock) override</td></tr>
  134. <tr class="separator:a59e4b801e711b42da8018c7f9e8362be"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:a533303a0786892359c0e2e64ac4371cc" id="r_a533303a0786892359c0e2e64ac4371cc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a533303a0786892359c0e2e64ac4371cc">NotifyBodiesLayerChanged</a> (<a class="el" href="class_body_i_d.html">BodyID</a> *ioBodies, int inNumber) override</td></tr>
  136. <tr class="memdesc:a533303a0786892359c0e2e64ac4371cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call whenever the layer (and optionally the aabb as well) of a body changes (can change order of ioBodies array) <br /></td></tr>
  137. <tr class="separator:a533303a0786892359c0e2e64ac4371cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:aa802d83be23764261a739ad0dce2dd6d" id="r_aa802d83be23764261a739ad0dce2dd6d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa802d83be23764261a739ad0dce2dd6d">CastRay</a> (const <a class="el" href="struct_ray_cast.html">RayCast</a> &amp;inRay, <a class="el" href="_broad_phase_query_8h.html#a398068f8b89e507b29d1a3d89471a5bb">RayCastBodyCollector</a> &amp;ioCollector, const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;inBroadPhaseLayerFilter, const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;inObjectLayerFilter) const override</td></tr>
  139. <tr class="memdesc:aa802d83be23764261a739ad0dce2dd6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast a ray and add any hits to ioCollector. <br /></td></tr>
  140. <tr class="separator:aa802d83be23764261a739ad0dce2dd6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. <tr class="memitem:a942ee7721ab6b973d1ff0f84c5ec3c39" id="r_a942ee7721ab6b973d1ff0f84c5ec3c39"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a942ee7721ab6b973d1ff0f84c5ec3c39">CollideAABox</a> (const <a class="el" href="class_a_a_box.html">AABox</a> &amp;inBox, <a class="el" href="_broad_phase_query_8h.html#acb6931761cab44f04e48cfb6ebc7fa7b">CollideShapeBodyCollector</a> &amp;ioCollector, const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;inBroadPhaseLayerFilter, const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;inObjectLayerFilter) const override</td></tr>
  142. <tr class="memdesc:a942ee7721ab6b973d1ff0f84c5ec3c39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get bodies intersecting with inBox and any hits to ioCollector. <br /></td></tr>
  143. <tr class="separator:a942ee7721ab6b973d1ff0f84c5ec3c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:a1550bc80cf969b9db8c1acc327902b00" id="r_a1550bc80cf969b9db8c1acc327902b00"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1550bc80cf969b9db8c1acc327902b00">CollideSphere</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inCenter, float inRadius, <a class="el" href="_broad_phase_query_8h.html#acb6931761cab44f04e48cfb6ebc7fa7b">CollideShapeBodyCollector</a> &amp;ioCollector, const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;inBroadPhaseLayerFilter, const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;inObjectLayerFilter) const override</td></tr>
  145. <tr class="memdesc:a1550bc80cf969b9db8c1acc327902b00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get bodies intersecting with a sphere and any hits to ioCollector. <br /></td></tr>
  146. <tr class="separator:a1550bc80cf969b9db8c1acc327902b00"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:af8ccb4b811426b36bfb2e51e1e61b92b" id="r_af8ccb4b811426b36bfb2e51e1e61b92b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af8ccb4b811426b36bfb2e51e1e61b92b">CollidePoint</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPoint, <a class="el" href="_broad_phase_query_8h.html#acb6931761cab44f04e48cfb6ebc7fa7b">CollideShapeBodyCollector</a> &amp;ioCollector, const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;inBroadPhaseLayerFilter, const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;inObjectLayerFilter) const override</td></tr>
  148. <tr class="memdesc:af8ccb4b811426b36bfb2e51e1e61b92b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get bodies intersecting with a point and any hits to ioCollector. <br /></td></tr>
  149. <tr class="separator:af8ccb4b811426b36bfb2e51e1e61b92b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:a7e8ac19b326adf19996bd1288089018b" id="r_a7e8ac19b326adf19996bd1288089018b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7e8ac19b326adf19996bd1288089018b">CollideOrientedBox</a> (const <a class="el" href="class_oriented_box.html">OrientedBox</a> &amp;inBox, <a class="el" href="_broad_phase_query_8h.html#acb6931761cab44f04e48cfb6ebc7fa7b">CollideShapeBodyCollector</a> &amp;ioCollector, const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;inBroadPhaseLayerFilter, const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;inObjectLayerFilter) const override</td></tr>
  151. <tr class="memdesc:a7e8ac19b326adf19996bd1288089018b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get bodies intersecting with an oriented box and any hits to ioCollector. <br /></td></tr>
  152. <tr class="separator:a7e8ac19b326adf19996bd1288089018b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  153. <tr class="memitem:a039672aad27d2a635e3f8ffccb3b7a69" id="r_a039672aad27d2a635e3f8ffccb3b7a69"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a039672aad27d2a635e3f8ffccb3b7a69">CastAABoxNoLock</a> (const <a class="el" href="struct_a_a_box_cast.html">AABoxCast</a> &amp;inBox, <a class="el" href="_broad_phase_query_8h.html#adec8e742b1ef969e096cfd4e19902353">CastShapeBodyCollector</a> &amp;ioCollector, const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;inBroadPhaseLayerFilter, const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;inObjectLayerFilter) const override</td></tr>
  154. <tr class="memdesc:a039672aad27d2a635e3f8ffccb3b7a69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="class_broad_phase_query.html#a8df87b27367ff5e9911f7966359d326a" title="Cast a box and add any hits to ioCollector.">BroadPhaseQuery::CastAABox</a> but can be implemented in a way to take no broad phase locks. <br /></td></tr>
  155. <tr class="separator:a039672aad27d2a635e3f8ffccb3b7a69"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <tr class="memitem:a56f59ffbc87333de2af4c7d995a048a3" id="r_a56f59ffbc87333de2af4c7d995a048a3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a56f59ffbc87333de2af4c7d995a048a3">CastAABox</a> (const <a class="el" href="struct_a_a_box_cast.html">AABoxCast</a> &amp;inBox, <a class="el" href="_broad_phase_query_8h.html#adec8e742b1ef969e096cfd4e19902353">CastShapeBodyCollector</a> &amp;ioCollector, const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;inBroadPhaseLayerFilter, const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;inObjectLayerFilter) const override</td></tr>
  157. <tr class="memdesc:a56f59ffbc87333de2af4c7d995a048a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast a box and add any hits to ioCollector. <br /></td></tr>
  158. <tr class="separator:a56f59ffbc87333de2af4c7d995a048a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr class="memitem:a2d0f339251687a983a58b516350e93ac" id="r_a2d0f339251687a983a58b516350e93ac"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2d0f339251687a983a58b516350e93ac">FindCollidingPairs</a> (<a class="el" href="class_body_i_d.html">BodyID</a> *ioActiveBodies, int inNumActiveBodies, float inSpeculativeContactDistance, const <a class="el" href="class_object_vs_broad_phase_layer_filter.html">ObjectVsBroadPhaseLayerFilter</a> &amp;inObjectVsBroadPhaseLayerFilter, const <a class="el" href="class_object_layer_pair_filter.html">ObjectLayerPairFilter</a> &amp;inObjectLayerPairFilter, <a class="el" href="_broad_phase_8h.html#a79c28d9ca80b345aca4b3ab03ab8f82a">BodyPairCollector</a> &amp;ioPairCollector) const override</td></tr>
  160. <tr class="separator:a2d0f339251687a983a58b516350e93ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  161. <tr class="memitem:a64c0008d13703a25a0bfb3f3d1556f5d" id="r_a64c0008d13703a25a0bfb3f3d1556f5d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_a_a_box.html">AABox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a64c0008d13703a25a0bfb3f3d1556f5d">GetBounds</a> () const override</td></tr>
  162. <tr class="memdesc:a64c0008d13703a25a0bfb3f3d1556f5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the bounding box of all objects in the broadphase. <br /></td></tr>
  163. <tr class="separator:a64c0008d13703a25a0bfb3f3d1556f5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. <tr class="inherit_header pub_methods_class_broad_phase"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_broad_phase')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_broad_phase.html">BroadPhase</a></td></tr>
  165. <tr class="memitem:ad7d7ba03cddb7946ad487176458ffce4 inherit pub_methods_class_broad_phase" id="r_ad7d7ba03cddb7946ad487176458ffce4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#ad7d7ba03cddb7946ad487176458ffce4">Init</a> (<a class="el" href="class_body_manager.html">BodyManager</a> *inBodyManager, const <a class="el" href="class_broad_phase_layer_interface.html">BroadPhaseLayerInterface</a> &amp;inLayerInterface)</td></tr>
  166. <tr class="separator:ad7d7ba03cddb7946ad487176458ffce4 inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  167. <tr class="memitem:ab209cd12e5b3c915ed9d9c65e5d34089 inherit pub_methods_class_broad_phase" id="r_ab209cd12e5b3c915ed9d9c65e5d34089"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#ab209cd12e5b3c915ed9d9c65e5d34089">Optimize</a> ()</td></tr>
  168. <tr class="memdesc:ab209cd12e5b3c915ed9d9c65e5d34089 inherit pub_methods_class_broad_phase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Should be called after many objects have been inserted to make the broadphase more efficient, usually done on startup only. <br /></td></tr>
  169. <tr class="separator:ab209cd12e5b3c915ed9d9c65e5d34089 inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  170. <tr class="memitem:a4772ae4d99f16342a494b7c1e0066d8d inherit pub_methods_class_broad_phase" id="r_a4772ae4d99f16342a494b7c1e0066d8d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#a4772ae4d99f16342a494b7c1e0066d8d">FrameSync</a> ()</td></tr>
  171. <tr class="memdesc:a4772ae4d99f16342a494b7c1e0066d8d inherit pub_methods_class_broad_phase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Must be called just before updating the broadphase when none of the body mutexes are locked. <br /></td></tr>
  172. <tr class="separator:a4772ae4d99f16342a494b7c1e0066d8d inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  173. <tr class="memitem:a09a84eceb64acb6636984a06bbb7a73a inherit pub_methods_class_broad_phase" id="r_a09a84eceb64acb6636984a06bbb7a73a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#a09a84eceb64acb6636984a06bbb7a73a">LockModifications</a> ()</td></tr>
  174. <tr class="memdesc:a09a84eceb64acb6636984a06bbb7a73a inherit pub_methods_class_broad_phase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Must be called before UpdatePrepare to prevent modifications from being made to the tree. <br /></td></tr>
  175. <tr class="separator:a09a84eceb64acb6636984a06bbb7a73a inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <tr class="memitem:af28614224a9ae6463bce9f2039468852 inherit pub_methods_class_broad_phase" id="r_af28614224a9ae6463bce9f2039468852"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="struct_broad_phase_1_1_update_state.html">UpdateState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#af28614224a9ae6463bce9f2039468852">UpdatePrepare</a> ()</td></tr>
  177. <tr class="separator:af28614224a9ae6463bce9f2039468852 inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  178. <tr class="memitem:ab78bec1eb43c0ff847eaf489bd2e95a2 inherit pub_methods_class_broad_phase" id="r_ab78bec1eb43c0ff847eaf489bd2e95a2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#ab78bec1eb43c0ff847eaf489bd2e95a2">UpdateFinalize</a> (const <a class="el" href="struct_broad_phase_1_1_update_state.html">UpdateState</a> &amp;inUpdateState)</td></tr>
  179. <tr class="memdesc:ab78bec1eb43c0ff847eaf489bd2e95a2 inherit pub_methods_class_broad_phase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalizing the update will quickly apply the changes. <br /></td></tr>
  180. <tr class="separator:ab78bec1eb43c0ff847eaf489bd2e95a2 inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  181. <tr class="memitem:a588463ac5567b3cc721c45cdb90138d6 inherit pub_methods_class_broad_phase" id="r_a588463ac5567b3cc721c45cdb90138d6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#a588463ac5567b3cc721c45cdb90138d6">UnlockModifications</a> ()</td></tr>
  182. <tr class="memdesc:a588463ac5567b3cc721c45cdb90138d6 inherit pub_methods_class_broad_phase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Must be called after UpdateFinalize to allow modifications to the broadphase. <br /></td></tr>
  183. <tr class="separator:a588463ac5567b3cc721c45cdb90138d6 inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. <tr class="memitem:adc636ae60807c46011ed3674b6a983c2 inherit pub_methods_class_broad_phase" id="r_adc636ae60807c46011ed3674b6a983c2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_broad_phase.html#ae7d00a18a41401f177a2a1d111265b10">AddState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#adc636ae60807c46011ed3674b6a983c2">AddBodiesPrepare</a> (<a class="el" href="class_body_i_d.html">BodyID</a> *ioBodies, int inNumber)</td></tr>
  185. <tr class="separator:adc636ae60807c46011ed3674b6a983c2 inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186. <tr class="memitem:a031638360b44d1a9b2176590796eb2a6 inherit pub_methods_class_broad_phase" id="r_a031638360b44d1a9b2176590796eb2a6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#a031638360b44d1a9b2176590796eb2a6">AddBodiesAbort</a> (<a class="el" href="class_body_i_d.html">BodyID</a> *ioBodies, int inNumber, <a class="el" href="class_broad_phase.html#ae7d00a18a41401f177a2a1d111265b10">AddState</a> inAddState)</td></tr>
  187. <tr class="separator:a031638360b44d1a9b2176590796eb2a6 inherit pub_methods_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <tr class="inherit_header pub_methods_class_broad_phase_query"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_broad_phase_query')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_broad_phase_query.html">BroadPhaseQuery</a></td></tr>
  189. <tr class="memitem:a3eb1b1cf5421ba7785cff7e7aa4bd702 inherit pub_methods_class_broad_phase_query" id="r_a3eb1b1cf5421ba7785cff7e7aa4bd702"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase_query.html#a3eb1b1cf5421ba7785cff7e7aa4bd702">~BroadPhaseQuery</a> ()=default</td></tr>
  190. <tr class="memdesc:a3eb1b1cf5421ba7785cff7e7aa4bd702 inherit pub_methods_class_broad_phase_query"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
  191. <tr class="separator:a3eb1b1cf5421ba7785cff7e7aa4bd702 inherit pub_methods_class_broad_phase_query"><td class="memSeparator" colspan="2">&#160;</td></tr>
  192. <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>
  193. <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>
  194. <tr class="separator:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  195. <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>
  196. <tr class="separator:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  197. <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>
  198. <tr class="separator:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  199. </table><table class="memberdecls">
  200. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
  201. Additional Inherited Members</h2></td></tr>
  202. <tr class="inherit_header pub_types_class_broad_phase"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_types_class_broad_phase')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="class_broad_phase.html">BroadPhase</a></td></tr>
  203. <tr class="memitem:ae7d00a18a41401f177a2a1d111265b10 inherit pub_types_class_broad_phase" id="r_ae7d00a18a41401f177a2a1d111265b10"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#ae7d00a18a41401f177a2a1d111265b10">AddState</a> = void *</td></tr>
  204. <tr class="memdesc:ae7d00a18a41401f177a2a1d111265b10 inherit pub_types_class_broad_phase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle used during adding bodies to the broadphase. <br /></td></tr>
  205. <tr class="separator:ae7d00a18a41401f177a2a1d111265b10 inherit pub_types_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  206. <tr class="inherit_header pro_attribs_class_broad_phase"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_attribs_class_broad_phase')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_broad_phase.html">BroadPhase</a></td></tr>
  207. <tr class="memitem:a7789150cb00a308ed3da284decedb169 inherit pro_attribs_class_broad_phase" id="r_a7789150cb00a308ed3da284decedb169"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_body_manager.html">BodyManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_broad_phase.html#a7789150cb00a308ed3da284decedb169">mBodyManager</a> = nullptr</td></tr>
  208. <tr class="memdesc:a7789150cb00a308ed3da284decedb169 inherit pro_attribs_class_broad_phase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Link to the body manager that manages the bodies in this broadphase. <br /></td></tr>
  209. <tr class="separator:a7789150cb00a308ed3da284decedb169 inherit pro_attribs_class_broad_phase"><td class="memSeparator" colspan="2">&#160;</td></tr>
  210. </table>
  211. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  212. <div class="textblock"><p>Test <a class="el" href="class_broad_phase.html" title="Used to do coarse collision detection operations to quickly prune out bodies that will not collide.">BroadPhase</a> implementation that does not do anything to speed up the operations. Can be used as a reference implementation. </p>
  213. </div><h2 class="groupheader">Member Function Documentation</h2>
  214. <a id="a75b3feb54f2c3710b20b27c5379ad55e" name="a75b3feb54f2c3710b20b27c5379ad55e"></a>
  215. <h2 class="memtitle"><span class="permalink"><a href="#a75b3feb54f2c3710b20b27c5379ad55e">&#9670;&#160;</a></span>AddBodiesFinalize()</h2>
  216. <div class="memitem">
  217. <div class="memproto">
  218. <table class="mlabels">
  219. <tr>
  220. <td class="mlabels-left">
  221. <table class="memname">
  222. <tr>
  223. <td class="memname"><a class="el" href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a> void BroadPhaseBruteForce::AddBodiesFinalize </td>
  224. <td>(</td>
  225. <td class="paramtype"><a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>ioBodies</em></span>, </td>
  226. </tr>
  227. <tr>
  228. <td class="paramkey"></td>
  229. <td></td>
  230. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>, </td>
  231. </tr>
  232. <tr>
  233. <td class="paramkey"></td>
  234. <td></td>
  235. <td class="paramtype"><a class="el" href="class_broad_phase.html#ae7d00a18a41401f177a2a1d111265b10">AddState</a></td> <td class="paramname"><span class="paramname"><em>inAddState</em></span>&#160;)</td>
  236. </tr>
  237. </table>
  238. </td>
  239. <td class="mlabels-right">
  240. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  241. </tr>
  242. </table>
  243. </div><div class="memdoc">
  244. <p>Finalize adding bodies to the broadphase, supply the return value of AddBodiesPrepare in inAddState. Please ensure that the ioBodies array passed to AddBodiesPrepare is unmodified and passed again to this function. </p>
  245. <p>Implements <a class="el" href="class_broad_phase.html#a07f0fba42d45520a9bc2d22f2a636584">BroadPhase</a>.</p>
  246. </div>
  247. </div>
  248. <a id="a56f59ffbc87333de2af4c7d995a048a3" name="a56f59ffbc87333de2af4c7d995a048a3"></a>
  249. <h2 class="memtitle"><span class="permalink"><a href="#a56f59ffbc87333de2af4c7d995a048a3">&#9670;&#160;</a></span>CastAABox()</h2>
  250. <div class="memitem">
  251. <div class="memproto">
  252. <table class="mlabels">
  253. <tr>
  254. <td class="mlabels-left">
  255. <table class="memname">
  256. <tr>
  257. <td class="memname">void BroadPhaseBruteForce::CastAABox </td>
  258. <td>(</td>
  259. <td class="paramtype">const <a class="el" href="struct_a_a_box_cast.html">AABoxCast</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  260. </tr>
  261. <tr>
  262. <td class="paramkey"></td>
  263. <td></td>
  264. <td class="paramtype"><a class="el" href="_broad_phase_query_8h.html#adec8e742b1ef969e096cfd4e19902353">CastShapeBodyCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  265. </tr>
  266. <tr>
  267. <td class="paramkey"></td>
  268. <td></td>
  269. <td class="paramtype">const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBroadPhaseLayerFilter</em></span>, </td>
  270. </tr>
  271. <tr>
  272. <td class="paramkey"></td>
  273. <td></td>
  274. <td class="paramtype">const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectLayerFilter</em></span>&#160;) const</td>
  275. </tr>
  276. </table>
  277. </td>
  278. <td class="mlabels-right">
  279. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  280. </tr>
  281. </table>
  282. </div><div class="memdoc">
  283. <p>Cast a box and add any hits to ioCollector. </p>
  284. <p>Implements <a class="el" href="class_broad_phase_query.html#a8df87b27367ff5e9911f7966359d326a">BroadPhaseQuery</a>.</p>
  285. </div>
  286. </div>
  287. <a id="a039672aad27d2a635e3f8ffccb3b7a69" name="a039672aad27d2a635e3f8ffccb3b7a69"></a>
  288. <h2 class="memtitle"><span class="permalink"><a href="#a039672aad27d2a635e3f8ffccb3b7a69">&#9670;&#160;</a></span>CastAABoxNoLock()</h2>
  289. <div class="memitem">
  290. <div class="memproto">
  291. <table class="mlabels">
  292. <tr>
  293. <td class="mlabels-left">
  294. <table class="memname">
  295. <tr>
  296. <td class="memname">void BroadPhaseBruteForce::CastAABoxNoLock </td>
  297. <td>(</td>
  298. <td class="paramtype">const <a class="el" href="struct_a_a_box_cast.html">AABoxCast</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  299. </tr>
  300. <tr>
  301. <td class="paramkey"></td>
  302. <td></td>
  303. <td class="paramtype"><a class="el" href="_broad_phase_query_8h.html#adec8e742b1ef969e096cfd4e19902353">CastShapeBodyCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  304. </tr>
  305. <tr>
  306. <td class="paramkey"></td>
  307. <td></td>
  308. <td class="paramtype">const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBroadPhaseLayerFilter</em></span>, </td>
  309. </tr>
  310. <tr>
  311. <td class="paramkey"></td>
  312. <td></td>
  313. <td class="paramtype">const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectLayerFilter</em></span>&#160;) const</td>
  314. </tr>
  315. </table>
  316. </td>
  317. <td class="mlabels-right">
  318. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  319. </tr>
  320. </table>
  321. </div><div class="memdoc">
  322. <p>Same as <a class="el" href="class_broad_phase_query.html#a8df87b27367ff5e9911f7966359d326a" title="Cast a box and add any hits to ioCollector.">BroadPhaseQuery::CastAABox</a> but can be implemented in a way to take no broad phase locks. </p>
  323. <p>Implements <a class="el" href="class_broad_phase.html#a324830206fb4032c6a6670fea6c15143">BroadPhase</a>.</p>
  324. </div>
  325. </div>
  326. <a id="aa802d83be23764261a739ad0dce2dd6d" name="aa802d83be23764261a739ad0dce2dd6d"></a>
  327. <h2 class="memtitle"><span class="permalink"><a href="#aa802d83be23764261a739ad0dce2dd6d">&#9670;&#160;</a></span>CastRay()</h2>
  328. <div class="memitem">
  329. <div class="memproto">
  330. <table class="mlabels">
  331. <tr>
  332. <td class="mlabels-left">
  333. <table class="memname">
  334. <tr>
  335. <td class="memname">void BroadPhaseBruteForce::CastRay </td>
  336. <td>(</td>
  337. <td class="paramtype">const <a class="el" href="struct_ray_cast.html">RayCast</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRay</em></span>, </td>
  338. </tr>
  339. <tr>
  340. <td class="paramkey"></td>
  341. <td></td>
  342. <td class="paramtype"><a class="el" href="_broad_phase_query_8h.html#a398068f8b89e507b29d1a3d89471a5bb">RayCastBodyCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  343. </tr>
  344. <tr>
  345. <td class="paramkey"></td>
  346. <td></td>
  347. <td class="paramtype">const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBroadPhaseLayerFilter</em></span>, </td>
  348. </tr>
  349. <tr>
  350. <td class="paramkey"></td>
  351. <td></td>
  352. <td class="paramtype">const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectLayerFilter</em></span>&#160;) const</td>
  353. </tr>
  354. </table>
  355. </td>
  356. <td class="mlabels-right">
  357. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  358. </tr>
  359. </table>
  360. </div><div class="memdoc">
  361. <p>Cast a ray and add any hits to ioCollector. </p>
  362. <p>Implements <a class="el" href="class_broad_phase_query.html#a1c74037652396c3584021f9b99341397">BroadPhaseQuery</a>.</p>
  363. </div>
  364. </div>
  365. <a id="a942ee7721ab6b973d1ff0f84c5ec3c39" name="a942ee7721ab6b973d1ff0f84c5ec3c39"></a>
  366. <h2 class="memtitle"><span class="permalink"><a href="#a942ee7721ab6b973d1ff0f84c5ec3c39">&#9670;&#160;</a></span>CollideAABox()</h2>
  367. <div class="memitem">
  368. <div class="memproto">
  369. <table class="mlabels">
  370. <tr>
  371. <td class="mlabels-left">
  372. <table class="memname">
  373. <tr>
  374. <td class="memname">void BroadPhaseBruteForce::CollideAABox </td>
  375. <td>(</td>
  376. <td class="paramtype">const <a class="el" href="class_a_a_box.html">AABox</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  377. </tr>
  378. <tr>
  379. <td class="paramkey"></td>
  380. <td></td>
  381. <td class="paramtype"><a class="el" href="_broad_phase_query_8h.html#acb6931761cab44f04e48cfb6ebc7fa7b">CollideShapeBodyCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  382. </tr>
  383. <tr>
  384. <td class="paramkey"></td>
  385. <td></td>
  386. <td class="paramtype">const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBroadPhaseLayerFilter</em></span>, </td>
  387. </tr>
  388. <tr>
  389. <td class="paramkey"></td>
  390. <td></td>
  391. <td class="paramtype">const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectLayerFilter</em></span>&#160;) const</td>
  392. </tr>
  393. </table>
  394. </td>
  395. <td class="mlabels-right">
  396. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  397. </tr>
  398. </table>
  399. </div><div class="memdoc">
  400. <p>Get bodies intersecting with inBox and any hits to ioCollector. </p>
  401. <p>Implements <a class="el" href="class_broad_phase_query.html#a4a63335c1c6b386af32b22d4e74dbf5a">BroadPhaseQuery</a>.</p>
  402. </div>
  403. </div>
  404. <a id="a7e8ac19b326adf19996bd1288089018b" name="a7e8ac19b326adf19996bd1288089018b"></a>
  405. <h2 class="memtitle"><span class="permalink"><a href="#a7e8ac19b326adf19996bd1288089018b">&#9670;&#160;</a></span>CollideOrientedBox()</h2>
  406. <div class="memitem">
  407. <div class="memproto">
  408. <table class="mlabels">
  409. <tr>
  410. <td class="mlabels-left">
  411. <table class="memname">
  412. <tr>
  413. <td class="memname">void BroadPhaseBruteForce::CollideOrientedBox </td>
  414. <td>(</td>
  415. <td class="paramtype">const <a class="el" href="class_oriented_box.html">OrientedBox</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  416. </tr>
  417. <tr>
  418. <td class="paramkey"></td>
  419. <td></td>
  420. <td class="paramtype"><a class="el" href="_broad_phase_query_8h.html#acb6931761cab44f04e48cfb6ebc7fa7b">CollideShapeBodyCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  421. </tr>
  422. <tr>
  423. <td class="paramkey"></td>
  424. <td></td>
  425. <td class="paramtype">const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBroadPhaseLayerFilter</em></span>, </td>
  426. </tr>
  427. <tr>
  428. <td class="paramkey"></td>
  429. <td></td>
  430. <td class="paramtype">const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectLayerFilter</em></span>&#160;) const</td>
  431. </tr>
  432. </table>
  433. </td>
  434. <td class="mlabels-right">
  435. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  436. </tr>
  437. </table>
  438. </div><div class="memdoc">
  439. <p>Get bodies intersecting with an oriented box and any hits to ioCollector. </p>
  440. <p>Implements <a class="el" href="class_broad_phase_query.html#aeec59baf944dd3f63f172dbf732768b2">BroadPhaseQuery</a>.</p>
  441. </div>
  442. </div>
  443. <a id="af8ccb4b811426b36bfb2e51e1e61b92b" name="af8ccb4b811426b36bfb2e51e1e61b92b"></a>
  444. <h2 class="memtitle"><span class="permalink"><a href="#af8ccb4b811426b36bfb2e51e1e61b92b">&#9670;&#160;</a></span>CollidePoint()</h2>
  445. <div class="memitem">
  446. <div class="memproto">
  447. <table class="mlabels">
  448. <tr>
  449. <td class="mlabels-left">
  450. <table class="memname">
  451. <tr>
  452. <td class="memname">void BroadPhaseBruteForce::CollidePoint </td>
  453. <td>(</td>
  454. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPoint</em></span>, </td>
  455. </tr>
  456. <tr>
  457. <td class="paramkey"></td>
  458. <td></td>
  459. <td class="paramtype"><a class="el" href="_broad_phase_query_8h.html#acb6931761cab44f04e48cfb6ebc7fa7b">CollideShapeBodyCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  460. </tr>
  461. <tr>
  462. <td class="paramkey"></td>
  463. <td></td>
  464. <td class="paramtype">const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBroadPhaseLayerFilter</em></span>, </td>
  465. </tr>
  466. <tr>
  467. <td class="paramkey"></td>
  468. <td></td>
  469. <td class="paramtype">const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectLayerFilter</em></span>&#160;) const</td>
  470. </tr>
  471. </table>
  472. </td>
  473. <td class="mlabels-right">
  474. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  475. </tr>
  476. </table>
  477. </div><div class="memdoc">
  478. <p>Get bodies intersecting with a point and any hits to ioCollector. </p>
  479. <p>Implements <a class="el" href="class_broad_phase_query.html#a191877420623144ad7ba7a78db56baa9">BroadPhaseQuery</a>.</p>
  480. </div>
  481. </div>
  482. <a id="a1550bc80cf969b9db8c1acc327902b00" name="a1550bc80cf969b9db8c1acc327902b00"></a>
  483. <h2 class="memtitle"><span class="permalink"><a href="#a1550bc80cf969b9db8c1acc327902b00">&#9670;&#160;</a></span>CollideSphere()</h2>
  484. <div class="memitem">
  485. <div class="memproto">
  486. <table class="mlabels">
  487. <tr>
  488. <td class="mlabels-left">
  489. <table class="memname">
  490. <tr>
  491. <td class="memname">void BroadPhaseBruteForce::CollideSphere </td>
  492. <td>(</td>
  493. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inCenter</em></span>, </td>
  494. </tr>
  495. <tr>
  496. <td class="paramkey"></td>
  497. <td></td>
  498. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inRadius</em></span>, </td>
  499. </tr>
  500. <tr>
  501. <td class="paramkey"></td>
  502. <td></td>
  503. <td class="paramtype"><a class="el" href="_broad_phase_query_8h.html#acb6931761cab44f04e48cfb6ebc7fa7b">CollideShapeBodyCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  504. </tr>
  505. <tr>
  506. <td class="paramkey"></td>
  507. <td></td>
  508. <td class="paramtype">const <a class="el" href="class_broad_phase_layer_filter.html">BroadPhaseLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBroadPhaseLayerFilter</em></span>, </td>
  509. </tr>
  510. <tr>
  511. <td class="paramkey"></td>
  512. <td></td>
  513. <td class="paramtype">const <a class="el" href="class_object_layer_filter.html">ObjectLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectLayerFilter</em></span>&#160;) const</td>
  514. </tr>
  515. </table>
  516. </td>
  517. <td class="mlabels-right">
  518. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  519. </tr>
  520. </table>
  521. </div><div class="memdoc">
  522. <p>Get bodies intersecting with a sphere and any hits to ioCollector. </p>
  523. <p>Implements <a class="el" href="class_broad_phase_query.html#afb74ce9d61cf7048e3ea8a48a2997d38">BroadPhaseQuery</a>.</p>
  524. </div>
  525. </div>
  526. <a id="a2d0f339251687a983a58b516350e93ac" name="a2d0f339251687a983a58b516350e93ac"></a>
  527. <h2 class="memtitle"><span class="permalink"><a href="#a2d0f339251687a983a58b516350e93ac">&#9670;&#160;</a></span>FindCollidingPairs()</h2>
  528. <div class="memitem">
  529. <div class="memproto">
  530. <table class="mlabels">
  531. <tr>
  532. <td class="mlabels-left">
  533. <table class="memname">
  534. <tr>
  535. <td class="memname">void BroadPhaseBruteForce::FindCollidingPairs </td>
  536. <td>(</td>
  537. <td class="paramtype"><a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>ioActiveBodies</em></span>, </td>
  538. </tr>
  539. <tr>
  540. <td class="paramkey"></td>
  541. <td></td>
  542. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumActiveBodies</em></span>, </td>
  543. </tr>
  544. <tr>
  545. <td class="paramkey"></td>
  546. <td></td>
  547. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inSpeculativeContactDistance</em></span>, </td>
  548. </tr>
  549. <tr>
  550. <td class="paramkey"></td>
  551. <td></td>
  552. <td class="paramtype">const <a class="el" href="class_object_vs_broad_phase_layer_filter.html">ObjectVsBroadPhaseLayerFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectVsBroadPhaseLayerFilter</em></span>, </td>
  553. </tr>
  554. <tr>
  555. <td class="paramkey"></td>
  556. <td></td>
  557. <td class="paramtype">const <a class="el" href="class_object_layer_pair_filter.html">ObjectLayerPairFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inObjectLayerPairFilter</em></span>, </td>
  558. </tr>
  559. <tr>
  560. <td class="paramkey"></td>
  561. <td></td>
  562. <td class="paramtype"><a class="el" href="_broad_phase_8h.html#a79c28d9ca80b345aca4b3ab03ab8f82a">BodyPairCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioPairCollector</em></span>&#160;) const</td>
  563. </tr>
  564. </table>
  565. </td>
  566. <td class="mlabels-right">
  567. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  568. </tr>
  569. </table>
  570. </div><div class="memdoc">
  571. <p>Find all colliding pairs between dynamic bodies Note that this function is very specifically tailored for the <a class="el" href="class_physics_system.html#a4cdc76b2486dfaecfc9319d040e5e5f3">PhysicsSystem::Update</a> function, hence it is not part of the <a class="el" href="class_broad_phase_query.html">BroadPhaseQuery</a> interface. One of the assumptions it can make is that no locking is needed during the query as it will only be called during a very particular part of the update. </p><dl class="params"><dt>Parameters</dt><dd>
  572. <table class="params">
  573. <tr><td class="paramname">ioActiveBodies</td><td>is a list of bodies for which we need to find colliding pairs (this function can change the order of the ioActiveBodies array). This can be a subset of the set of active bodies in the system. </td></tr>
  574. <tr><td class="paramname">inNumActiveBodies</td><td>is the size of the ioActiveBodies array. </td></tr>
  575. <tr><td class="paramname">inSpeculativeContactDistance</td><td>Distance at which speculative contact points will be created. </td></tr>
  576. <tr><td class="paramname">inObjectVsBroadPhaseLayerFilter</td><td>is the filter that determines if an object can collide with a broadphase layer. </td></tr>
  577. <tr><td class="paramname">inObjectLayerPairFilter</td><td>is the filter that determines if two objects can collide. </td></tr>
  578. <tr><td class="paramname">ioPairCollector</td><td>receives callbacks for every body pair found. </td></tr>
  579. </table>
  580. </dd>
  581. </dl>
  582. <p>Implements <a class="el" href="class_broad_phase.html#aecd92cc792c15c624b97eeeac11cc468">BroadPhase</a>.</p>
  583. </div>
  584. </div>
  585. <a id="a64c0008d13703a25a0bfb3f3d1556f5d" name="a64c0008d13703a25a0bfb3f3d1556f5d"></a>
  586. <h2 class="memtitle"><span class="permalink"><a href="#a64c0008d13703a25a0bfb3f3d1556f5d">&#9670;&#160;</a></span>GetBounds()</h2>
  587. <div class="memitem">
  588. <div class="memproto">
  589. <table class="mlabels">
  590. <tr>
  591. <td class="mlabels-left">
  592. <table class="memname">
  593. <tr>
  594. <td class="memname"><a class="el" href="class_a_a_box.html">AABox</a> BroadPhaseBruteForce::GetBounds </td>
  595. <td>(</td>
  596. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  597. <td> const</td>
  598. </tr>
  599. </table>
  600. </td>
  601. <td class="mlabels-right">
  602. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  603. </tr>
  604. </table>
  605. </div><div class="memdoc">
  606. <p>Get the bounding box of all objects in the broadphase. </p>
  607. <p>Implements <a class="el" href="class_broad_phase_query.html#aa045e4032cda405021f6a36dbe3ad5dc">BroadPhaseQuery</a>.</p>
  608. </div>
  609. </div>
  610. <a id="a59e4b801e711b42da8018c7f9e8362be" name="a59e4b801e711b42da8018c7f9e8362be"></a>
  611. <h2 class="memtitle"><span class="permalink"><a href="#a59e4b801e711b42da8018c7f9e8362be">&#9670;&#160;</a></span>NotifyBodiesAABBChanged()</h2>
  612. <div class="memitem">
  613. <div class="memproto">
  614. <table class="mlabels">
  615. <tr>
  616. <td class="mlabels-left">
  617. <table class="memname">
  618. <tr>
  619. <td class="memname">void BroadPhaseBruteForce::NotifyBodiesAABBChanged </td>
  620. <td>(</td>
  621. <td class="paramtype"><a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>ioBodies</em></span>, </td>
  622. </tr>
  623. <tr>
  624. <td class="paramkey"></td>
  625. <td></td>
  626. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>, </td>
  627. </tr>
  628. <tr>
  629. <td class="paramkey"></td>
  630. <td></td>
  631. <td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>inTakeLock</em></span>&#160;)</td>
  632. </tr>
  633. </table>
  634. </td>
  635. <td class="mlabels-right">
  636. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  637. </tr>
  638. </table>
  639. </div><div class="memdoc">
  640. <p>Call whenever the aabb of a body changes (can change order of ioBodies array) inTakeLock should be false if we're between LockModifications/UnlockModifications, in which case care needs to be taken to not call this between UpdatePrepare/UpdateFinalize </p>
  641. <p>Implements <a class="el" href="class_broad_phase.html#a1a88ea16a35689cad897fcffa428a2ed">BroadPhase</a>.</p>
  642. </div>
  643. </div>
  644. <a id="a533303a0786892359c0e2e64ac4371cc" name="a533303a0786892359c0e2e64ac4371cc"></a>
  645. <h2 class="memtitle"><span class="permalink"><a href="#a533303a0786892359c0e2e64ac4371cc">&#9670;&#160;</a></span>NotifyBodiesLayerChanged()</h2>
  646. <div class="memitem">
  647. <div class="memproto">
  648. <table class="mlabels">
  649. <tr>
  650. <td class="mlabels-left">
  651. <table class="memname">
  652. <tr>
  653. <td class="memname">void BroadPhaseBruteForce::NotifyBodiesLayerChanged </td>
  654. <td>(</td>
  655. <td class="paramtype"><a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>ioBodies</em></span>, </td>
  656. </tr>
  657. <tr>
  658. <td class="paramkey"></td>
  659. <td></td>
  660. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>&#160;)</td>
  661. </tr>
  662. </table>
  663. </td>
  664. <td class="mlabels-right">
  665. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  666. </tr>
  667. </table>
  668. </div><div class="memdoc">
  669. <p>Call whenever the layer (and optionally the aabb as well) of a body changes (can change order of ioBodies array) </p>
  670. <p>Implements <a class="el" href="class_broad_phase.html#a9acfe24c8f30529d412a26174dba503c">BroadPhase</a>.</p>
  671. </div>
  672. </div>
  673. <a id="a488f130c96e125ae1b0dda672d805f65" name="a488f130c96e125ae1b0dda672d805f65"></a>
  674. <h2 class="memtitle"><span class="permalink"><a href="#a488f130c96e125ae1b0dda672d805f65">&#9670;&#160;</a></span>RemoveBodies()</h2>
  675. <div class="memitem">
  676. <div class="memproto">
  677. <table class="mlabels">
  678. <tr>
  679. <td class="mlabels-left">
  680. <table class="memname">
  681. <tr>
  682. <td class="memname">void BroadPhaseBruteForce::RemoveBodies </td>
  683. <td>(</td>
  684. <td class="paramtype"><a class="el" href="class_body_i_d.html">BodyID</a> *</td> <td class="paramname"><span class="paramname"><em>ioBodies</em></span>, </td>
  685. </tr>
  686. <tr>
  687. <td class="paramkey"></td>
  688. <td></td>
  689. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumber</em></span>&#160;)</td>
  690. </tr>
  691. </table>
  692. </td>
  693. <td class="mlabels-right">
  694. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  695. </tr>
  696. </table>
  697. </div><div class="memdoc">
  698. <p>Remove inNumber bodies in ioBodies from the broadphase. ioBodies may be shuffled around by this function. </p>
  699. <p>Implements <a class="el" href="class_broad_phase.html#adfcebfeb40995d6a122dd53730eec6fd">BroadPhase</a>.</p>
  700. </div>
  701. </div>
  702. <hr/>The documentation for this class was generated from the following files:<ul>
  703. <li>Jolt/Physics/Collision/BroadPhase/<a class="el" href="_broad_phase_brute_force_8h_source.html">BroadPhaseBruteForce.h</a></li>
  704. <li>Jolt/Physics/Collision/BroadPhase/<a class="el" href="_broad_phase_brute_force_8cpp.html">BroadPhaseBruteForce.cpp</a></li>
  705. </ul>
  706. </div><!-- contents -->
  707. </div><!-- doc-content -->
  708. <!-- start footer part -->
  709. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  710. <ul>
  711. <li class="navelem"><a class="el" href="class_broad_phase_brute_force.html">BroadPhaseBruteForce</a></li>
  712. <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>
  713. </ul>
  714. </div>
  715. </body>
  716. </html>