class_e_p_a_convex_hull_builder.html 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649
  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: EPAConvexHullBuilder 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_e_p_a_convex_hull_builder.html',''); initResizable(true); });
  83. /* @license-end */
  84. </script>
  85. <div id="doc-content">
  86. <!-- window showing the filter options -->
  87. <div id="MSearchSelectWindow"
  88. onmouseover="return searchBox.OnSearchSelectShow()"
  89. onmouseout="return searchBox.OnSearchSelectHide()"
  90. onkeydown="return searchBox.OnSearchSelectKey(event)">
  91. </div>
  92. <!-- iframe showing the search results (closed by default) -->
  93. <div id="MSearchResultsWindow">
  94. <div id="MSearchResults">
  95. <div class="SRPage">
  96. <div id="SRIndex">
  97. <div id="SRResults"></div>
  98. <div class="SRStatus" id="Loading">Loading...</div>
  99. <div class="SRStatus" id="Searching">Searching...</div>
  100. <div class="SRStatus" id="NoMatches">No Matches</div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="header">
  106. <div class="summary">
  107. <a href="#nested-classes">Classes</a> &#124;
  108. <a href="#pub-types">Public Types</a> &#124;
  109. <a href="#pub-methods">Public Member Functions</a> &#124;
  110. <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
  111. <a href="class_e_p_a_convex_hull_builder-members.html">List of all members</a> </div>
  112. <div class="headertitle"><div class="title">EPAConvexHullBuilder Class Reference</div></div>
  113. </div><!--header-->
  114. <div class="contents">
  115. <p>A convex hull builder specifically made for the EPA penetration depth calculation. It trades accuracy for speed and will simply abort of the hull forms defects due to numerical precision problems.
  116. <a href="#details">More...</a></p>
  117. <p><code>#include &lt;<a class="el" href="_e_p_a_convex_hull_builder_8h_source.html">EPAConvexHullBuilder.h</a>&gt;</code></p>
  118. <div class="dynheader">
  119. Inheritance diagram for EPAConvexHullBuilder:</div>
  120. <div class="dyncontent">
  121. <div class="center">
  122. <img src="class_e_p_a_convex_hull_builder.png" usemap="#EPAConvexHullBuilder_map" alt=""/>
  123. <map id="EPAConvexHullBuilder_map" name="EPAConvexHullBuilder_map">
  124. <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,142,24"/>
  125. </map>
  126. </div></div>
  127. <table class="memberdecls">
  128. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
  129. Classes</h2></td></tr>
  130. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_edge.html">Edge</a></td></tr>
  131. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that holds the information of an edge. <a href="class_e_p_a_convex_hull_builder_1_1_edge.html#details">More...</a><br /></td></tr>
  132. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_points.html">Points</a></td></tr>
  134. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialized points list that allows direct access to the size. <a href="class_e_p_a_convex_hull_builder_1_1_points.html#details">More...</a><br /></td></tr>
  135. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a></td></tr>
  137. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that holds the information of one triangle. <a href="class_e_p_a_convex_hull_builder_1_1_triangle.html#details">More...</a><br /></td></tr>
  138. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle_factory.html">TriangleFactory</a></td></tr>
  140. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_factory.html" title="This class is responsible for creating instances of classes based on their name or hash and is mainly...">Factory</a> that creates triangles in a fixed size buffer. <a href="class_e_p_a_convex_hull_builder_1_1_triangle_factory.html#details">More...</a><br /></td></tr>
  141. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle_queue.html">TriangleQueue</a></td></tr>
  143. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialized triangles list that keeps them sorted on closest distance to origin. <a href="class_e_p_a_convex_hull_builder_1_1_triangle_queue.html#details">More...</a><br /></td></tr>
  144. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  145. </table><table class="memberdecls">
  146. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
  147. Public Types</h2></td></tr>
  148. <tr class="memitem:a469e8ddcebb3e76c06176c9580fc186e" id="r_a469e8ddcebb3e76c06176c9580fc186e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a469e8ddcebb3e76c06176c9580fc186e">Edges</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_e_p_a_convex_hull_builder_1_1_edge.html">Edge</a>, <a class="el" href="#a745bd64c5b95a736c502901a1bd3d7c0">cMaxEdgeLength</a>&gt;</td></tr>
  149. <tr class="separator:a469e8ddcebb3e76c06176c9580fc186e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:a3fd1bd39cc8988421b7d756fc717ce82" id="r_a3fd1bd39cc8988421b7d756fc717ce82"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3fd1bd39cc8988421b7d756fc717ce82">NewTriangles</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *, <a class="el" href="#a745bd64c5b95a736c502901a1bd3d7c0">cMaxEdgeLength</a>&gt;</td></tr>
  151. <tr class="separator:a3fd1bd39cc8988421b7d756fc717ce82"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:a68f076aa07f0793b45b88b34ebbf493f" id="r_a68f076aa07f0793b45b88b34ebbf493f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a68f076aa07f0793b45b88b34ebbf493f">PointsBase</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_vec3.html">Vec3</a>, <a class="el" href="#a6968898ef16408b14c1000bebf2f2576">cMaxPoints</a>&gt;</td></tr>
  153. <tr class="separator:a68f076aa07f0793b45b88b34ebbf493f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:aea0c331a90c44fd535337c5d0841103e" id="r_aea0c331a90c44fd535337c5d0841103e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aea0c331a90c44fd535337c5d0841103e">Triangles</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *, <a class="el" href="#a4513da2adce7a49aff9314455b8e669d">cMaxTriangles</a>&gt;</td></tr>
  155. <tr class="separator:aea0c331a90c44fd535337c5d0841103e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. </table><table class="memberdecls">
  157. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  158. Public Member Functions</h2></td></tr>
  159. <tr class="memitem:ae55b89fd27a0cab9a97a1475245dec9d" id="r_ae55b89fd27a0cab9a97a1475245dec9d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae55b89fd27a0cab9a97a1475245dec9d">EPAConvexHullBuilder</a> (const <a class="el" href="class_e_p_a_convex_hull_builder_1_1_points.html">Points</a> &amp;inPositions)</td></tr>
  160. <tr class="memdesc:ae55b89fd27a0cab9a97a1475245dec9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
  161. <tr class="separator:ae55b89fd27a0cab9a97a1475245dec9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:ac6b69723ed9d2c1b815769f9953ef8e7" id="r_ac6b69723ed9d2c1b815769f9953ef8e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac6b69723ed9d2c1b815769f9953ef8e7">Initialize</a> (int inIdx1, int inIdx2, int inIdx3)</td></tr>
  163. <tr class="memdesc:ac6b69723ed9d2c1b815769f9953ef8e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the hull with 3 points. <br /></td></tr>
  164. <tr class="separator:ac6b69723ed9d2c1b815769f9953ef8e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  165. <tr class="memitem:a233403c7274da823fb6b96b539dc5f95" id="r_a233403c7274da823fb6b96b539dc5f95"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a233403c7274da823fb6b96b539dc5f95">HasNextTriangle</a> () const</td></tr>
  166. <tr class="memdesc:a233403c7274da823fb6b96b539dc5f95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if there's another triangle to process from the queue. <br /></td></tr>
  167. <tr class="separator:a233403c7274da823fb6b96b539dc5f95"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:a0b52c132a7365cd272f3ca14a8f25145" id="r_a0b52c132a7365cd272f3ca14a8f25145"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0b52c132a7365cd272f3ca14a8f25145">PeekClosestTriangleInQueue</a> ()</td></tr>
  169. <tr class="memdesc:a0b52c132a7365cd272f3ca14a8f25145"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to the next closest triangle to the origin (won't remove it from the queue). <br /></td></tr>
  170. <tr class="separator:a0b52c132a7365cd272f3ca14a8f25145"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171. <tr class="memitem:a7095af90fda9266b9ae7258025623499" id="r_a7095af90fda9266b9ae7258025623499"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7095af90fda9266b9ae7258025623499">PopClosestTriangleFromQueue</a> ()</td></tr>
  172. <tr class="memdesc:a7095af90fda9266b9ae7258025623499"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to the next closest triangle to the origin and remove it from the queue. <br /></td></tr>
  173. <tr class="separator:a7095af90fda9266b9ae7258025623499"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <tr class="memitem:aba8a5ac94c67e4c96e5eb533dfca3a83" id="r_aba8a5ac94c67e4c96e5eb533dfca3a83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aba8a5ac94c67e4c96e5eb533dfca3a83">FindFacingTriangle</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPosition, float &amp;outBestDistSq)</td></tr>
  175. <tr class="separator:aba8a5ac94c67e4c96e5eb533dfca3a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <tr class="memitem:ae1b6e6eb12d8723eeab4265f9510b7c2" id="r_ae1b6e6eb12d8723eeab4265f9510b7c2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae1b6e6eb12d8723eeab4265f9510b7c2">AddPoint</a> (<a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *inFacingTriangle, int inIdx, float inClosestDistSq, <a class="el" href="#a3fd1bd39cc8988421b7d756fc717ce82">NewTriangles</a> &amp;outTriangles)</td></tr>
  177. <tr class="memdesc:ae1b6e6eb12d8723eeab4265f9510b7c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new point to the convex hull. <br /></td></tr>
  178. <tr class="separator:ae1b6e6eb12d8723eeab4265f9510b7c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. <tr class="memitem:a8a5be413b034888eeb3ccc384e1ca9ec" id="r_a8a5be413b034888eeb3ccc384e1ca9ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8a5be413b034888eeb3ccc384e1ca9ec">FreeTriangle</a> (<a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *inT)</td></tr>
  180. <tr class="memdesc:a8a5be413b034888eeb3ccc384e1ca9ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a triangle. <br /></td></tr>
  181. <tr class="separator:a8a5be413b034888eeb3ccc384e1ca9ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <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>
  183. <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>
  184. <tr class="separator:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  185. <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>
  186. <tr class="separator:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2">&#160;</td></tr>
  187. <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>
  188. <tr class="separator:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable"><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="pub-static-attribs" name="pub-static-attribs"></a>
  191. Static Public Attributes</h2></td></tr>
  192. <tr class="memitem:a4513da2adce7a49aff9314455b8e669d" id="r_a4513da2adce7a49aff9314455b8e669d"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4513da2adce7a49aff9314455b8e669d">cMaxTriangles</a> = 256</td></tr>
  193. <tr class="memdesc:a4513da2adce7a49aff9314455b8e669d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max triangles in hull. <br /></td></tr>
  194. <tr class="separator:a4513da2adce7a49aff9314455b8e669d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  195. <tr class="memitem:a6968898ef16408b14c1000bebf2f2576" id="r_a6968898ef16408b14c1000bebf2f2576"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6968898ef16408b14c1000bebf2f2576">cMaxPoints</a> = <a class="el" href="#a4513da2adce7a49aff9314455b8e669d">cMaxTriangles</a> / 2</td></tr>
  196. <tr class="memdesc:a6968898ef16408b14c1000bebf2f2576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max number of points in hull. <br /></td></tr>
  197. <tr class="separator:a6968898ef16408b14c1000bebf2f2576"><td class="memSeparator" colspan="2">&#160;</td></tr>
  198. <tr class="memitem:a745bd64c5b95a736c502901a1bd3d7c0" id="r_a745bd64c5b95a736c502901a1bd3d7c0"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a745bd64c5b95a736c502901a1bd3d7c0">cMaxEdgeLength</a> = 128</td></tr>
  199. <tr class="memdesc:a745bd64c5b95a736c502901a1bd3d7c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max number of edges in FindEdge. <br /></td></tr>
  200. <tr class="separator:a745bd64c5b95a736c502901a1bd3d7c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  201. <tr class="memitem:a4aa8fa12b1aa66a498dcca309be791bb" id="r_a4aa8fa12b1aa66a498dcca309be791bb"><td class="memItemLeft" align="right" valign="top">static constexpr float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4aa8fa12b1aa66a498dcca309be791bb">cMinTriangleArea</a> = 1.0e-10f</td></tr>
  202. <tr class="memdesc:a4aa8fa12b1aa66a498dcca309be791bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum area of a triangle before, if smaller than this it will not be added to the priority queue. <br /></td></tr>
  203. <tr class="separator:a4aa8fa12b1aa66a498dcca309be791bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  204. <tr class="memitem:a637ebd7296fad44e0342a5aadfd84a5d" id="r_a637ebd7296fad44e0342a5aadfd84a5d"><td class="memItemLeft" align="right" valign="top">static constexpr float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a637ebd7296fad44e0342a5aadfd84a5d">cBarycentricEpsilon</a> = 1.0e-3f</td></tr>
  205. <tr class="memdesc:a637ebd7296fad44e0342a5aadfd84a5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Epsilon value used to determine if a point is in the interior of a triangle. <br /></td></tr>
  206. <tr class="separator:a637ebd7296fad44e0342a5aadfd84a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  207. </table>
  208. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  209. <div class="textblock"><p>A convex hull builder specifically made for the EPA penetration depth calculation. It trades accuracy for speed and will simply abort of the hull forms defects due to numerical precision problems. </p>
  210. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  211. <a id="a469e8ddcebb3e76c06176c9580fc186e" name="a469e8ddcebb3e76c06176c9580fc186e"></a>
  212. <h2 class="memtitle"><span class="permalink"><a href="#a469e8ddcebb3e76c06176c9580fc186e">&#9670;&#160;</a></span>Edges</h2>
  213. <div class="memitem">
  214. <div class="memproto">
  215. <table class="memname">
  216. <tr>
  217. <td class="memname">using <a class="el" href="#a469e8ddcebb3e76c06176c9580fc186e">EPAConvexHullBuilder::Edges</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_e_p_a_convex_hull_builder_1_1_edge.html">Edge</a>, <a class="el" href="#a745bd64c5b95a736c502901a1bd3d7c0">cMaxEdgeLength</a>&gt;</td>
  218. </tr>
  219. </table>
  220. </div><div class="memdoc">
  221. </div>
  222. </div>
  223. <a id="a3fd1bd39cc8988421b7d756fc717ce82" name="a3fd1bd39cc8988421b7d756fc717ce82"></a>
  224. <h2 class="memtitle"><span class="permalink"><a href="#a3fd1bd39cc8988421b7d756fc717ce82">&#9670;&#160;</a></span>NewTriangles</h2>
  225. <div class="memitem">
  226. <div class="memproto">
  227. <table class="memname">
  228. <tr>
  229. <td class="memname">using <a class="el" href="#a3fd1bd39cc8988421b7d756fc717ce82">EPAConvexHullBuilder::NewTriangles</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *, <a class="el" href="#a745bd64c5b95a736c502901a1bd3d7c0">cMaxEdgeLength</a>&gt;</td>
  230. </tr>
  231. </table>
  232. </div><div class="memdoc">
  233. </div>
  234. </div>
  235. <a id="a68f076aa07f0793b45b88b34ebbf493f" name="a68f076aa07f0793b45b88b34ebbf493f"></a>
  236. <h2 class="memtitle"><span class="permalink"><a href="#a68f076aa07f0793b45b88b34ebbf493f">&#9670;&#160;</a></span>PointsBase</h2>
  237. <div class="memitem">
  238. <div class="memproto">
  239. <table class="memname">
  240. <tr>
  241. <td class="memname">using <a class="el" href="#a68f076aa07f0793b45b88b34ebbf493f">EPAConvexHullBuilder::PointsBase</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_vec3.html">Vec3</a>, <a class="el" href="#a6968898ef16408b14c1000bebf2f2576">cMaxPoints</a>&gt;</td>
  242. </tr>
  243. </table>
  244. </div><div class="memdoc">
  245. </div>
  246. </div>
  247. <a id="aea0c331a90c44fd535337c5d0841103e" name="aea0c331a90c44fd535337c5d0841103e"></a>
  248. <h2 class="memtitle"><span class="permalink"><a href="#aea0c331a90c44fd535337c5d0841103e">&#9670;&#160;</a></span>Triangles</h2>
  249. <div class="memitem">
  250. <div class="memproto">
  251. <table class="memname">
  252. <tr>
  253. <td class="memname">using <a class="el" href="#aea0c331a90c44fd535337c5d0841103e">EPAConvexHullBuilder::Triangles</a> = <a class="el" href="class_static_array.html">StaticArray</a>&lt;<a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *, <a class="el" href="#a4513da2adce7a49aff9314455b8e669d">cMaxTriangles</a>&gt;</td>
  254. </tr>
  255. </table>
  256. </div><div class="memdoc">
  257. </div>
  258. </div>
  259. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  260. <a id="ae55b89fd27a0cab9a97a1475245dec9d" name="ae55b89fd27a0cab9a97a1475245dec9d"></a>
  261. <h2 class="memtitle"><span class="permalink"><a href="#ae55b89fd27a0cab9a97a1475245dec9d">&#9670;&#160;</a></span>EPAConvexHullBuilder()</h2>
  262. <div class="memitem">
  263. <div class="memproto">
  264. <table class="mlabels">
  265. <tr>
  266. <td class="mlabels-left">
  267. <table class="memname">
  268. <tr>
  269. <td class="memname">EPAConvexHullBuilder::EPAConvexHullBuilder </td>
  270. <td>(</td>
  271. <td class="paramtype">const <a class="el" href="class_e_p_a_convex_hull_builder_1_1_points.html">Points</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inPositions</em></span></td><td>)</td>
  272. <td></td>
  273. </tr>
  274. </table>
  275. </td>
  276. <td class="mlabels-right">
  277. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
  278. </tr>
  279. </table>
  280. </div><div class="memdoc">
  281. <p>Constructor. </p>
  282. </div>
  283. </div>
  284. <h2 class="groupheader">Member Function Documentation</h2>
  285. <a id="ae1b6e6eb12d8723eeab4265f9510b7c2" name="ae1b6e6eb12d8723eeab4265f9510b7c2"></a>
  286. <h2 class="memtitle"><span class="permalink"><a href="#ae1b6e6eb12d8723eeab4265f9510b7c2">&#9670;&#160;</a></span>AddPoint()</h2>
  287. <div class="memitem">
  288. <div class="memproto">
  289. <table class="mlabels">
  290. <tr>
  291. <td class="mlabels-left">
  292. <table class="memname">
  293. <tr>
  294. <td class="memname">bool EPAConvexHullBuilder::AddPoint </td>
  295. <td>(</td>
  296. <td class="paramtype"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *</td> <td class="paramname"><span class="paramname"><em>inFacingTriangle</em></span>, </td>
  297. </tr>
  298. <tr>
  299. <td class="paramkey"></td>
  300. <td></td>
  301. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIdx</em></span>, </td>
  302. </tr>
  303. <tr>
  304. <td class="paramkey"></td>
  305. <td></td>
  306. <td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>inClosestDistSq</em></span>, </td>
  307. </tr>
  308. <tr>
  309. <td class="paramkey"></td>
  310. <td></td>
  311. <td class="paramtype"><a class="el" href="#a3fd1bd39cc8988421b7d756fc717ce82">NewTriangles</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outTriangles</em></span>&#160;)</td>
  312. </tr>
  313. </table>
  314. </td>
  315. <td class="mlabels-right">
  316. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  317. </tr>
  318. </table>
  319. </div><div class="memdoc">
  320. <p>Add a new point to the convex hull. </p>
  321. </div>
  322. </div>
  323. <a id="aba8a5ac94c67e4c96e5eb533dfca3a83" name="aba8a5ac94c67e4c96e5eb533dfca3a83"></a>
  324. <h2 class="memtitle"><span class="permalink"><a href="#aba8a5ac94c67e4c96e5eb533dfca3a83">&#9670;&#160;</a></span>FindFacingTriangle()</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"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> * EPAConvexHullBuilder::FindFacingTriangle </td>
  333. <td>(</td>
  334. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPosition</em></span>, </td>
  335. </tr>
  336. <tr>
  337. <td class="paramkey"></td>
  338. <td></td>
  339. <td class="paramtype">float &amp;</td> <td class="paramname"><span class="paramname"><em>outBestDistSq</em></span>&#160;)</td>
  340. </tr>
  341. </table>
  342. </td>
  343. <td class="mlabels-right">
  344. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  345. </tr>
  346. </table>
  347. </div><div class="memdoc">
  348. <p>Find the triangle on which inPosition is the furthest to the front Note this function works as long as all points added have been added with AddPoint(..., FLT_MAX). </p>
  349. </div>
  350. </div>
  351. <a id="a8a5be413b034888eeb3ccc384e1ca9ec" name="a8a5be413b034888eeb3ccc384e1ca9ec"></a>
  352. <h2 class="memtitle"><span class="permalink"><a href="#a8a5be413b034888eeb3ccc384e1ca9ec">&#9670;&#160;</a></span>FreeTriangle()</h2>
  353. <div class="memitem">
  354. <div class="memproto">
  355. <table class="mlabels">
  356. <tr>
  357. <td class="mlabels-left">
  358. <table class="memname">
  359. <tr>
  360. <td class="memname">void EPAConvexHullBuilder::FreeTriangle </td>
  361. <td>(</td>
  362. <td class="paramtype"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> *</td> <td class="paramname"><span class="paramname"><em>inT</em></span></td><td>)</td>
  363. <td></td>
  364. </tr>
  365. </table>
  366. </td>
  367. <td class="mlabels-right">
  368. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  369. </tr>
  370. </table>
  371. </div><div class="memdoc">
  372. <p>Free a triangle. </p>
  373. </div>
  374. </div>
  375. <a id="a233403c7274da823fb6b96b539dc5f95" name="a233403c7274da823fb6b96b539dc5f95"></a>
  376. <h2 class="memtitle"><span class="permalink"><a href="#a233403c7274da823fb6b96b539dc5f95">&#9670;&#160;</a></span>HasNextTriangle()</h2>
  377. <div class="memitem">
  378. <div class="memproto">
  379. <table class="mlabels">
  380. <tr>
  381. <td class="mlabels-left">
  382. <table class="memname">
  383. <tr>
  384. <td class="memname">bool EPAConvexHullBuilder::HasNextTriangle </td>
  385. <td>(</td>
  386. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  387. <td> const</td>
  388. </tr>
  389. </table>
  390. </td>
  391. <td class="mlabels-right">
  392. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  393. </tr>
  394. </table>
  395. </div><div class="memdoc">
  396. <p>Check if there's another triangle to process from the queue. </p>
  397. </div>
  398. </div>
  399. <a id="ac6b69723ed9d2c1b815769f9953ef8e7" name="ac6b69723ed9d2c1b815769f9953ef8e7"></a>
  400. <h2 class="memtitle"><span class="permalink"><a href="#ac6b69723ed9d2c1b815769f9953ef8e7">&#9670;&#160;</a></span>Initialize()</h2>
  401. <div class="memitem">
  402. <div class="memproto">
  403. <table class="mlabels">
  404. <tr>
  405. <td class="mlabels-left">
  406. <table class="memname">
  407. <tr>
  408. <td class="memname">void EPAConvexHullBuilder::Initialize </td>
  409. <td>(</td>
  410. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIdx1</em></span>, </td>
  411. </tr>
  412. <tr>
  413. <td class="paramkey"></td>
  414. <td></td>
  415. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIdx2</em></span>, </td>
  416. </tr>
  417. <tr>
  418. <td class="paramkey"></td>
  419. <td></td>
  420. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIdx3</em></span>&#160;)</td>
  421. </tr>
  422. </table>
  423. </td>
  424. <td class="mlabels-right">
  425. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  426. </tr>
  427. </table>
  428. </div><div class="memdoc">
  429. <p>Initialize the hull with 3 points. </p>
  430. </div>
  431. </div>
  432. <a id="a0b52c132a7365cd272f3ca14a8f25145" name="a0b52c132a7365cd272f3ca14a8f25145"></a>
  433. <h2 class="memtitle"><span class="permalink"><a href="#a0b52c132a7365cd272f3ca14a8f25145">&#9670;&#160;</a></span>PeekClosestTriangleInQueue()</h2>
  434. <div class="memitem">
  435. <div class="memproto">
  436. <table class="mlabels">
  437. <tr>
  438. <td class="mlabels-left">
  439. <table class="memname">
  440. <tr>
  441. <td class="memname"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> * EPAConvexHullBuilder::PeekClosestTriangleInQueue </td>
  442. <td>(</td>
  443. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  444. <td></td>
  445. </tr>
  446. </table>
  447. </td>
  448. <td class="mlabels-right">
  449. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  450. </tr>
  451. </table>
  452. </div><div class="memdoc">
  453. <p>Access to the next closest triangle to the origin (won't remove it from the queue). </p>
  454. </div>
  455. </div>
  456. <a id="a7095af90fda9266b9ae7258025623499" name="a7095af90fda9266b9ae7258025623499"></a>
  457. <h2 class="memtitle"><span class="permalink"><a href="#a7095af90fda9266b9ae7258025623499">&#9670;&#160;</a></span>PopClosestTriangleFromQueue()</h2>
  458. <div class="memitem">
  459. <div class="memproto">
  460. <table class="mlabels">
  461. <tr>
  462. <td class="mlabels-left">
  463. <table class="memname">
  464. <tr>
  465. <td class="memname"><a class="el" href="class_e_p_a_convex_hull_builder_1_1_triangle.html">Triangle</a> * EPAConvexHullBuilder::PopClosestTriangleFromQueue </td>
  466. <td>(</td>
  467. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  468. <td></td>
  469. </tr>
  470. </table>
  471. </td>
  472. <td class="mlabels-right">
  473. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  474. </tr>
  475. </table>
  476. </div><div class="memdoc">
  477. <p>Access to the next closest triangle to the origin and remove it from the queue. </p>
  478. </div>
  479. </div>
  480. <h2 class="groupheader">Member Data Documentation</h2>
  481. <a id="a637ebd7296fad44e0342a5aadfd84a5d" name="a637ebd7296fad44e0342a5aadfd84a5d"></a>
  482. <h2 class="memtitle"><span class="permalink"><a href="#a637ebd7296fad44e0342a5aadfd84a5d">&#9670;&#160;</a></span>cBarycentricEpsilon</h2>
  483. <div class="memitem">
  484. <div class="memproto">
  485. <table class="mlabels">
  486. <tr>
  487. <td class="mlabels-left">
  488. <table class="memname">
  489. <tr>
  490. <td class="memname">float EPAConvexHullBuilder::cBarycentricEpsilon = 1.0e-3f</td>
  491. </tr>
  492. </table>
  493. </td>
  494. <td class="mlabels-right">
  495. <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
  496. </tr>
  497. </table>
  498. </div><div class="memdoc">
  499. <p>Epsilon value used to determine if a point is in the interior of a triangle. </p>
  500. </div>
  501. </div>
  502. <a id="a745bd64c5b95a736c502901a1bd3d7c0" name="a745bd64c5b95a736c502901a1bd3d7c0"></a>
  503. <h2 class="memtitle"><span class="permalink"><a href="#a745bd64c5b95a736c502901a1bd3d7c0">&#9670;&#160;</a></span>cMaxEdgeLength</h2>
  504. <div class="memitem">
  505. <div class="memproto">
  506. <table class="mlabels">
  507. <tr>
  508. <td class="mlabels-left">
  509. <table class="memname">
  510. <tr>
  511. <td class="memname">int EPAConvexHullBuilder::cMaxEdgeLength = 128</td>
  512. </tr>
  513. </table>
  514. </td>
  515. <td class="mlabels-right">
  516. <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
  517. </tr>
  518. </table>
  519. </div><div class="memdoc">
  520. <p>Max number of edges in FindEdge. </p>
  521. </div>
  522. </div>
  523. <a id="a6968898ef16408b14c1000bebf2f2576" name="a6968898ef16408b14c1000bebf2f2576"></a>
  524. <h2 class="memtitle"><span class="permalink"><a href="#a6968898ef16408b14c1000bebf2f2576">&#9670;&#160;</a></span>cMaxPoints</h2>
  525. <div class="memitem">
  526. <div class="memproto">
  527. <table class="mlabels">
  528. <tr>
  529. <td class="mlabels-left">
  530. <table class="memname">
  531. <tr>
  532. <td class="memname">int EPAConvexHullBuilder::cMaxPoints = <a class="el" href="#a4513da2adce7a49aff9314455b8e669d">cMaxTriangles</a> / 2</td>
  533. </tr>
  534. </table>
  535. </td>
  536. <td class="mlabels-right">
  537. <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
  538. </tr>
  539. </table>
  540. </div><div class="memdoc">
  541. <p>Max number of points in hull. </p>
  542. </div>
  543. </div>
  544. <a id="a4513da2adce7a49aff9314455b8e669d" name="a4513da2adce7a49aff9314455b8e669d"></a>
  545. <h2 class="memtitle"><span class="permalink"><a href="#a4513da2adce7a49aff9314455b8e669d">&#9670;&#160;</a></span>cMaxTriangles</h2>
  546. <div class="memitem">
  547. <div class="memproto">
  548. <table class="mlabels">
  549. <tr>
  550. <td class="mlabels-left">
  551. <table class="memname">
  552. <tr>
  553. <td class="memname">int EPAConvexHullBuilder::cMaxTriangles = 256</td>
  554. </tr>
  555. </table>
  556. </td>
  557. <td class="mlabels-right">
  558. <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
  559. </tr>
  560. </table>
  561. </div><div class="memdoc">
  562. <p>Max triangles in hull. </p>
  563. </div>
  564. </div>
  565. <a id="a4aa8fa12b1aa66a498dcca309be791bb" name="a4aa8fa12b1aa66a498dcca309be791bb"></a>
  566. <h2 class="memtitle"><span class="permalink"><a href="#a4aa8fa12b1aa66a498dcca309be791bb">&#9670;&#160;</a></span>cMinTriangleArea</h2>
  567. <div class="memitem">
  568. <div class="memproto">
  569. <table class="mlabels">
  570. <tr>
  571. <td class="mlabels-left">
  572. <table class="memname">
  573. <tr>
  574. <td class="memname">float EPAConvexHullBuilder::cMinTriangleArea = 1.0e-10f</td>
  575. </tr>
  576. </table>
  577. </td>
  578. <td class="mlabels-right">
  579. <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
  580. </tr>
  581. </table>
  582. </div><div class="memdoc">
  583. <p>Minimum area of a triangle before, if smaller than this it will not be added to the priority queue. </p>
  584. </div>
  585. </div>
  586. <hr/>The documentation for this class was generated from the following file:<ul>
  587. <li>Jolt/Geometry/<a class="el" href="_e_p_a_convex_hull_builder_8h_source.html">EPAConvexHullBuilder.h</a></li>
  588. </ul>
  589. </div><!-- contents -->
  590. </div><!-- doc-content -->
  591. <!-- start footer part -->
  592. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  593. <ul>
  594. <li class="navelem"><a class="el" href="class_e_p_a_convex_hull_builder.html">EPAConvexHullBuilder</a></li>
  595. <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>
  596. </ul>
  597. </div>
  598. </body>
  599. </html>