| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=11"/>
- <meta name="generator" content="Doxygen 1.12.0"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>Jolt Physics: PolyhedronSubmergedVolumeCalculator Class Reference</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <script type="text/javascript" src="clipboard.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="cookie.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <script type="text/x-mathjax-config">
- MathJax.Hub.Config({
- extensions: ["tex2jax.js"],
- jax: ["input/TeX","output/HTML-CSS"],
- });
- </script>
- <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
- <td id="projectalign">
- <div id="projectname">Jolt Physics
- </div>
- <div id="projectbrief">A multi core friendly Game Physics Engine</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.12.0 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- var searchBox = new SearchBox("searchBox", "search/",'.html');
- /* @license-end */
- </script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() { codefold.init(0); });
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() {
- initMenu('',true,false,'search.php','Search',true);
- $(function() { init_search(); });
- });
- /* @license-end */
- </script>
- <div id="main-nav"></div>
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function(){initNavTree('class_polyhedron_submerged_volume_calculator.html',''); initResizable(true); });
- /* @license-end */
- </script>
- <div id="doc-content">
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <div id="MSearchResults">
- <div class="SRPage">
- <div id="SRIndex">
- <div id="SRResults"></div>
- <div class="SRStatus" id="Loading">Loading...</div>
- <div class="SRStatus" id="Searching">Searching...</div>
- <div class="SRStatus" id="NoMatches">No Matches</div>
- </div>
- </div>
- </div>
- </div>
- <div class="header">
- <div class="summary">
- <a href="#nested-classes">Classes</a> |
- <a href="#pub-methods">Public Member Functions</a> |
- <a href="class_polyhedron_submerged_volume_calculator-members.html">List of all members</a> </div>
- <div class="headertitle"><div class="title">PolyhedronSubmergedVolumeCalculator Class Reference</div></div>
- </div><!--header-->
- <div class="contents">
- <p><code>#include <<a class="el" href="_polyhedron_submerged_volume_calculator_8h_source.html">PolyhedronSubmergedVolumeCalculator.h</a>></code></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
- Classes</h2></td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polyhedron_submerged_volume_calculator_1_1_point.html">Point</a></td></tr>
- <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A helper class that contains cached information about a polyhedron vertex. <a href="class_polyhedron_submerged_volume_calculator_1_1_point.html#details">More...</a><br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a4c0ac9f1d2eb133112745844ec770512" id="r_a4c0ac9f1d2eb133112745844ec770512"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4c0ac9f1d2eb133112745844ec770512">PolyhedronSubmergedVolumeCalculator</a> (const <a class="el" href="class_mat44.html">Mat44</a> &inTransform, const <a class="el" href="class_vec3.html">Vec3</a> *inPoints, int inPointStride, int inNumPoints, const <a class="el" href="class_plane.html">Plane</a> &inSurface, <a class="el" href="class_polyhedron_submerged_volume_calculator_1_1_point.html">Point</a> *ioBuffer, <a class="el" href="_real_8h.html#ae088dda635fb0ba1c96ea179d384ca40">RVec3</a> inBaseOffset)</td></tr>
- <tr class="separator:a4c0ac9f1d2eb133112745844ec770512"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:afd8348d65dfed4f7eb40ee92eb74742a" id="r_afd8348d65dfed4f7eb40ee92eb74742a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#afd8348d65dfed4f7eb40ee92eb74742a">AreAllAbove</a> () const</td></tr>
- <tr class="memdesc:afd8348d65dfed4f7eb40ee92eb74742a"><td class="mdescLeft"> </td><td class="mdescRight">Check if all points are above the surface. Should be used as early out. <br /></td></tr>
- <tr class="separator:afd8348d65dfed4f7eb40ee92eb74742a"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aac9438428e9b0508fbac276161acae83" id="r_aac9438428e9b0508fbac276161acae83"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#aac9438428e9b0508fbac276161acae83">AreAllBelow</a> () const</td></tr>
- <tr class="memdesc:aac9438428e9b0508fbac276161acae83"><td class="mdescLeft"> </td><td class="mdescRight">Check if all points are below the surface. Should be used as early out. <br /></td></tr>
- <tr class="separator:aac9438428e9b0508fbac276161acae83"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:af52627bf533a56d1b951f32030010eeb" id="r_af52627bf533a56d1b951f32030010eeb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#af52627bf533a56d1b951f32030010eeb">GetReferencePointIdx</a> () const</td></tr>
- <tr class="memdesc:af52627bf533a56d1b951f32030010eeb"><td class="mdescLeft"> </td><td class="mdescRight">Get the lowest point of the polyhedron. Used to form the 4th vertex to make a tetrahedron out of a polyhedron face. <br /></td></tr>
- <tr class="separator:af52627bf533a56d1b951f32030010eeb"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a2174180424e99b757f2eb63969557afc" id="r_a2174180424e99b757f2eb63969557afc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2174180424e99b757f2eb63969557afc">AddFace</a> (int inIdx1, int inIdx2, int inIdx3)</td></tr>
- <tr class="memdesc:a2174180424e99b757f2eb63969557afc"><td class="mdescLeft"> </td><td class="mdescRight">Add a polyhedron face. Supply the indices of the points that form the face (in counter clockwise order). <br /></td></tr>
- <tr class="separator:a2174180424e99b757f2eb63969557afc"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5a1c107b68d02c02bde9493400549faf" id="r_a5a1c107b68d02c02bde9493400549faf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5a1c107b68d02c02bde9493400549faf">GetResult</a> (float &outSubmergedVolume, <a class="el" href="class_vec3.html">Vec3</a> &outCenterOfBuoyancy) const</td></tr>
- <tr class="memdesc:a5a1c107b68d02c02bde9493400549faf"><td class="mdescLeft"> </td><td class="mdescRight">Call after all faces have been added. Returns the submerged volume and the center of buoyancy for the submerged volume. <br /></td></tr>
- <tr class="separator:a5a1c107b68d02c02bde9493400549faf"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><p>This class calculates the intersection between a fluid surface and a polyhedron and returns the submerged volume and its center of buoyancy Construct this class and then one by one add all faces of the polyhedron using the AddFace function. After all faces have been added the result can be gotten through GetResult. </p>
- </div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
- <a id="a4c0ac9f1d2eb133112745844ec770512" name="a4c0ac9f1d2eb133112745844ec770512"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a4c0ac9f1d2eb133112745844ec770512">◆ </a></span>PolyhedronSubmergedVolumeCalculator()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">PolyhedronSubmergedVolumeCalculator::PolyhedronSubmergedVolumeCalculator </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_mat44.html">Mat44</a> &</td> <td class="paramname"><span class="paramname"><em>inTransform</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="class_vec3.html">Vec3</a> *</td> <td class="paramname"><span class="paramname"><em>inPoints</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inPointStride</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inNumPoints</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="class_plane.html">Plane</a> &</td> <td class="paramname"><span class="paramname"><em>inSurface</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="class_polyhedron_submerged_volume_calculator_1_1_point.html">Point</a> *</td> <td class="paramname"><span class="paramname"><em>ioBuffer</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="_real_8h.html#ae088dda635fb0ba1c96ea179d384ca40">RVec3</a></td> <td class="paramname"><span class="paramname"><em>inBaseOffset</em></span> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">inTransform</td><td>Transform to transform all incoming points with </td></tr>
- <tr><td class="paramname">inPoints</td><td><a class="el" href="class_array.html">Array</a> of points that are part of the polyhedron </td></tr>
- <tr><td class="paramname">inPointStride</td><td>Amount of bytes between each point (should usually be sizeof(Vec3)) </td></tr>
- <tr><td class="paramname">inNumPoints</td><td>The amount of points </td></tr>
- <tr><td class="paramname">inSurface</td><td>The plane that forms the fluid surface (normal should point up) </td></tr>
- <tr><td class="paramname">ioBuffer</td><td>A temporary buffer of <a class="el" href="class_polyhedron_submerged_volume_calculator_1_1_point.html" title="A helper class that contains cached information about a polyhedron vertex.">Point</a>'s that should have inNumPoints entries and should stay alive while this class is alive</td></tr>
- <tr><td class="paramname">inBaseOffset</td><td>The offset to transform inTransform to world space (in double precision mode this can be used to shift the whole operation closer to the origin). Only used for debug drawing. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <h2 class="groupheader">Member Function Documentation</h2>
- <a id="a2174180424e99b757f2eb63969557afc" name="a2174180424e99b757f2eb63969557afc"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a2174180424e99b757f2eb63969557afc">◆ </a></span>AddFace()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void PolyhedronSubmergedVolumeCalculator::AddFace </td>
- <td>(</td>
- <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIdx1</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIdx2</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inIdx3</em></span> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Add a polyhedron face. Supply the indices of the points that form the face (in counter clockwise order). </p>
- </div>
- </div>
- <a id="afd8348d65dfed4f7eb40ee92eb74742a" name="afd8348d65dfed4f7eb40ee92eb74742a"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afd8348d65dfed4f7eb40ee92eb74742a">◆ </a></span>AreAllAbove()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool PolyhedronSubmergedVolumeCalculator::AreAllAbove </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Check if all points are above the surface. Should be used as early out. </p>
- </div>
- </div>
- <a id="aac9438428e9b0508fbac276161acae83" name="aac9438428e9b0508fbac276161acae83"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aac9438428e9b0508fbac276161acae83">◆ </a></span>AreAllBelow()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool PolyhedronSubmergedVolumeCalculator::AreAllBelow </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Check if all points are below the surface. Should be used as early out. </p>
- </div>
- </div>
- <a id="af52627bf533a56d1b951f32030010eeb" name="af52627bf533a56d1b951f32030010eeb"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#af52627bf533a56d1b951f32030010eeb">◆ </a></span>GetReferencePointIdx()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">int PolyhedronSubmergedVolumeCalculator::GetReferencePointIdx </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the lowest point of the polyhedron. Used to form the 4th vertex to make a tetrahedron out of a polyhedron face. </p>
- </div>
- </div>
- <a id="a5a1c107b68d02c02bde9493400549faf" name="a5a1c107b68d02c02bde9493400549faf"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a5a1c107b68d02c02bde9493400549faf">◆ </a></span>GetResult()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void PolyhedronSubmergedVolumeCalculator::GetResult </td>
- <td>(</td>
- <td class="paramtype">float &</td> <td class="paramname"><span class="paramname"><em>outSubmergedVolume</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="class_vec3.html">Vec3</a> &</td> <td class="paramname"><span class="paramname"><em>outCenterOfBuoyancy</em></span> ) const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Call after all faces have been added. Returns the submerged volume and the center of buoyancy for the submerged volume. </p>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following file:<ul>
- <li>Jolt/Physics/Collision/Shape/<a class="el" href="_polyhedron_submerged_volume_calculator_8h_source.html">PolyhedronSubmergedVolumeCalculator.h</a></li>
- </ul>
- </div><!-- contents -->
- </div><!-- doc-content -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="class_polyhedron_submerged_volume_calculator.html">PolyhedronSubmergedVolumeCalculator</a></li>
- <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>
- </ul>
- </div>
- </body>
- </html>
|