| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916 |
- <!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: DecoratedShape 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_decorated_shape.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="#pub-methods">Public Member Functions</a> |
- <a href="#pro-attribs">Protected Attributes</a> |
- <a href="class_decorated_shape-members.html">List of all members</a> </div>
- <div class="headertitle"><div class="title">DecoratedShape Class Reference</div></div>
- </div><!--header-->
- <div class="contents">
- <p>Base class for shapes that decorate another shape with extra functionality (e.g. scale, translation etc.)
- <a href="#details">More...</a></p>
- <p><code>#include <<a class="el" href="_decorated_shape_8h_source.html">DecoratedShape.h</a>></code></p>
- <div class="dynheader">
- Inheritance diagram for DecoratedShape:</div>
- <div class="dyncontent">
- <div class="center">
- <img src="class_decorated_shape.png" usemap="#DecoratedShape_map" alt=""/>
- <map id="DecoratedShape_map" name="DecoratedShape_map">
- <area href="class_shape.html" title="Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det..." alt="Shape" shape="rect" coords="174,56,338,80"/>
- <area href="class_ref_target.html" alt="RefTarget< Shape >" shape="rect" coords="87,0,251,24"/>
- <area href="class_non_copyable.html" title="Class that makes another class non-copyable. Usage: Inherit from NonCopyable." alt="NonCopyable" shape="rect" coords="261,0,425,24"/>
- <area href="class_offset_center_of_mass_shape.html" title="This shape will shift the center of mass of a child shape, it can e.g. be used to lower the center of..." alt="OffsetCenterOfMassShape" shape="rect" coords="0,168,164,192"/>
- <area href="class_rotated_translated_shape.html" alt="RotatedTranslatedShape" shape="rect" coords="174,168,338,192"/>
- <area href="class_scaled_shape.html" title="A shape that scales a child shape in local space of that shape. The scale can be non-uniform and can ..." alt="ScaledShape" shape="rect" coords="348,168,512,192"/>
- </map>
- </div></div>
- <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:a9619e07b18da28f6c4cb04bf931e4c15" id="r_a9619e07b18da28f6c4cb04bf931e4c15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9619e07b18da28f6c4cb04bf931e4c15">DecoratedShape</a> (<a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType)</td></tr>
- <tr class="memdesc:a9619e07b18da28f6c4cb04bf931e4c15"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br /></td></tr>
- <tr class="separator:a9619e07b18da28f6c4cb04bf931e4c15"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abacdd80b00fe8afc00c50db7eac53a28" id="r_abacdd80b00fe8afc00c50db7eac53a28"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#abacdd80b00fe8afc00c50db7eac53a28">DecoratedShape</a> (<a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType, const <a class="el" href="class_shape.html">Shape</a> *inInnerShape)</td></tr>
- <tr class="separator:abacdd80b00fe8afc00c50db7eac53a28"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1c95daf857b7433b85e88da194e53147" id="r_a1c95daf857b7433b85e88da194e53147"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1c95daf857b7433b85e88da194e53147">DecoratedShape</a> (<a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType, const <a class="el" href="class_decorated_shape_settings.html">DecoratedShapeSettings</a> &inSettings, <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> &outResult)</td></tr>
- <tr class="separator:a1c95daf857b7433b85e88da194e53147"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a23b4182bc69407c3c9f6e33419a8cbed" id="r_a23b4182bc69407c3c9f6e33419a8cbed"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_shape.html">Shape</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a23b4182bc69407c3c9f6e33419a8cbed">GetInnerShape</a> () const</td></tr>
- <tr class="memdesc:a23b4182bc69407c3c9f6e33419a8cbed"><td class="mdescLeft"> </td><td class="mdescRight">Access to the decorated inner shape. <br /></td></tr>
- <tr class="separator:a23b4182bc69407c3c9f6e33419a8cbed"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae68d25802b5bbe3e86cb3cb71698b78b" id="r_ae68d25802b5bbe3e86cb3cb71698b78b"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae68d25802b5bbe3e86cb3cb71698b78b">MustBeStatic</a> () const override</td></tr>
- <tr class="memdesc:ae68d25802b5bbe3e86cb3cb71698b78b"><td class="mdescLeft"> </td><td class="mdescRight">Check if this shape can only be used to create a static body or if it can also be dynamic/kinematic. <br /></td></tr>
- <tr class="separator:ae68d25802b5bbe3e86cb3cb71698b78b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aa17a9fb29ce78eafc01cc8140d754dd6" id="r_aa17a9fb29ce78eafc01cc8140d754dd6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_vec3.html">Vec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#aa17a9fb29ce78eafc01cc8140d754dd6">GetCenterOfMass</a> () const override</td></tr>
- <tr class="memdesc:aa17a9fb29ce78eafc01cc8140d754dd6"><td class="mdescLeft"> </td><td class="mdescRight">All shapes are centered around their center of mass. This function returns the center of mass position that needs to be applied to transform the shape to where it was created. <br /></td></tr>
- <tr class="separator:aa17a9fb29ce78eafc01cc8140d754dd6"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0369b0f4e52b29f3625022bfd98a6924" id="r_a0369b0f4e52b29f3625022bfd98a6924"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0369b0f4e52b29f3625022bfd98a6924">GetSubShapeIDBitsRecursive</a> () const override</td></tr>
- <tr class="memdesc:a0369b0f4e52b29f3625022bfd98a6924"><td class="mdescLeft"> </td><td class="mdescRight">Get the max number of sub shape ID bits that are needed to be able to address any leaf shape in this shape. Used mainly for checking that it is smaller or equal than <a class="el" href="class_sub_shape_i_d.html#a74d6785fe41b99c0d783fb6e66c39f4d" title="How many bits we can store in this ID.">SubShapeID::MaxBits</a>. <br /></td></tr>
- <tr class="separator:a0369b0f4e52b29f3625022bfd98a6924"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a3b29a28fcd37ade91f30f6e85640c688" id="r_a3b29a28fcd37ade91f30f6e85640c688"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="class_shape.html">Shape</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3b29a28fcd37ade91f30f6e85640c688">GetLeafShape</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID, <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &outRemainder) const override</td></tr>
- <tr class="separator:a3b29a28fcd37ade91f30f6e85640c688"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a14df32d1573050287d989ce5171a1a86" id="r_a14df32d1573050287d989ce5171a1a86"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="class_physics_material.html">PhysicsMaterial</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a14df32d1573050287d989ce5171a1a86">GetMaterial</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID) const override</td></tr>
- <tr class="memdesc:a14df32d1573050287d989ce5171a1a86"><td class="mdescLeft"> </td><td class="mdescRight">Get the material assigned to a particular sub shape ID. <br /></td></tr>
- <tr class="separator:a14df32d1573050287d989ce5171a1a86"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abda124dcb2cd84b591101a32544e1c94" id="r_abda124dcb2cd84b591101a32544e1c94"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#abda124dcb2cd84b591101a32544e1c94">GetSupportingFace</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inDirection, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, <a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="class_shape.html#a95d3060318d33c1ef314c5b856a70cb8">SupportingFace</a> &outVertices) const override</td></tr>
- <tr class="separator:abda124dcb2cd84b591101a32544e1c94"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:afdcd8fb7a79bc210ca792d2db1fdfe09" id="r_afdcd8fb7a79bc210ca792d2db1fdfe09"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#afdcd8fb7a79bc210ca792d2db1fdfe09">GetSubShapeUserData</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID) const override</td></tr>
- <tr class="memdesc:afdcd8fb7a79bc210ca792d2db1fdfe09"><td class="mdescLeft"> </td><td class="mdescRight">Get the user data of a particular sub shape ID. Corresponds with the value stored in <a class="el" href="class_shape.html#a7146c658ddb5c7b0fec4489535ca664f" title="User data (to be used freely by the application)">Shape::GetUserData</a> of the leaf shape pointed to by inSubShapeID. <br /></td></tr>
- <tr class="separator:afdcd8fb7a79bc210ca792d2db1fdfe09"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a73313accd26250780d6baa06c7098197" id="r_a73313accd26250780d6baa06c7098197"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a73313accd26250780d6baa06c7098197">SaveSubShapeState</a> (<a class="el" href="_shape_8h.html#aa3428b3d5af96a1e2200ae7d14057d3c">ShapeList</a> &outSubShapes) const override</td></tr>
- <tr class="memdesc:a73313accd26250780d6baa06c7098197"><td class="mdescLeft"> </td><td class="mdescRight">Outputs the shape references that this shape has to outSubShapes. <br /></td></tr>
- <tr class="separator:a73313accd26250780d6baa06c7098197"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a642be3c50a8c3b2891161aeb32f4b7df" id="r_a642be3c50a8c3b2891161aeb32f4b7df"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a642be3c50a8c3b2891161aeb32f4b7df">RestoreSubShapeState</a> (const <a class="el" href="_shape_8h.html#a840e6a4efc782d25701f730eb48ef249">ShapeRefC</a> *inSubShapes, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inNumShapes) override</td></tr>
- <tr class="memdesc:a642be3c50a8c3b2891161aeb32f4b7df"><td class="mdescLeft"> </td><td class="mdescRight">Restore the shape references after calling sRestoreFromBinaryState. Note that the exact same shapes need to be provided in the same order as returned by SaveSubShapeState. <br /></td></tr>
- <tr class="separator:a642be3c50a8c3b2891161aeb32f4b7df"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a24a5fc486a279b6afaf2cada33f28272" id="r_a24a5fc486a279b6afaf2cada33f28272"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="struct_shape_1_1_stats.html">Stats</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a24a5fc486a279b6afaf2cada33f28272">GetStatsRecursive</a> (<a class="el" href="class_shape.html#afff02f0117147a8f7eb43e9c5a50e969">VisitedShapes</a> &ioVisitedShapes) const override</td></tr>
- <tr class="memdesc:a24a5fc486a279b6afaf2cada33f28272"><td class="mdescLeft"> </td><td class="mdescRight">Volume of this shape (m^3). Note that for compound shapes the volume may be incorrect since child shapes can overlap which is not accounted for. <br /></td></tr>
- <tr class="separator:a24a5fc486a279b6afaf2cada33f28272"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a778d6bb612a571ba44001768efca994c" id="r_a778d6bb612a571ba44001768efca994c"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a778d6bb612a571ba44001768efca994c">IsValidScale</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const override</td></tr>
- <tr class="separator:a778d6bb612a571ba44001768efca994c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ab8608332a025b38ae101d50f31365187" id="r_ab8608332a025b38ae101d50f31365187"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_vec3.html">Vec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab8608332a025b38ae101d50f31365187">MakeScaleValid</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const override</td></tr>
- <tr class="separator:ab8608332a025b38ae101d50f31365187"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_shape')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
- <tr class="memitem:a23734c9a65732276c51b77ba8542291d inherit pub_methods_class_shape" id="r_a23734c9a65732276c51b77ba8542291d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a23734c9a65732276c51b77ba8542291d">Shape</a> (<a class="el" href="_shape_8h.html#ad64a1c665070a3100e456e54073554a5">EShapeType</a> inType, <a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType)</td></tr>
- <tr class="memdesc:a23734c9a65732276c51b77ba8542291d inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br /></td></tr>
- <tr class="separator:a23734c9a65732276c51b77ba8542291d inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5c9ae4999b05e4334aede38781a536ad inherit pub_methods_class_shape" id="r_a5c9ae4999b05e4334aede38781a536ad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a5c9ae4999b05e4334aede38781a536ad">Shape</a> (<a class="el" href="_shape_8h.html#ad64a1c665070a3100e456e54073554a5">EShapeType</a> inType, <a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> inSubType, const <a class="el" href="class_shape_settings.html">ShapeSettings</a> &inSettings, <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> &outResult)</td></tr>
- <tr class="separator:a5c9ae4999b05e4334aede38781a536ad inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac8ad2fd02e1e94beeb98e65ab795cd56 inherit pub_methods_class_shape" id="r_ac8ad2fd02e1e94beeb98e65ab795cd56"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#ac8ad2fd02e1e94beeb98e65ab795cd56">~Shape</a> ()=default</td></tr>
- <tr class="memdesc:ac8ad2fd02e1e94beeb98e65ab795cd56 inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br /></td></tr>
- <tr class="separator:ac8ad2fd02e1e94beeb98e65ab795cd56 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a35b8f1a8a02f90d3edc02db22f03932a inherit pub_methods_class_shape" id="r_a35b8f1a8a02f90d3edc02db22f03932a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_shape_8h.html#ad64a1c665070a3100e456e54073554a5">EShapeType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a35b8f1a8a02f90d3edc02db22f03932a">GetType</a> () const</td></tr>
- <tr class="memdesc:a35b8f1a8a02f90d3edc02db22f03932a inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Get type. <br /></td></tr>
- <tr class="separator:a35b8f1a8a02f90d3edc02db22f03932a inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a864cef23ca0a3add699adea26ed1fef7 inherit pub_methods_class_shape" id="r_a864cef23ca0a3add699adea26ed1fef7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a864cef23ca0a3add699adea26ed1fef7">GetSubType</a> () const</td></tr>
- <tr class="separator:a864cef23ca0a3add699adea26ed1fef7 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7146c658ddb5c7b0fec4489535ca664f inherit pub_methods_class_shape" id="r_a7146c658ddb5c7b0fec4489535ca664f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a7146c658ddb5c7b0fec4489535ca664f">GetUserData</a> () const</td></tr>
- <tr class="memdesc:a7146c658ddb5c7b0fec4489535ca664f inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">User data (to be used freely by the application) <br /></td></tr>
- <tr class="separator:a7146c658ddb5c7b0fec4489535ca664f inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abe1ea0795fb422387c3e41f260caea1c inherit pub_methods_class_shape" id="r_abe1ea0795fb422387c3e41f260caea1c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#abe1ea0795fb422387c3e41f260caea1c">SetUserData</a> (<a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> inUserData)</td></tr>
- <tr class="separator:abe1ea0795fb422387c3e41f260caea1c inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a30ea165596e01df087f6e4980ed6b0cb inherit pub_methods_class_shape" id="r_a30ea165596e01df087f6e4980ed6b0cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_a_a_box.html">AABox</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a30ea165596e01df087f6e4980ed6b0cb">GetLocalBounds</a> () const =0</td></tr>
- <tr class="memdesc:a30ea165596e01df087f6e4980ed6b0cb inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Get local bounding box including convex radius, this box is centered around the center of mass rather than the world transform. <br /></td></tr>
- <tr class="separator:a30ea165596e01df087f6e4980ed6b0cb inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9f8379fa338802436700b86a07fab3be inherit pub_methods_class_shape" id="r_a9f8379fa338802436700b86a07fab3be"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_a_a_box.html">AABox</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a9f8379fa338802436700b86a07fab3be">GetWorldSpaceBounds</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const</td></tr>
- <tr class="separator:a9f8379fa338802436700b86a07fab3be inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_shape" id="r_adc0e48fe3e684665c0b4ba3ec9e9ed6b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_a_a_box.html">AABox</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#adc0e48fe3e684665c0b4ba3ec9e9ed6b">GetWorldSpaceBounds</a> (<a class="el" href="_math_types_8h.html#aaf37cd542ccb684a70ab8e9123af8df5">DMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const</td></tr>
- <tr class="memdesc:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Get world space bounds including convex radius. <br /></td></tr>
- <tr class="separator:adc0e48fe3e684665c0b4ba3ec9e9ed6b inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a249fa4e0fc7fdd25071be9f45db6a25a inherit pub_methods_class_shape" id="r_a249fa4e0fc7fdd25071be9f45db6a25a"><td class="memItemLeft" align="right" valign="top">virtual float </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a249fa4e0fc7fdd25071be9f45db6a25a">GetInnerRadius</a> () const =0</td></tr>
- <tr class="separator:a249fa4e0fc7fdd25071be9f45db6a25a inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a00d0953c120d9e175960c9e6629f108f inherit pub_methods_class_shape" id="r_a00d0953c120d9e175960c9e6629f108f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_mass_properties.html">MassProperties</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a00d0953c120d9e175960c9e6629f108f">GetMassProperties</a> () const =0</td></tr>
- <tr class="memdesc:a00d0953c120d9e175960c9e6629f108f inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the mass and inertia of this shape. <br /></td></tr>
- <tr class="separator:a00d0953c120d9e175960c9e6629f108f inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:adc7c6aeed1cde2ae1be099a4a5a4bd0c inherit pub_methods_class_shape" id="r_adc7c6aeed1cde2ae1be099a4a5a4bd0c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_vec3.html">Vec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#adc7c6aeed1cde2ae1be099a4a5a4bd0c">GetSurfaceNormal</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inLocalSurfacePosition) const =0</td></tr>
- <tr class="separator:adc7c6aeed1cde2ae1be099a4a5a4bd0c inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acf8d5f8e430acc87c88fbd558407efc7 inherit pub_methods_class_shape" id="r_acf8d5f8e430acc87c88fbd558407efc7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_transformed_shape.html">TransformedShape</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#acf8d5f8e430acc87c88fbd558407efc7">GetSubShapeTransformedShape</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &inSubShapeID, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPositionCOM, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &outRemainder) const</td></tr>
- <tr class="separator:acf8d5f8e430acc87c88fbd558407efc7 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a99f077aa0ffef0d518ced9b69ca21d18 inherit pub_methods_class_shape" id="r_a99f077aa0ffef0d518ced9b69ca21d18"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a99f077aa0ffef0d518ced9b69ca21d18">GetSubmergedVolume</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, const <a class="el" href="class_plane.html">Plane</a> &inSurface, float &outTotalVolume, float &outSubmergedVolume, <a class="el" href="class_vec3.html">Vec3</a> &outCenterOfBuoyancy, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset) const =0</td></tr>
- <tr class="separator:a99f077aa0ffef0d518ced9b69ca21d18 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:af00149d141125f15e56d9aa82f07b6d4 inherit pub_methods_class_shape" id="r_af00149d141125f15e56d9aa82f07b6d4"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#af00149d141125f15e56d9aa82f07b6d4">Draw</a> (<a class="el" href="class_debug_renderer.html">DebugRenderer</a> *inRenderer, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, <a class="el" href="_color_8h.html#a3daf1ee578b30da1860ff132c70474b5">ColorArg</a> inColor, bool inUseMaterialColors, bool inDrawWireframe) const =0</td></tr>
- <tr class="memdesc:af00149d141125f15e56d9aa82f07b6d4 inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Draw the shape at a particular location with a particular color (debugging purposes) <br /></td></tr>
- <tr class="separator:af00149d141125f15e56d9aa82f07b6d4 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aba9738d09ec43b40f10e32d1793b7ef5 inherit pub_methods_class_shape" id="r_aba9738d09ec43b40f10e32d1793b7ef5"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#aba9738d09ec43b40f10e32d1793b7ef5">DrawGetSupportFunction</a> (<a class="el" href="class_debug_renderer.html">DebugRenderer</a> *inRenderer, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, <a class="el" href="_color_8h.html#a3daf1ee578b30da1860ff132c70474b5">ColorArg</a> inColor, bool inDrawSupportDirection) const</td></tr>
- <tr class="memdesc:aba9738d09ec43b40f10e32d1793b7ef5 inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Draw the results of the GetSupportFunction with the convex radius added back on to show any errors introduced by this process (only relevant for convex shapes) <br /></td></tr>
- <tr class="separator:aba9738d09ec43b40f10e32d1793b7ef5 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4feaa49afdf6c19764d939dc0bb2698d inherit pub_methods_class_shape" id="r_a4feaa49afdf6c19764d939dc0bb2698d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a4feaa49afdf6c19764d939dc0bb2698d">DrawGetSupportingFace</a> (<a class="el" href="class_debug_renderer.html">DebugRenderer</a> *inRenderer, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const</td></tr>
- <tr class="memdesc:a4feaa49afdf6c19764d939dc0bb2698d inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Draw the results of the GetSupportingFace function to show any errors introduced by this process (only relevant for convex shapes) <br /></td></tr>
- <tr class="separator:a4feaa49afdf6c19764d939dc0bb2698d inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a955ec1953bc94c6c910dc4dc16114732 inherit pub_methods_class_shape" id="r_a955ec1953bc94c6c910dc4dc16114732"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a955ec1953bc94c6c910dc4dc16114732">CastRay</a> (const <a class="el" href="struct_ray_cast.html">RayCast</a> &inRay, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &inSubShapeIDCreator, <a class="el" href="class_ray_cast_result.html">RayCastResult</a> &ioHit) const =0</td></tr>
- <tr class="separator:a955ec1953bc94c6c910dc4dc16114732 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a54b33219a3685aa4b964f6b69a2cfa7d inherit pub_methods_class_shape" id="r_a54b33219a3685aa4b964f6b69a2cfa7d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a54b33219a3685aa4b964f6b69a2cfa7d">CastRay</a> (const <a class="el" href="struct_ray_cast.html">RayCast</a> &inRay, const <a class="el" href="class_ray_cast_settings.html">RayCastSettings</a> &inRayCastSettings, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &inSubShapeIDCreator, <a class="el" href="_shape_8h.html#a09896ea7755d75dc0c2c3e7058a6b85b">CastRayCollector</a> &ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter={ }) const =0</td></tr>
- <tr class="separator:a54b33219a3685aa4b964f6b69a2cfa7d inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:af6e77d16736434769d72152bf059a126 inherit pub_methods_class_shape" id="r_af6e77d16736434769d72152bf059a126"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#af6e77d16736434769d72152bf059a126">CollidePoint</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPoint, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &inSubShapeIDCreator, <a class="el" href="_shape_8h.html#aebaf36faa66f5b466411acbe12342d70">CollidePointCollector</a> &ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter={ }) const =0</td></tr>
- <tr class="separator:af6e77d16736434769d72152bf059a126 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aa0b3c774b4ac685b7c97c02d20fc8627 inherit pub_methods_class_shape" id="r_aa0b3c774b4ac685b7c97c02d20fc8627"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#aa0b3c774b4ac685b7c97c02d20fc8627">CollideSoftBodyVertices</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, const <a class="el" href="class_collide_soft_body_vertex_iterator.html">CollideSoftBodyVertexIterator</a> &inVertices, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inNumVertices, int inCollidingShapeIndex) const =0</td></tr>
- <tr class="separator:aa0b3c774b4ac685b7c97c02d20fc8627 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a3ed865e7eb30221b418cfd61d1430173 inherit pub_methods_class_shape" id="r_a3ed865e7eb30221b418cfd61d1430173"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a3ed865e7eb30221b418cfd61d1430173">CollectTransformedShapes</a> (const <a class="el" href="class_a_a_box.html">AABox</a> &inBox, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPositionCOM, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &inSubShapeIDCreator, <a class="el" href="_shape_8h.html#ac1f1a1681fa4d69dfbc6cd9cc08c2ee4">TransformedShapeCollector</a> &ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter) const</td></tr>
- <tr class="separator:a3ed865e7eb30221b418cfd61d1430173 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4b4b180a41ffdf7369f79706b0e27570 inherit pub_methods_class_shape" id="r_a4b4b180a41ffdf7369f79706b0e27570"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a4b4b180a41ffdf7369f79706b0e27570">TransformShape</a> (<a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a> inCenterOfMassTransform, <a class="el" href="_shape_8h.html#ac1f1a1681fa4d69dfbc6cd9cc08c2ee4">TransformedShapeCollector</a> &ioCollector) const</td></tr>
- <tr class="separator:a4b4b180a41ffdf7369f79706b0e27570 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae4a0954ec23eabd48f0961b16eff750a inherit pub_methods_class_shape" id="r_ae4a0954ec23eabd48f0961b16eff750a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#ae4a0954ec23eabd48f0961b16eff750a">ScaleShape</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const</td></tr>
- <tr class="separator:ae4a0954ec23eabd48f0961b16eff750a inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a703f5419cf3f3cb216cbe0433ce1a625 inherit pub_methods_class_shape" id="r_a703f5419cf3f3cb216cbe0433ce1a625"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a703f5419cf3f3cb216cbe0433ce1a625">GetTrianglesStart</a> (<a class="el" href="struct_shape_1_1_get_triangles_context.html">GetTrianglesContext</a> &ioContext, const <a class="el" href="class_a_a_box.html">AABox</a> &inBox, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPositionCOM, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale) const =0</td></tr>
- <tr class="separator:a703f5419cf3f3cb216cbe0433ce1a625 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4b6ba637f676d38c24bdb5da9a2f345f inherit pub_methods_class_shape" id="r_a4b6ba637f676d38c24bdb5da9a2f345f"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a4b6ba637f676d38c24bdb5da9a2f345f">GetTrianglesNext</a> (<a class="el" href="struct_shape_1_1_get_triangles_context.html">GetTrianglesContext</a> &ioContext, int inMaxTrianglesRequested, <a class="el" href="class_float3.html">Float3</a> *outTriangleVertices, const <a class="el" href="class_physics_material.html">PhysicsMaterial</a> **outMaterials=nullptr) const =0</td></tr>
- <tr class="separator:a4b6ba637f676d38c24bdb5da9a2f345f inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a87ae161e649ab6af75a60fe130dd195b inherit pub_methods_class_shape" id="r_a87ae161e649ab6af75a60fe130dd195b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="struct_shape_1_1_stats.html">Stats</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a87ae161e649ab6af75a60fe130dd195b">GetStats</a> () const =0</td></tr>
- <tr class="memdesc:a87ae161e649ab6af75a60fe130dd195b inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Get stats of this shape. Use for logging / data collection purposes only. Does not add values from child shapes, use GetStatsRecursive for this. <br /></td></tr>
- <tr class="separator:a87ae161e649ab6af75a60fe130dd195b inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a2b07e3d1b554ff77d18e86af7cd451b7 inherit pub_methods_class_shape" id="r_a2b07e3d1b554ff77d18e86af7cd451b7"><td class="memItemLeft" align="right" valign="top">virtual float </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a2b07e3d1b554ff77d18e86af7cd451b7">GetVolume</a> () const =0</td></tr>
- <tr class="separator:a2b07e3d1b554ff77d18e86af7cd451b7 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0035a8aa07e9e071f6a64edb45146363 inherit pub_methods_class_shape" id="r_a0035a8aa07e9e071f6a64edb45146363"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a0035a8aa07e9e071f6a64edb45146363">SaveBinaryState</a> (<a class="el" href="class_stream_out.html">StreamOut</a> &inStream) const</td></tr>
- <tr class="memdesc:a0035a8aa07e9e071f6a64edb45146363 inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Saves the contents of the shape in binary form to inStream. <br /></td></tr>
- <tr class="separator:a0035a8aa07e9e071f6a64edb45146363 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6ff903d54f10469f51e1862b32406845 inherit pub_methods_class_shape" id="r_a6ff903d54f10469f51e1862b32406845"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a6ff903d54f10469f51e1862b32406845">SaveMaterialState</a> (<a class="el" href="_shape_8h.html#ae22d65df49227119a635532dbc63a9a3">PhysicsMaterialList</a> &outMaterials) const</td></tr>
- <tr class="memdesc:a6ff903d54f10469f51e1862b32406845 inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Outputs the material references that this shape has to outMaterials. <br /></td></tr>
- <tr class="separator:a6ff903d54f10469f51e1862b32406845 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6e823e7198f22ec824cacf9998d9904c inherit pub_methods_class_shape" id="r_a6e823e7198f22ec824cacf9998d9904c"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a6e823e7198f22ec824cacf9998d9904c">RestoreMaterialState</a> (const <a class="el" href="_shape_8h.html#ae4083d6c957623ad6d3735d1d515b05e">PhysicsMaterialRefC</a> *inMaterials, <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> inNumMaterials)</td></tr>
- <tr class="memdesc:a6e823e7198f22ec824cacf9998d9904c inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Restore the material references after calling sRestoreFromBinaryState. Note that the exact same materials need to be provided in the same order as returned by SaveMaterialState. <br /></td></tr>
- <tr class="separator:a6e823e7198f22ec824cacf9998d9904c inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a29511616de01507e714e8187686bc9f1 inherit pub_methods_class_shape" id="r_a29511616de01507e714e8187686bc9f1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a29511616de01507e714e8187686bc9f1">SaveWithChildren</a> (<a class="el" href="class_stream_out.html">StreamOut</a> &inStream, <a class="el" href="class_shape.html#a5944ae14aeacc70bb42a38d7c3a31220">ShapeToIDMap</a> &ioShapeMap, <a class="el" href="class_shape.html#a78cea5d82e89748412a5dca2f1352de1">MaterialToIDMap</a> &ioMaterialMap) const</td></tr>
- <tr class="memdesc:a29511616de01507e714e8187686bc9f1 inherit pub_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Save this shape, all its children and its materials. Pass in an empty map in ioShapeMap / ioMaterialMap or reuse the same map while saving multiple shapes to the same stream in order to avoid writing duplicates. <br /></td></tr>
- <tr class="separator:a29511616de01507e714e8187686bc9f1 inherit pub_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_ref_target')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_ref_target.html">RefTarget< Shape ></a></td></tr>
- <tr class="memitem:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target" id="r_a4c8a23738e2e1dd6369520a30e250b17"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a4c8a23738e2e1dd6369520a30e250b17">RefTarget</a> ()=default</td></tr>
- <tr class="memdesc:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br /></td></tr>
- <tr class="separator:a4c8a23738e2e1dd6369520a30e250b17 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a50444e3b659c6f93c64aee224a93f6ab inherit pub_methods_class_ref_target" id="r_a50444e3b659c6f93c64aee224a93f6ab"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a50444e3b659c6f93c64aee224a93f6ab">RefTarget</a> (const <a class="el" href="class_ref_target.html">RefTarget</a> &)</td></tr>
- <tr class="separator:a50444e3b659c6f93c64aee224a93f6ab inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target" id="r_ac3110b9f511287f881d7afaf26871e1b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#ac3110b9f511287f881d7afaf26871e1b">~RefTarget</a> ()</td></tr>
- <tr class="memdesc:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target"><td class="mdescLeft"> </td><td class="mdescRight">assert no one is referencing us <br /></td></tr>
- <tr class="separator:ac3110b9f511287f881d7afaf26871e1b inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a3befa746ea517453572f6f4f5fc3b099 inherit pub_methods_class_ref_target" id="r_a3befa746ea517453572f6f4f5fc3b099"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a3befa746ea517453572f6f4f5fc3b099">SetEmbedded</a> () const</td></tr>
- <tr class="separator:a3befa746ea517453572f6f4f5fc3b099 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target" id="r_a1fc15bfe979bc43a7fa71c7c34f87ed0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_ref_target.html">RefTarget</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a1fc15bfe979bc43a7fa71c7c34f87ed0">operator=</a> (const <a class="el" href="class_ref_target.html">RefTarget</a> &)</td></tr>
- <tr class="memdesc:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target"><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator. <br /></td></tr>
- <tr class="separator:a1fc15bfe979bc43a7fa71c7c34f87ed0 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target" id="r_acaf07366183c51cd8460c7d3dcd07c2d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#acaf07366183c51cd8460c7d3dcd07c2d">GetRefCount</a> () const</td></tr>
- <tr class="memdesc:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target"><td class="mdescLeft"> </td><td class="mdescRight">Get current refcount of this object. <br /></td></tr>
- <tr class="separator:acaf07366183c51cd8460c7d3dcd07c2d inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target" id="r_acf02c18a343bc9de9d6afb7c966f0363"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#acf02c18a343bc9de9d6afb7c966f0363">AddRef</a> () const</td></tr>
- <tr class="memdesc:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target"><td class="mdescLeft"> </td><td class="mdescRight">Add or release a reference to this object. <br /></td></tr>
- <tr class="separator:acf02c18a343bc9de9d6afb7c966f0363 inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0451661dd5d85b01f969319e767993eb inherit pub_methods_class_ref_target" id="r_a0451661dd5d85b01f969319e767993eb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a0451661dd5d85b01f969319e767993eb">Release</a> () const</td></tr>
- <tr class="separator:a0451661dd5d85b01f969319e767993eb inherit pub_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <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="-"/> Public Member Functions inherited from <a class="el" href="class_non_copyable.html">NonCopyable</a></td></tr>
- <tr class="memitem:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable" id="r_a809b6e4ade7ae32f6d248f2a3b783d45"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#a809b6e4ade7ae32f6d248f2a3b783d45">NonCopyable</a> ()=default</td></tr>
- <tr class="separator:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable" id="r_a501d34ffcc34b30de6d541887a901057"><td class="memItemLeft" align="right" valign="top"> </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> &)=delete</td></tr>
- <tr class="separator:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable" id="r_aaf9b12dcaae80c9d304df7a941d4e21f"><td class="memItemLeft" align="right" valign="top">void </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> &)=delete</td></tr>
- <tr class="separator:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
- Protected Attributes</h2></td></tr>
- <tr class="memitem:a776a5391c3d5f4a78f2e81934bc19110" id="r_a776a5391c3d5f4a78f2e81934bc19110"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_ref_const.html">RefConst</a>< <a class="el" href="class_shape.html">Shape</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="#a776a5391c3d5f4a78f2e81934bc19110">mInnerShape</a></td></tr>
- <tr class="separator:a776a5391c3d5f4a78f2e81934bc19110"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pro_attribs_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_attribs_class_ref_target')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="class_ref_target.html">RefTarget< Shape ></a></td></tr>
- <tr class="memitem:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target" id="r_a12afba0bdae7706a0afd4d96ac128231"><td class="memItemLeft" align="right" valign="top">atomic< <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a12afba0bdae7706a0afd4d96ac128231">mRefCount</a></td></tr>
- <tr class="memdesc:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target"><td class="mdescLeft"> </td><td class="mdescRight">Current reference count. <br /></td></tr>
- <tr class="separator:a12afba0bdae7706a0afd4d96ac128231 inherit pro_attribs_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
- Additional Inherited Members</h2></td></tr>
- <tr class="inherit_header pub_types_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_types_class_shape')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
- <tr class="memitem:a11c1ce0984dccb67176566d78331375e inherit pub_types_class_shape" id="r_a11c1ce0984dccb67176566d78331375e"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> = <a class="el" href="class_shape_settings.html#a8573ddc7722fadfc12bb16515d77254a">ShapeSettings::ShapeResult</a></td></tr>
- <tr class="separator:a11c1ce0984dccb67176566d78331375e inherit pub_types_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a95d3060318d33c1ef314c5b856a70cb8 inherit pub_types_class_shape" id="r_a95d3060318d33c1ef314c5b856a70cb8"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a95d3060318d33c1ef314c5b856a70cb8">SupportingFace</a> = <a class="el" href="class_static_array.html">StaticArray</a><<a class="el" href="class_vec3.html">Vec3</a>, 32></td></tr>
- <tr class="memdesc:a95d3060318d33c1ef314c5b856a70cb8 inherit pub_types_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Type definition for a supporting face. <br /></td></tr>
- <tr class="separator:a95d3060318d33c1ef314c5b856a70cb8 inherit pub_types_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:afff02f0117147a8f7eb43e9c5a50e969 inherit pub_types_class_shape" id="r_afff02f0117147a8f7eb43e9c5a50e969"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#afff02f0117147a8f7eb43e9c5a50e969">VisitedShapes</a> = <a class="el" href="class_unordered_set.html">UnorderedSet</a><const <a class="el" href="class_shape.html">Shape</a> *></td></tr>
- <tr class="separator:afff02f0117147a8f7eb43e9c5a50e969 inherit pub_types_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5944ae14aeacc70bb42a38d7c3a31220 inherit pub_types_class_shape" id="r_a5944ae14aeacc70bb42a38d7c3a31220"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a5944ae14aeacc70bb42a38d7c3a31220">ShapeToIDMap</a> = <a class="el" href="namespace_stream_utils.html#a2c35a4aac73cd9d9d8c567e1cd528603">StreamUtils::ObjectToIDMap</a><<a class="el" href="class_shape.html">Shape</a>></td></tr>
- <tr class="separator:a5944ae14aeacc70bb42a38d7c3a31220 inherit pub_types_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a06ba83cf87213a408c508acbc786d2fe inherit pub_types_class_shape" id="r_a06ba83cf87213a408c508acbc786d2fe"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a06ba83cf87213a408c508acbc786d2fe">IDToShapeMap</a> = <a class="el" href="namespace_stream_utils.html#a4e9b8d62b617c5d31288ae8313a6b6cb">StreamUtils::IDToObjectMap</a><<a class="el" href="class_shape.html">Shape</a>></td></tr>
- <tr class="separator:a06ba83cf87213a408c508acbc786d2fe inherit pub_types_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a78cea5d82e89748412a5dca2f1352de1 inherit pub_types_class_shape" id="r_a78cea5d82e89748412a5dca2f1352de1"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a78cea5d82e89748412a5dca2f1352de1">MaterialToIDMap</a> = <a class="el" href="namespace_stream_utils.html#a2c35a4aac73cd9d9d8c567e1cd528603">StreamUtils::ObjectToIDMap</a><<a class="el" href="class_physics_material.html">PhysicsMaterial</a>></td></tr>
- <tr class="separator:a78cea5d82e89748412a5dca2f1352de1 inherit pub_types_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a045656fa1693fed85254f1dd3975f5da inherit pub_types_class_shape" id="r_a045656fa1693fed85254f1dd3975f5da"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a045656fa1693fed85254f1dd3975f5da">IDToMaterialMap</a> = <a class="el" href="namespace_stream_utils.html#a4e9b8d62b617c5d31288ae8313a6b6cb">StreamUtils::IDToObjectMap</a><<a class="el" href="class_physics_material.html">PhysicsMaterial</a>></td></tr>
- <tr class="separator:a045656fa1693fed85254f1dd3975f5da inherit pub_types_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_static_methods_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_methods_class_shape')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
- <tr class="memitem:a6e4794eda984be9d44335e38824eb1bb inherit pub_static_methods_class_shape" id="r_a6e4794eda984be9d44335e38824eb1bb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a6e4794eda984be9d44335e38824eb1bb">sRestoreFromBinaryState</a> (<a class="el" href="class_stream_in.html">StreamIn</a> &inStream)</td></tr>
- <tr class="memdesc:a6e4794eda984be9d44335e38824eb1bb inherit pub_static_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Creates a <a class="el" href="class_shape.html" title="Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det...">Shape</a> of the correct type and restores its contents from the binary stream inStream. <br /></td></tr>
- <tr class="separator:a6e4794eda984be9d44335e38824eb1bb inherit pub_static_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a439b98c1569fb5d44570446306823f5e inherit pub_static_methods_class_shape" id="r_a439b98c1569fb5d44570446306823f5e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a439b98c1569fb5d44570446306823f5e">sRestoreWithChildren</a> (<a class="el" href="class_stream_in.html">StreamIn</a> &inStream, <a class="el" href="class_shape.html#a06ba83cf87213a408c508acbc786d2fe">IDToShapeMap</a> &ioShapeMap, <a class="el" href="class_shape.html#a045656fa1693fed85254f1dd3975f5da">IDToMaterialMap</a> &ioMaterialMap)</td></tr>
- <tr class="memdesc:a439b98c1569fb5d44570446306823f5e inherit pub_static_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Restore a shape, all its children and materials. Pass in an empty map in ioShapeMap / ioMaterialMap or reuse the same map while reading multiple shapes from the same stream in order to restore duplicates. <br /></td></tr>
- <tr class="separator:a439b98c1569fb5d44570446306823f5e inherit pub_static_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_static_methods_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_methods_class_ref_target')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="class_ref_target.html">RefTarget< Shape ></a></td></tr>
- <tr class="memitem:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target" id="r_a58b5a94748691b18ecf651ce918ae743"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#a58b5a94748691b18ecf651ce918ae743">sInternalGetRefCountOffset</a> ()</td></tr>
- <tr class="memdesc:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target"><td class="mdescLeft"> </td><td class="mdescRight">INTERNAL HELPER FUNCTION USED BY SERIALIZATION. <br /></td></tr>
- <tr class="separator:a58b5a94748691b18ecf651ce918ae743 inherit pub_static_methods_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_static_attribs_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_attribs_class_shape')"><img src="closed.png" alt="-"/> Static Public Attributes inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
- <tr class="memitem:a69184c6cd6ddf309ee9b789300accbb6 inherit pub_static_attribs_class_shape" id="r_a69184c6cd6ddf309ee9b789300accbb6"><td class="memItemLeft" align="right" valign="top">static constexpr int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a69184c6cd6ddf309ee9b789300accbb6">cGetTrianglesMinTrianglesRequested</a> = 32</td></tr>
- <tr class="memdesc:a69184c6cd6ddf309ee9b789300accbb6 inherit pub_static_attribs_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">This is the minimum amount of triangles that should be requested through GetTrianglesNext. <br /></td></tr>
- <tr class="separator:a69184c6cd6ddf309ee9b789300accbb6 inherit pub_static_attribs_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:af317ba0cd0b3cd9e093c2e417f5f230e inherit pub_static_attribs_class_shape" id="r_af317ba0cd0b3cd9e093c2e417f5f230e"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#af317ba0cd0b3cd9e093c2e417f5f230e">sDrawSubmergedVolumes</a> = false</td></tr>
- <tr class="memdesc:af317ba0cd0b3cd9e093c2e417f5f230e inherit pub_static_attribs_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">Debug helper which draws the intersection between water and the shapes, the center of buoyancy and the submerged volume. <br /></td></tr>
- <tr class="separator:af317ba0cd0b3cd9e093c2e417f5f230e inherit pub_static_attribs_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pro_methods_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_class_shape')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
- <tr class="memitem:a98a42fc4c28896d87ac4287c38f213ad inherit pro_methods_class_shape" id="r_a98a42fc4c28896d87ac4287c38f213ad"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a98a42fc4c28896d87ac4287c38f213ad">RestoreBinaryState</a> (<a class="el" href="class_stream_in.html">StreamIn</a> &inStream)</td></tr>
- <tr class="memdesc:a98a42fc4c28896d87ac4287c38f213ad inherit pro_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">This function should not be called directly, it is used by sRestoreFromBinaryState. <br /></td></tr>
- <tr class="separator:a98a42fc4c28896d87ac4287c38f213ad inherit pro_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pro_static_methods_class_shape"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_static_methods_class_shape')"><img src="closed.png" alt="-"/> Static Protected Member Functions inherited from <a class="el" href="class_shape.html">Shape</a></td></tr>
- <tr class="memitem:a2fff7d5dd25602bf880f69bd92049652 inherit pro_static_methods_class_shape" id="r_a2fff7d5dd25602bf880f69bd92049652"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_shape.html#a2fff7d5dd25602bf880f69bd92049652">sCollidePointUsingRayCast</a> (const <a class="el" href="class_shape.html">Shape</a> &inShape, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inPoint, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &inSubShapeIDCreator, <a class="el" href="_shape_8h.html#aebaf36faa66f5b466411acbe12342d70">CollidePointCollector</a> &ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &inShapeFilter)</td></tr>
- <tr class="memdesc:a2fff7d5dd25602bf880f69bd92049652 inherit pro_static_methods_class_shape"><td class="mdescLeft"> </td><td class="mdescRight">A fallback version of CollidePoint that uses a ray cast and counts the number of hits to determine if the point is inside the shape. Odd number of hits means inside, even number of hits means outside. <br /></td></tr>
- <tr class="separator:a2fff7d5dd25602bf880f69bd92049652 inherit pro_static_methods_class_shape"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pro_static_attribs_class_ref_target"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_static_attribs_class_ref_target')"><img src="closed.png" alt="-"/> Static Protected Attributes inherited from <a class="el" href="class_ref_target.html">RefTarget< Shape ></a></td></tr>
- <tr class="memitem:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target" id="r_ad37db773efa3c8756f6d95df3862b875"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ref_target.html#ad37db773efa3c8756f6d95df3862b875">cEmbedded</a></td></tr>
- <tr class="memdesc:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target"><td class="mdescLeft"> </td><td class="mdescRight">A large value that gets added to the refcount to mark the object as embedded. <br /></td></tr>
- <tr class="separator:ad37db773efa3c8756f6d95df3862b875 inherit pro_static_attribs_class_ref_target"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><p>Base class for shapes that decorate another shape with extra functionality (e.g. scale, translation etc.) </p>
- </div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
- <a id="a9619e07b18da28f6c4cb04bf931e4c15" name="a9619e07b18da28f6c4cb04bf931e4c15"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a9619e07b18da28f6c4cb04bf931e4c15">◆ </a></span>DecoratedShape() <span class="overload">[1/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a> DecoratedShape::DecoratedShape </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a></td> <td class="paramname"><span class="paramname"><em>inSubType</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructor. </p>
- </div>
- </div>
- <a id="abacdd80b00fe8afc00c50db7eac53a28" name="abacdd80b00fe8afc00c50db7eac53a28"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#abacdd80b00fe8afc00c50db7eac53a28">◆ </a></span>DecoratedShape() <span class="overload">[2/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">DecoratedShape::DecoratedShape </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a></td> <td class="paramname"><span class="paramname"><em>inSubType</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="class_shape.html">Shape</a> *</td> <td class="paramname"><span class="paramname"><em>inInnerShape</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">
- </div>
- </div>
- <a id="a1c95daf857b7433b85e88da194e53147" name="a1c95daf857b7433b85e88da194e53147"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a1c95daf857b7433b85e88da194e53147">◆ </a></span>DecoratedShape() <span class="overload">[3/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">DecoratedShape::DecoratedShape </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="_shape_8h.html#aa332e0529e75b83aad91881c8d32551b">EShapeSubType</a></td> <td class="paramname"><span class="paramname"><em>inSubType</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="class_decorated_shape_settings.html">DecoratedShapeSettings</a> &</td> <td class="paramname"><span class="paramname"><em>inSettings</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="class_shape.html#a11c1ce0984dccb67176566d78331375e">ShapeResult</a> &</td> <td class="paramname"><span class="paramname"><em>outResult</em></span> )</td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <h2 class="groupheader">Member Function Documentation</h2>
- <a id="aa17a9fb29ce78eafc01cc8140d754dd6" name="aa17a9fb29ce78eafc01cc8140d754dd6"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aa17a9fb29ce78eafc01cc8140d754dd6">◆ </a></span>GetCenterOfMass()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="class_vec3.html">Vec3</a> DecoratedShape::GetCenterOfMass </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 class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>All shapes are centered around their center of mass. This function returns the center of mass position that needs to be applied to transform the shape to where it was created. </p>
- <p>Reimplemented from <a class="el" href="class_shape.html#a7e34b0626a40c31db0b2a761922adb1a">Shape</a>.</p>
- <p>Reimplemented in <a class="el" href="class_offset_center_of_mass_shape.html#a9479ac77a9f53c5664f85b7a93135d95">OffsetCenterOfMassShape</a>, <a class="el" href="class_rotated_translated_shape.html#a7d7b6b0edc6dd89125cab13d77eb3585">RotatedTranslatedShape</a>, and <a class="el" href="class_scaled_shape.html#af9e8b8bdbc341d1b0f0caa497505d0f7">ScaledShape</a>.</p>
- </div>
- </div>
- <a id="a23b4182bc69407c3c9f6e33419a8cbed" name="a23b4182bc69407c3c9f6e33419a8cbed"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a23b4182bc69407c3c9f6e33419a8cbed">◆ </a></span>GetInnerShape()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="class_shape.html">Shape</a> * DecoratedShape::GetInnerShape </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>Access to the decorated inner shape. </p>
- </div>
- </div>
- <a id="a3b29a28fcd37ade91f30f6e85640c688" name="a3b29a28fcd37ade91f30f6e85640c688"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a3b29a28fcd37ade91f30f6e85640c688">◆ </a></span>GetLeafShape()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual const <a class="el" href="class_shape.html">Shape</a> * DecoratedShape::GetLeafShape </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &</td> <td class="paramname"><span class="paramname"><em>outRemainder</em></span> ) const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the leaf shape for a particular sub shape ID. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">inSubShapeID</td><td>The full sub shape ID that indicates the path to the leaf shape </td></tr>
- <tr><td class="paramname">outRemainder</td><td>What remains of the sub shape ID after removing the path to the leaf shape (could e.g. refer to a triangle within a <a class="el" href="class_mesh_shape.html">MeshShape</a>) </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>The shape or null if the sub shape ID is invalid </dd></dl>
- <p>Reimplemented from <a class="el" href="class_shape.html#a11453c55f44f37cf405eee79afdbfe00">Shape</a>.</p>
- </div>
- </div>
- <a id="a14df32d1573050287d989ce5171a1a86" name="a14df32d1573050287d989ce5171a1a86"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a14df32d1573050287d989ce5171a1a86">◆ </a></span>GetMaterial()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="class_physics_material.html">PhysicsMaterial</a> * DecoratedShape::GetMaterial </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the material assigned to a particular sub shape ID. </p>
- <p>Implements <a class="el" href="class_shape.html#a7f92a050d292158b83ef016eb5d3f168">Shape</a>.</p>
- </div>
- </div>
- <a id="a24a5fc486a279b6afaf2cada33f28272" name="a24a5fc486a279b6afaf2cada33f28272"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a24a5fc486a279b6afaf2cada33f28272">◆ </a></span>GetStatsRecursive()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="struct_shape_1_1_stats.html">Shape::Stats</a> DecoratedShape::GetStatsRecursive </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="class_shape.html#afff02f0117147a8f7eb43e9c5a50e969">VisitedShapes</a> &</td> <td class="paramname"><span class="paramname"><em>ioVisitedShapes</em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Volume of this shape (m^3). Note that for compound shapes the volume may be incorrect since child shapes can overlap which is not accounted for. </p>
- <p>Get the combined stats of this shape and its children. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ioVisitedShapes</td><td>is used to track which shapes have already been visited, to avoid calculating the wrong memory size. </td></tr>
- </table>
- </dd>
- </dl>
- <p>Reimplemented from <a class="el" href="class_shape.html#ae90566019bdce3edf3be921044b38ea6">Shape</a>.</p>
- </div>
- </div>
- <a id="a0369b0f4e52b29f3625022bfd98a6924" name="a0369b0f4e52b29f3625022bfd98a6924"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a0369b0f4e52b29f3625022bfd98a6924">◆ </a></span>GetSubShapeIDBitsRecursive()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a> DecoratedShape::GetSubShapeIDBitsRecursive </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 class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the max number of sub shape ID bits that are needed to be able to address any leaf shape in this shape. Used mainly for checking that it is smaller or equal than <a class="el" href="class_sub_shape_i_d.html#a74d6785fe41b99c0d783fb6e66c39f4d" title="How many bits we can store in this ID.">SubShapeID::MaxBits</a>. </p>
- <p>Implements <a class="el" href="class_shape.html#aee463ecaa01e871524f5396871b5e8c6">Shape</a>.</p>
- </div>
- </div>
- <a id="afdcd8fb7a79bc210ca792d2db1fdfe09" name="afdcd8fb7a79bc210ca792d2db1fdfe09"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afdcd8fb7a79bc210ca792d2db1fdfe09">◆ </a></span>GetSubShapeUserData()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> DecoratedShape::GetSubShapeUserData </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the user data of a particular sub shape ID. Corresponds with the value stored in <a class="el" href="class_shape.html#a7146c658ddb5c7b0fec4489535ca664f" title="User data (to be used freely by the application)">Shape::GetUserData</a> of the leaf shape pointed to by inSubShapeID. </p>
- <p>Reimplemented from <a class="el" href="class_shape.html#a29de5bb2f770d7e521f0d939436faa1b">Shape</a>.</p>
- </div>
- </div>
- <a id="abda124dcb2cd84b591101a32544e1c94" name="abda124dcb2cd84b591101a32544e1c94"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#abda124dcb2cd84b591101a32544e1c94">◆ </a></span>GetSupportingFace()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void DecoratedShape::GetSupportingFace </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inDirection</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inScale</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="_math_types_8h.html#af10dd31c5ad4acb62aba8025732597e6">Mat44Arg</a></td> <td class="paramname"><span class="paramname"><em>inCenterOfMassTransform</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="class_shape.html#a95d3060318d33c1ef314c5b856a70cb8">SupportingFace</a> &</td> <td class="paramname"><span class="paramname"><em>outVertices</em></span> ) const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the vertices of the face that faces inDirection the most (includes any convex radius). Note that this function can only return faces of convex shapes or triangles, which is why a sub shape ID to get to that leaf must be provided. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">inSubShapeID</td><td>Sub shape ID of target shape </td></tr>
- <tr><td class="paramname">inDirection</td><td>Direction that the face should be facing (in local space to this shape) </td></tr>
- <tr><td class="paramname">inCenterOfMassTransform</td><td>Transform to transform outVertices with </td></tr>
- <tr><td class="paramname">inScale</td><td>Scale in local space of the shape (scales relative to its center of mass) </td></tr>
- <tr><td class="paramname">outVertices</td><td>Resulting face. The returned face can be empty if the shape doesn't have polygons to return (e.g. because it's a sphere). The face will be returned in world space. </td></tr>
- </table>
- </dd>
- </dl>
- <p>Reimplemented from <a class="el" href="class_shape.html#a4f6591e1a1329278568bc99b035c9928">Shape</a>.</p>
- <p>Reimplemented in <a class="el" href="class_offset_center_of_mass_shape.html#aa18209657783f704b64fa02351c29fca">OffsetCenterOfMassShape</a>, <a class="el" href="class_rotated_translated_shape.html#abab2852c1625584a5849d7a9ef96efcb">RotatedTranslatedShape</a>, and <a class="el" href="class_scaled_shape.html#aacf906339a566563005b35af3a474385">ScaledShape</a>.</p>
- </div>
- </div>
- <a id="a778d6bb612a571ba44001768efca994c" name="a778d6bb612a571ba44001768efca994c"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a778d6bb612a571ba44001768efca994c">◆ </a></span>IsValidScale()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool DecoratedShape::IsValidScale </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inScale</em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Test if inScale is a valid scale for this shape. Some shapes can only be scaled uniformly, compound shapes cannot handle shapes being rotated and scaled (this would cause shearing), scale can never be zero. When the scale is invalid, the function will return false.</p>
- <p>Here's a list of supported scales:</p><ul>
- <li><a class="el" href="class_sphere_shape.html">SphereShape</a>: Scale must be uniform (signs of scale are ignored).</li>
- <li><a class="el" href="class_box_shape.html" title="A box, centered around the origin.">BoxShape</a>: Any scale supported (signs of scale are ignored).</li>
- <li><a class="el" href="class_triangle_shape.html" title="A single triangle, not the most efficient way of creating a world filled with triangles but can be us...">TriangleShape</a>: Any scale supported when convex radius is zero, otherwise only uniform scale supported.</li>
- <li><a class="el" href="class_capsule_shape.html" title="A capsule, implemented as a line segment with convex radius.">CapsuleShape</a>: Scale must be uniform (signs of scale are ignored).</li>
- <li><a class="el" href="class_tapered_capsule_shape.html" title="A capsule with different top and bottom radii.">TaperedCapsuleShape</a>: Scale must be uniform (sign of Y scale can be used to flip the capsule).</li>
- <li><a class="el" href="class_cylinder_shape.html" title="A cylinder.">CylinderShape</a>: Scale must be uniform in XZ plane, Y can scale independently (signs of scale are ignored).</li>
- <li><a class="el" href="class_rotated_translated_shape.html">RotatedTranslatedShape</a>: Scale must not cause shear in the child shape.</li>
- <li><a class="el" href="class_compound_shape.html" title="Base class for a compound shape.">CompoundShape</a>: Scale must not cause shear in any of the child shapes. </li>
- </ul>
- <p>Reimplemented from <a class="el" href="class_shape.html#a59f32110193561295a7d721909e07adc">Shape</a>.</p>
- <p>Reimplemented in <a class="el" href="class_rotated_translated_shape.html#ab85aaba12f9b0080fb7eee3a49530efe">RotatedTranslatedShape</a>, and <a class="el" href="class_scaled_shape.html#aaa13e40988ae29754e637e5baa31a868">ScaledShape</a>.</p>
- </div>
- </div>
- <a id="ab8608332a025b38ae101d50f31365187" name="ab8608332a025b38ae101d50f31365187"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ab8608332a025b38ae101d50f31365187">◆ </a></span>MakeScaleValid()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="class_vec3.html">Vec3</a> DecoratedShape::MakeScaleValid </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inScale</em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>This function will make sure that if you wrap this shape in a <a class="el" href="class_scaled_shape.html" title="A shape that scales a child shape in local space of that shape. The scale can be non-uniform and can ...">ScaledShape</a> that the scale is valid. Note that this involves discarding components of the scale that are invalid, so the resulting scaled shape may be different than the requested scale. Compare the return value of this function with the scale you passed in to detect major inconsistencies and possibly warn the user. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">inScale</td><td>Local space scale for this shape. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>Scale that can be used to wrap this shape in a <a class="el" href="class_scaled_shape.html" title="A shape that scales a child shape in local space of that shape. The scale can be non-uniform and can ...">ScaledShape</a>. IsValidScale will return true for this scale. </dd></dl>
- <p>Reimplemented from <a class="el" href="class_shape.html#a92b9228a95f194e9e1e2962bed861e22">Shape</a>.</p>
- <p>Reimplemented in <a class="el" href="class_rotated_translated_shape.html#a01f12883df324277825192ce1a1e121e">RotatedTranslatedShape</a>, and <a class="el" href="class_scaled_shape.html#abc64b66c45b52bd4248ffee1823c3c2d">ScaledShape</a>.</p>
- </div>
- </div>
- <a id="ae68d25802b5bbe3e86cb3cb71698b78b" name="ae68d25802b5bbe3e86cb3cb71698b78b"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae68d25802b5bbe3e86cb3cb71698b78b">◆ </a></span>MustBeStatic()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool DecoratedShape::MustBeStatic </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 class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Check if this shape can only be used to create a static body or if it can also be dynamic/kinematic. </p>
- <p>Reimplemented from <a class="el" href="class_shape.html#a6abbf113475435c0c694d3199e352c3a">Shape</a>.</p>
- </div>
- </div>
- <a id="a642be3c50a8c3b2891161aeb32f4b7df" name="a642be3c50a8c3b2891161aeb32f4b7df"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a642be3c50a8c3b2891161aeb32f4b7df">◆ </a></span>RestoreSubShapeState()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void DecoratedShape::RestoreSubShapeState </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="_shape_8h.html#a840e6a4efc782d25701f730eb48ef249">ShapeRefC</a> *</td> <td class="paramname"><span class="paramname"><em>inSubShapes</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="_core_8h.html#a69aa29b598b851b0640aa225a9e5d61d">uint</a></td> <td class="paramname"><span class="paramname"><em>inNumShapes</em></span> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Restore the shape references after calling sRestoreFromBinaryState. Note that the exact same shapes need to be provided in the same order as returned by SaveSubShapeState. </p>
- <p>Reimplemented from <a class="el" href="class_shape.html#ab4de39f5e4972919f1211ec73520b1d8">Shape</a>.</p>
- </div>
- </div>
- <a id="a73313accd26250780d6baa06c7098197" name="a73313accd26250780d6baa06c7098197"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a73313accd26250780d6baa06c7098197">◆ </a></span>SaveSubShapeState()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void DecoratedShape::SaveSubShapeState </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="_shape_8h.html#aa3428b3d5af96a1e2200ae7d14057d3c">ShapeList</a> &</td> <td class="paramname"><span class="paramname"><em>outSubShapes</em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Outputs the shape references that this shape has to outSubShapes. </p>
- <p>Reimplemented from <a class="el" href="class_shape.html#a09215d250a425cca2e9b4bed32761bc4">Shape</a>.</p>
- </div>
- </div>
- <h2 class="groupheader">Member Data Documentation</h2>
- <a id="a776a5391c3d5f4a78f2e81934bc19110" name="a776a5391c3d5f4a78f2e81934bc19110"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a776a5391c3d5f4a78f2e81934bc19110">◆ </a></span>mInnerShape</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_ref_const.html">RefConst</a><<a class="el" href="class_shape.html">Shape</a>> DecoratedShape::mInnerShape</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">protected</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following files:<ul>
- <li>Jolt/Physics/Collision/Shape/<a class="el" href="_decorated_shape_8h_source.html">DecoratedShape.h</a></li>
- <li>Jolt/Physics/Collision/Shape/<a class="el" href="_decorated_shape_8cpp.html">DecoratedShape.cpp</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_decorated_shape.html">DecoratedShape</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>
|