class_internal_edge_removing_collector.html 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  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: InternalEdgeRemovingCollector 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_internal_edge_removing_collector.html',''); initResizable(true); });
  83. /* @license-end */
  84. </script>
  85. <div id="doc-content">
  86. <!-- window showing the filter options -->
  87. <div id="MSearchSelectWindow"
  88. onmouseover="return searchBox.OnSearchSelectShow()"
  89. onmouseout="return searchBox.OnSearchSelectHide()"
  90. onkeydown="return searchBox.OnSearchSelectKey(event)">
  91. </div>
  92. <!-- iframe showing the search results (closed by default) -->
  93. <div id="MSearchResultsWindow">
  94. <div id="MSearchResults">
  95. <div class="SRPage">
  96. <div id="SRIndex">
  97. <div id="SRResults"></div>
  98. <div class="SRStatus" id="Loading">Loading...</div>
  99. <div class="SRStatus" id="Searching">Searching...</div>
  100. <div class="SRStatus" id="NoMatches">No Matches</div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="header">
  106. <div class="summary">
  107. <a href="#pub-methods">Public Member Functions</a> &#124;
  108. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  109. <a href="class_internal_edge_removing_collector-members.html">List of all members</a> </div>
  110. <div class="headertitle"><div class="title">InternalEdgeRemovingCollector Class Reference</div></div>
  111. </div><!--header-->
  112. <div class="contents">
  113. <p><code>#include &lt;<a class="el" href="_internal_edge_removing_collector_8h_source.html">InternalEdgeRemovingCollector.h</a>&gt;</code></p>
  114. <div class="dynheader">
  115. Inheritance diagram for InternalEdgeRemovingCollector:</div>
  116. <div class="dyncontent">
  117. <div class="center">
  118. <img src="class_internal_edge_removing_collector.png" usemap="#InternalEdgeRemovingCollector_map" alt=""/>
  119. <map id="InternalEdgeRemovingCollector_map" name="InternalEdgeRemovingCollector_map">
  120. <area href="class_collision_collector.html" title="Virtual interface that allows collecting multiple collision results." alt="CollisionCollector&lt; ResultTypeArg, TraitsType &gt;" shape="rect" coords="0,0,458,24"/>
  121. </map>
  122. </div></div>
  123. <table class="memberdecls">
  124. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  125. Public Member Functions</h2></td></tr>
  126. <tr class="memitem:a871712a392dc701428cd3da7e872cd6d" id="r_a871712a392dc701428cd3da7e872cd6d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a871712a392dc701428cd3da7e872cd6d">InternalEdgeRemovingCollector</a> (<a class="el" href="_shape_8h.html#af33744a7638d2c8e3ba97737b069f8d2">CollideShapeCollector</a> &amp;inChainedCollector)</td></tr>
  127. <tr class="memdesc:a871712a392dc701428cd3da7e872cd6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, configures a collector to be called with all the results that do not hit internal edges. <br /></td></tr>
  128. <tr class="separator:a871712a392dc701428cd3da7e872cd6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129. <tr class="memitem:acd02ac01ebc1abbedbcaa57b73426d86" id="r_acd02ac01ebc1abbedbcaa57b73426d86"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acd02ac01ebc1abbedbcaa57b73426d86">Reset</a> () override</td></tr>
  130. <tr class="memdesc:acd02ac01ebc1abbedbcaa57b73426d86"><td class="mdescLeft">&#160;</td><td class="mdescRight">If you want to reuse this collector, call <a class="el" href="#acd02ac01ebc1abbedbcaa57b73426d86" title="If you want to reuse this collector, call Reset()">Reset()</a> <br /></td></tr>
  131. <tr class="separator:acd02ac01ebc1abbedbcaa57b73426d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:a266df30d8625b5deb67257e5d10a0f24" id="r_a266df30d8625b5deb67257e5d10a0f24"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a266df30d8625b5deb67257e5d10a0f24">OnBody</a> (const <a class="el" href="class_body.html">Body</a> &amp;inBody) override</td></tr>
  133. <tr class="separator:a266df30d8625b5deb67257e5d10a0f24"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:ad489b749cb2bacbf1596c1da229ff1a1" id="r_ad489b749cb2bacbf1596c1da229ff1a1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad489b749cb2bacbf1596c1da229ff1a1">AddHit</a> (const <a class="el" href="class_collide_shape_result.html">CollideShapeResult</a> &amp;inResult) override</td></tr>
  135. <tr class="separator:ad489b749cb2bacbf1596c1da229ff1a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:a33af5c7be55c31c27215b2bffd7d1428" id="r_a33af5c7be55c31c27215b2bffd7d1428"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a33af5c7be55c31c27215b2bffd7d1428">Flush</a> ()</td></tr>
  137. <tr class="memdesc:a33af5c7be55c31c27215b2bffd7d1428"><td class="mdescLeft">&#160;</td><td class="mdescRight">After all hits have been added, call this function to process the delayed results. <br /></td></tr>
  138. <tr class="separator:a33af5c7be55c31c27215b2bffd7d1428"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:adb382361c8640ce8aa172c4095f75498" id="r_adb382361c8640ce8aa172c4095f75498"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adb382361c8640ce8aa172c4095f75498">OnBodyEnd</a> () override</td></tr>
  140. <tr class="memdesc:adb382361c8640ce8aa172c4095f75498"><td class="mdescLeft">&#160;</td><td class="mdescRight">When running a query through the <a class="el" href="class_narrow_phase_query.html">NarrowPhaseQuery</a> class, this will be called after all AddHit calls have been made for a particular body. <br /></td></tr>
  141. <tr class="separator:adb382361c8640ce8aa172c4095f75498"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="inherit_header pub_methods_class_collision_collector"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_collision_collector')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_collision_collector.html">CollisionCollector&lt; ResultTypeArg, TraitsType &gt;</a></td></tr>
  143. <tr class="memitem:a1da599bacd865c579f31e64676e36206 inherit pub_methods_class_collision_collector" id="r_a1da599bacd865c579f31e64676e36206"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#a1da599bacd865c579f31e64676e36206">CollisionCollector</a> ()=default</td></tr>
  144. <tr class="memdesc:a1da599bacd865c579f31e64676e36206 inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
  145. <tr class="separator:a1da599bacd865c579f31e64676e36206 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. <tr class="memitem:a7d7b02e890a7ea24b0030027ce4851f9 inherit pub_methods_class_collision_collector" id="r_a7d7b02e890a7ea24b0030027ce4851f9"><td class="memTemplParams" colspan="2">template&lt;class ResultTypeArg2 &gt; </td></tr>
  147. <tr class="memitem:a7d7b02e890a7ea24b0030027ce4851f9 inherit pub_methods_class_collision_collector"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#a7d7b02e890a7ea24b0030027ce4851f9">CollisionCollector</a> (const <a class="el" href="class_collision_collector.html">CollisionCollector</a>&lt; ResultTypeArg2, TraitsType &gt; &amp;inRHS)</td></tr>
  148. <tr class="memdesc:a7d7b02e890a7ea24b0030027ce4851f9 inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor to initialize from another collector. <br /></td></tr>
  149. <tr class="separator:a7d7b02e890a7ea24b0030027ce4851f9 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:a9ece66bb7cac504d660f412ded03e024 inherit pub_methods_class_collision_collector" id="r_a9ece66bb7cac504d660f412ded03e024"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#a9ece66bb7cac504d660f412ded03e024">CollisionCollector</a> (const <a class="el" href="class_collision_collector.html">CollisionCollector</a>&lt; ResultTypeArg, TraitsType &gt; &amp;inRHS)=default</td></tr>
  151. <tr class="separator:a9ece66bb7cac504d660f412ded03e024 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:a428497d94c0d54c4fb4e7ce6a016fc0d inherit pub_methods_class_collision_collector" id="r_a428497d94c0d54c4fb4e7ce6a016fc0d"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#a428497d94c0d54c4fb4e7ce6a016fc0d">~CollisionCollector</a> ()=default</td></tr>
  153. <tr class="memdesc:a428497d94c0d54c4fb4e7ce6a016fc0d inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
  154. <tr class="separator:a428497d94c0d54c4fb4e7ce6a016fc0d inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  155. <tr class="memitem:ada5357990f959132a05d4d4d21f8c7b3 inherit pub_methods_class_collision_collector" id="r_ada5357990f959132a05d4d4d21f8c7b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#ada5357990f959132a05d4d4d21f8c7b3">SetContext</a> (const <a class="el" href="class_transformed_shape.html">TransformedShape</a> *inContext)</td></tr>
  156. <tr class="separator:ada5357990f959132a05d4d4d21f8c7b3 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  157. <tr class="memitem:ab9bfe5f6799afc12509d8dbad2c5b90b inherit pub_methods_class_collision_collector" id="r_ab9bfe5f6799afc12509d8dbad2c5b90b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_transformed_shape.html">TransformedShape</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#ab9bfe5f6799afc12509d8dbad2c5b90b">GetContext</a> () const</td></tr>
  158. <tr class="separator:ab9bfe5f6799afc12509d8dbad2c5b90b inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr class="memitem:aefb07c8a9dd625efefeb0f37ee2957d6 inherit pub_methods_class_collision_collector" id="r_aefb07c8a9dd625efefeb0f37ee2957d6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#aefb07c8a9dd625efefeb0f37ee2957d6">SetUserData</a> (<a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> inUserData)</td></tr>
  160. <tr class="memdesc:aefb07c8a9dd625efefeb0f37ee2957d6 inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function can be used to set some user data on the collision collector. <br /></td></tr>
  161. <tr class="separator:aefb07c8a9dd625efefeb0f37ee2957d6 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:a762c35402676662897e50dd8224e496e inherit pub_methods_class_collision_collector" id="r_a762c35402676662897e50dd8224e496e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#a762c35402676662897e50dd8224e496e">AddHit</a> (const <a class="el" href="class_collision_collector.html#aca5d333c728a1e1768694c8845d86783">ResultType</a> &amp;inResult)=0</td></tr>
  163. <tr class="memdesc:a762c35402676662897e50dd8224e496e inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function will be called for every hit found, it's up to the application to decide how to store the hit. <br /></td></tr>
  164. <tr class="separator:a762c35402676662897e50dd8224e496e inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  165. <tr class="memitem:ac46233c07f2d69db516879fbbcef8be1 inherit pub_methods_class_collision_collector" id="r_ac46233c07f2d69db516879fbbcef8be1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#ac46233c07f2d69db516879fbbcef8be1">UpdateEarlyOutFraction</a> (float inFraction)</td></tr>
  166. <tr class="memdesc:ac46233c07f2d69db516879fbbcef8be1 inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the early out fraction (should be lower than before) <br /></td></tr>
  167. <tr class="separator:ac46233c07f2d69db516879fbbcef8be1 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:a07e4d9859fe39cfde6674ebb3ece445a inherit pub_methods_class_collision_collector" id="r_a07e4d9859fe39cfde6674ebb3ece445a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#a07e4d9859fe39cfde6674ebb3ece445a">ResetEarlyOutFraction</a> (float inFraction=TraitsType::InitialEarlyOutFraction)</td></tr>
  169. <tr class="memdesc:a07e4d9859fe39cfde6674ebb3ece445a inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the early out fraction to a specific value. <br /></td></tr>
  170. <tr class="separator:a07e4d9859fe39cfde6674ebb3ece445a inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171. <tr class="memitem:a04a9260170d7c96389b50c6f6843c8b5 inherit pub_methods_class_collision_collector" id="r_a04a9260170d7c96389b50c6f6843c8b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#a04a9260170d7c96389b50c6f6843c8b5">ForceEarlyOut</a> ()</td></tr>
  172. <tr class="memdesc:a04a9260170d7c96389b50c6f6843c8b5 inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Force the collision detection algorithm to terminate as soon as possible. Call this from the AddHit function when a satisfying hit is found. <br /></td></tr>
  173. <tr class="separator:a04a9260170d7c96389b50c6f6843c8b5 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <tr class="memitem:a45cb1cfbb5ec957d3c66b65d2333d825 inherit pub_methods_class_collision_collector" id="r_a45cb1cfbb5ec957d3c66b65d2333d825"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#a45cb1cfbb5ec957d3c66b65d2333d825">ShouldEarlyOut</a> () const</td></tr>
  175. <tr class="memdesc:a45cb1cfbb5ec957d3c66b65d2333d825 inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">When true, the collector will no longer accept any additional hits and the collision detection routine should early out as soon as possible. <br /></td></tr>
  176. <tr class="separator:a45cb1cfbb5ec957d3c66b65d2333d825 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  177. <tr class="memitem:ab972bb0e68e602c5eea898dfb7166d07 inherit pub_methods_class_collision_collector" id="r_ab972bb0e68e602c5eea898dfb7166d07"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#ab972bb0e68e602c5eea898dfb7166d07">GetEarlyOutFraction</a> () const</td></tr>
  178. <tr class="memdesc:ab972bb0e68e602c5eea898dfb7166d07 inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current early out value. <br /></td></tr>
  179. <tr class="separator:ab972bb0e68e602c5eea898dfb7166d07 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <tr class="memitem:aeb1fb262127298ec8bc296ead30a2e77 inherit pub_methods_class_collision_collector" id="r_aeb1fb262127298ec8bc296ead30a2e77"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#aeb1fb262127298ec8bc296ead30a2e77">GetPositiveEarlyOutFraction</a> () const</td></tr>
  181. <tr class="memdesc:aeb1fb262127298ec8bc296ead30a2e77 inherit pub_methods_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current early out value but make sure it's bigger than zero, this is used for shape casting as negative values are used for penetration. <br /></td></tr>
  182. <tr class="separator:aeb1fb262127298ec8bc296ead30a2e77 inherit pub_methods_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  183. </table><table class="memberdecls">
  184. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  185. Static Public Member Functions</h2></td></tr>
  186. <tr class="memitem:ab96c83ce814ad885a981906891300497" id="r_ab96c83ce814ad885a981906891300497"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab96c83ce814ad885a981906891300497">sCollideShapeVsShape</a> (const <a class="el" href="class_shape.html">Shape</a> *inShape1, const <a class="el" href="class_shape.html">Shape</a> *inShape2, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale1, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale2, <a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform1, <a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform2, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inSubShapeIDCreator1, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inSubShapeIDCreator2, const <a class="el" href="class_collide_shape_settings.html">CollideShapeSettings</a> &amp;inCollideShapeSettings, <a class="el" href="_shape_8h.html#af33744a7638d2c8e3ba97737b069f8d2">CollideShapeCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter={ })</td></tr>
  187. <tr class="memdesc:ab96c83ce814ad885a981906891300497"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version of <a class="el" href="class_collision_dispatch.html#a29634d08db5d24ce7c0d5c44b547c075">CollisionDispatch::sCollideShapeVsShape</a> that removes internal edges. <br /></td></tr>
  188. <tr class="separator:ab96c83ce814ad885a981906891300497"><td class="memSeparator" colspan="2">&#160;</td></tr>
  189. </table><table class="memberdecls">
  190. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
  191. Additional Inherited Members</h2></td></tr>
  192. <tr class="inherit_header pub_types_class_collision_collector"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_types_class_collision_collector')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="class_collision_collector.html">CollisionCollector&lt; ResultTypeArg, TraitsType &gt;</a></td></tr>
  193. <tr class="memitem:aca5d333c728a1e1768694c8845d86783 inherit pub_types_class_collision_collector" id="r_aca5d333c728a1e1768694c8845d86783"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_collector.html#aca5d333c728a1e1768694c8845d86783">ResultType</a> = ResultTypeArg</td></tr>
  194. <tr class="memdesc:aca5d333c728a1e1768694c8845d86783 inherit pub_types_class_collision_collector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declare ResultType so that derived classes can use it. <br /></td></tr>
  195. <tr class="separator:aca5d333c728a1e1768694c8845d86783 inherit pub_types_class_collision_collector"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. </table>
  197. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  198. <div class="textblock"><p>Removes internal edges from collision results. Can be used to filter out 'ghost collisions'. Based on: Contact generation for meshes - Pierre Terdiman (<a href="https://www.codercorner.com/MeshContacts.pdf">https://www.codercorner.com/MeshContacts.pdf</a>)</p>
  199. <p>Note that this class requires that <a class="el" href="class_collide_settings_base.html#a15b85d50667172c651f917096a99a54e" title="How active edges (edges that a moving object should bump into) are handled.">CollideSettingsBase::mActiveEdgeMode</a> == <a class="el" href="_active_edge_mode_8h.html#a4405632c58efc7502bf1295038080183a48ac126dfa7b1b9eeeb736b03305ad48" title="Collide with all edges. Use this when you&#39;re interested in all collisions.">EActiveEdgeMode::CollideWithAll</a> and <a class="el" href="class_collide_settings_base.html#a0c9c32e2267f57dcc73952e3469512bd" title="If colliding faces should be collected or only the collision point.">CollideSettingsBase::mCollectFacesMode</a> == <a class="el" href="_collect_faces_mode_8h.html#a43f9b52c7b53fe169fd83842e75935b6a745d09152cc2f19f8d94f805226bae7e" title="mShape1/2Face is desired">ECollectFacesMode::CollectFaces</a>. </p>
  200. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  201. <a id="a871712a392dc701428cd3da7e872cd6d" name="a871712a392dc701428cd3da7e872cd6d"></a>
  202. <h2 class="memtitle"><span class="permalink"><a href="#a871712a392dc701428cd3da7e872cd6d">&#9670;&#160;</a></span>InternalEdgeRemovingCollector()</h2>
  203. <div class="memitem">
  204. <div class="memproto">
  205. <table class="mlabels">
  206. <tr>
  207. <td class="mlabels-left">
  208. <table class="memname">
  209. <tr>
  210. <td class="memname">InternalEdgeRemovingCollector::InternalEdgeRemovingCollector </td>
  211. <td>(</td>
  212. <td class="paramtype"><a class="el" href="_shape_8h.html#af33744a7638d2c8e3ba97737b069f8d2">CollideShapeCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inChainedCollector</em></span></td><td>)</td>
  213. <td></td>
  214. </tr>
  215. </table>
  216. </td>
  217. <td class="mlabels-right">
  218. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
  219. </tr>
  220. </table>
  221. </div><div class="memdoc">
  222. <p>Constructor, configures a collector to be called with all the results that do not hit internal edges. </p>
  223. </div>
  224. </div>
  225. <h2 class="groupheader">Member Function Documentation</h2>
  226. <a id="ad489b749cb2bacbf1596c1da229ff1a1" name="ad489b749cb2bacbf1596c1da229ff1a1"></a>
  227. <h2 class="memtitle"><span class="permalink"><a href="#ad489b749cb2bacbf1596c1da229ff1a1">&#9670;&#160;</a></span>AddHit()</h2>
  228. <div class="memitem">
  229. <div class="memproto">
  230. <table class="mlabels">
  231. <tr>
  232. <td class="mlabels-left">
  233. <table class="memname">
  234. <tr>
  235. <td class="memname">virtual void InternalEdgeRemovingCollector::AddHit </td>
  236. <td>(</td>
  237. <td class="paramtype">const <a class="el" href="class_collide_shape_result.html">CollideShapeResult</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inResult</em></span></td><td>)</td>
  238. <td></td>
  239. </tr>
  240. </table>
  241. </td>
  242. <td class="mlabels-right">
  243. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  244. </tr>
  245. </table>
  246. </div><div class="memdoc">
  247. </div>
  248. </div>
  249. <a id="a33af5c7be55c31c27215b2bffd7d1428" name="a33af5c7be55c31c27215b2bffd7d1428"></a>
  250. <h2 class="memtitle"><span class="permalink"><a href="#a33af5c7be55c31c27215b2bffd7d1428">&#9670;&#160;</a></span>Flush()</h2>
  251. <div class="memitem">
  252. <div class="memproto">
  253. <table class="mlabels">
  254. <tr>
  255. <td class="mlabels-left">
  256. <table class="memname">
  257. <tr>
  258. <td class="memname">void InternalEdgeRemovingCollector::Flush </td>
  259. <td>(</td>
  260. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  261. <td></td>
  262. </tr>
  263. </table>
  264. </td>
  265. <td class="mlabels-right">
  266. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  267. </tr>
  268. </table>
  269. </div><div class="memdoc">
  270. <p>After all hits have been added, call this function to process the delayed results. </p>
  271. </div>
  272. </div>
  273. <a id="a266df30d8625b5deb67257e5d10a0f24" name="a266df30d8625b5deb67257e5d10a0f24"></a>
  274. <h2 class="memtitle"><span class="permalink"><a href="#a266df30d8625b5deb67257e5d10a0f24">&#9670;&#160;</a></span>OnBody()</h2>
  275. <div class="memitem">
  276. <div class="memproto">
  277. <table class="mlabels">
  278. <tr>
  279. <td class="mlabels-left">
  280. <table class="memname">
  281. <tr>
  282. <td class="memname">virtual void InternalEdgeRemovingCollector::OnBody </td>
  283. <td>(</td>
  284. <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><td>)</td>
  285. <td></td>
  286. </tr>
  287. </table>
  288. </td>
  289. <td class="mlabels-right">
  290. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  291. </tr>
  292. </table>
  293. </div><div class="memdoc">
  294. <p>When running a query through the <a class="el" href="class_narrow_phase_query.html">NarrowPhaseQuery</a> class, this will be called for every body that is potentially colliding. It allows collecting additional information needed by the collision collector implementation from the body under lock protection before AddHit is called (e.g. the user data pointer or the velocity of the body). </p>
  295. <p>Reimplemented from <a class="el" href="class_collision_collector.html#ac2986bb5d0b4f6147d2507571ee3a014">CollisionCollector&lt; ResultTypeArg, TraitsType &gt;</a>.</p>
  296. </div>
  297. </div>
  298. <a id="adb382361c8640ce8aa172c4095f75498" name="adb382361c8640ce8aa172c4095f75498"></a>
  299. <h2 class="memtitle"><span class="permalink"><a href="#adb382361c8640ce8aa172c4095f75498">&#9670;&#160;</a></span>OnBodyEnd()</h2>
  300. <div class="memitem">
  301. <div class="memproto">
  302. <table class="mlabels">
  303. <tr>
  304. <td class="mlabels-left">
  305. <table class="memname">
  306. <tr>
  307. <td class="memname">virtual void InternalEdgeRemovingCollector::OnBodyEnd </td>
  308. <td>(</td>
  309. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  310. <td></td>
  311. </tr>
  312. </table>
  313. </td>
  314. <td class="mlabels-right">
  315. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  316. </tr>
  317. </table>
  318. </div><div class="memdoc">
  319. <p>When running a query through the <a class="el" href="class_narrow_phase_query.html">NarrowPhaseQuery</a> class, this will be called after all AddHit calls have been made for a particular body. </p>
  320. <p>Reimplemented from <a class="el" href="class_collision_collector.html#ae5d038bd6a96af9c55fb49623fbd31ba">CollisionCollector&lt; ResultTypeArg, TraitsType &gt;</a>.</p>
  321. </div>
  322. </div>
  323. <a id="acd02ac01ebc1abbedbcaa57b73426d86" name="acd02ac01ebc1abbedbcaa57b73426d86"></a>
  324. <h2 class="memtitle"><span class="permalink"><a href="#acd02ac01ebc1abbedbcaa57b73426d86">&#9670;&#160;</a></span>Reset()</h2>
  325. <div class="memitem">
  326. <div class="memproto">
  327. <table class="mlabels">
  328. <tr>
  329. <td class="mlabels-left">
  330. <table class="memname">
  331. <tr>
  332. <td class="memname">virtual void InternalEdgeRemovingCollector::Reset </td>
  333. <td>(</td>
  334. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  335. <td></td>
  336. </tr>
  337. </table>
  338. </td>
  339. <td class="mlabels-right">
  340. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
  341. </tr>
  342. </table>
  343. </div><div class="memdoc">
  344. <p>If you want to reuse this collector, call <a class="el" href="#acd02ac01ebc1abbedbcaa57b73426d86" title="If you want to reuse this collector, call Reset()">Reset()</a> </p>
  345. <p>Reimplemented from <a class="el" href="class_collision_collector.html#a77f6668a80319dfb85f68b97c7b6d103">CollisionCollector&lt; ResultTypeArg, TraitsType &gt;</a>.</p>
  346. </div>
  347. </div>
  348. <a id="ab96c83ce814ad885a981906891300497" name="ab96c83ce814ad885a981906891300497"></a>
  349. <h2 class="memtitle"><span class="permalink"><a href="#ab96c83ce814ad885a981906891300497">&#9670;&#160;</a></span>sCollideShapeVsShape()</h2>
  350. <div class="memitem">
  351. <div class="memproto">
  352. <table class="mlabels">
  353. <tr>
  354. <td class="mlabels-left">
  355. <table class="memname">
  356. <tr>
  357. <td class="memname">static void InternalEdgeRemovingCollector::sCollideShapeVsShape </td>
  358. <td>(</td>
  359. <td class="paramtype">const <a class="el" href="class_shape.html">Shape</a> *</td> <td class="paramname"><span class="paramname"><em>inShape1</em></span>, </td>
  360. </tr>
  361. <tr>
  362. <td class="paramkey"></td>
  363. <td></td>
  364. <td class="paramtype">const <a class="el" href="class_shape.html">Shape</a> *</td> <td class="paramname"><span class="paramname"><em>inShape2</em></span>, </td>
  365. </tr>
  366. <tr>
  367. <td class="paramkey"></td>
  368. <td></td>
  369. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inScale1</em></span>, </td>
  370. </tr>
  371. <tr>
  372. <td class="paramkey"></td>
  373. <td></td>
  374. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inScale2</em></span>, </td>
  375. </tr>
  376. <tr>
  377. <td class="paramkey"></td>
  378. <td></td>
  379. <td class="paramtype"><a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a></td> <td class="paramname"><span class="paramname"><em>inCenterOfMassTransform1</em></span>, </td>
  380. </tr>
  381. <tr>
  382. <td class="paramkey"></td>
  383. <td></td>
  384. <td class="paramtype"><a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a></td> <td class="paramname"><span class="paramname"><em>inCenterOfMassTransform2</em></span>, </td>
  385. </tr>
  386. <tr>
  387. <td class="paramkey"></td>
  388. <td></td>
  389. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeIDCreator1</em></span>, </td>
  390. </tr>
  391. <tr>
  392. <td class="paramkey"></td>
  393. <td></td>
  394. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeIDCreator2</em></span>, </td>
  395. </tr>
  396. <tr>
  397. <td class="paramkey"></td>
  398. <td></td>
  399. <td class="paramtype">const <a class="el" href="class_collide_shape_settings.html">CollideShapeSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inCollideShapeSettings</em></span>, </td>
  400. </tr>
  401. <tr>
  402. <td class="paramkey"></td>
  403. <td></td>
  404. <td class="paramtype"><a class="el" href="_shape_8h.html#af33744a7638d2c8e3ba97737b069f8d2">CollideShapeCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  405. </tr>
  406. <tr>
  407. <td class="paramkey"></td>
  408. <td></td>
  409. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{&#160;}</span>&#160;)</td>
  410. </tr>
  411. </table>
  412. </td>
  413. <td class="mlabels-right">
  414. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  415. </tr>
  416. </table>
  417. </div><div class="memdoc">
  418. <p>Version of <a class="el" href="class_collision_dispatch.html#a29634d08db5d24ce7c0d5c44b547c075">CollisionDispatch::sCollideShapeVsShape</a> that removes internal edges. </p>
  419. </div>
  420. </div>
  421. <hr/>The documentation for this class was generated from the following file:<ul>
  422. <li>Jolt/Physics/Collision/<a class="el" href="_internal_edge_removing_collector_8h_source.html">InternalEdgeRemovingCollector.h</a></li>
  423. </ul>
  424. </div><!-- contents -->
  425. </div><!-- doc-content -->
  426. <!-- start footer part -->
  427. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  428. <ul>
  429. <li class="navelem"><a class="el" href="class_internal_edge_removing_collector.html">InternalEdgeRemovingCollector</a></li>
  430. <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>
  431. </ul>
  432. </div>
  433. </body>
  434. </html>