class_transformed_shape.html 73 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.12.0"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Jolt Physics: TransformedShape Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <script type="text/javascript" src="clipboard.js"></script>
  13. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript" src="resize.js"></script>
  17. <script type="text/javascript" src="cookie.js"></script>
  18. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  19. <script type="text/javascript" src="search/searchdata.js"></script>
  20. <script type="text/javascript" src="search/search.js"></script>
  21. <script type="text/x-mathjax-config">
  22. MathJax.Hub.Config({
  23. extensions: ["tex2jax.js"],
  24. jax: ["input/TeX","output/HTML-CSS"],
  25. });
  26. </script>
  27. <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
  28. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  29. </head>
  30. <body>
  31. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  32. <div id="titlearea">
  33. <table cellspacing="0" cellpadding="0">
  34. <tbody>
  35. <tr id="projectrow">
  36. <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
  37. <td id="projectalign">
  38. <div id="projectname">Jolt Physics
  39. </div>
  40. <div id="projectbrief">A multi core friendly Game Physics Engine</div>
  41. </td>
  42. </tr>
  43. </tbody>
  44. </table>
  45. </div>
  46. <!-- end header part -->
  47. <!-- Generated by Doxygen 1.12.0 -->
  48. <script type="text/javascript">
  49. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  50. var searchBox = new SearchBox("searchBox", "search/",'.html');
  51. /* @license-end */
  52. </script>
  53. <script type="text/javascript">
  54. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  55. $(function() { codefold.init(0); });
  56. /* @license-end */
  57. </script>
  58. <script type="text/javascript" src="menudata.js"></script>
  59. <script type="text/javascript" src="menu.js"></script>
  60. <script type="text/javascript">
  61. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  62. $(function() {
  63. initMenu('',true,false,'search.php','Search',true);
  64. $(function() { init_search(); });
  65. });
  66. /* @license-end */
  67. </script>
  68. <div id="main-nav"></div>
  69. </div><!-- top -->
  70. <div id="side-nav" class="ui-resizable side-nav-resizable">
  71. <div id="nav-tree">
  72. <div id="nav-tree-contents">
  73. <div id="nav-sync" class="sync"></div>
  74. </div>
  75. </div>
  76. <div id="splitbar" style="-moz-user-select:none;"
  77. class="ui-resizable-handle">
  78. </div>
  79. </div>
  80. <script type="text/javascript">
  81. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  82. $(function(){initNavTree('class_transformed_shape.html',''); initResizable(true); });
  83. /* @license-end */
  84. </script>
  85. <div id="doc-content">
  86. <!-- window showing the filter options -->
  87. <div id="MSearchSelectWindow"
  88. onmouseover="return searchBox.OnSearchSelectShow()"
  89. onmouseout="return searchBox.OnSearchSelectHide()"
  90. onkeydown="return searchBox.OnSearchSelectKey(event)">
  91. </div>
  92. <!-- iframe showing the search results (closed by default) -->
  93. <div id="MSearchResultsWindow">
  94. <div id="MSearchResults">
  95. <div class="SRPage">
  96. <div id="SRIndex">
  97. <div id="SRResults"></div>
  98. <div class="SRStatus" id="Loading">Loading...</div>
  99. <div class="SRStatus" id="Searching">Searching...</div>
  100. <div class="SRStatus" id="NoMatches">No Matches</div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="header">
  106. <div class="summary">
  107. <a href="#pub-types">Public Types</a> &#124;
  108. <a href="#pub-methods">Public Member Functions</a> &#124;
  109. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  110. <a href="#pub-attribs">Public Attributes</a> &#124;
  111. <a href="class_transformed_shape-members.html">List of all members</a> </div>
  112. <div class="headertitle"><div class="title">TransformedShape Class Reference</div></div>
  113. </div><!--header-->
  114. <div class="contents">
  115. <p><code>#include &lt;<a class="el" href="_transformed_shape_8h_source.html">TransformedShape.h</a>&gt;</code></p>
  116. <table class="memberdecls">
  117. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
  118. Public Types</h2></td></tr>
  119. <tr class="memitem:aca84b10055165beff1ca288bf6ccfd34" id="r_aca84b10055165beff1ca288bf6ccfd34"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aca84b10055165beff1ca288bf6ccfd34">GetTrianglesContext</a> = <a class="el" href="struct_shape_1_1_get_triangles_context.html">Shape::GetTrianglesContext</a></td></tr>
  120. <tr class="memdesc:aca84b10055165beff1ca288bf6ccfd34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use the context from <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>. <br /></td></tr>
  121. <tr class="separator:aca84b10055165beff1ca288bf6ccfd34"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. </table><table class="memberdecls">
  123. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  124. Public Member Functions</h2></td></tr>
  125. <tr class="memitem:aa2bca98098fc17f1d18ea542a619eff0" id="r_aa2bca98098fc17f1d18ea542a619eff0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa2bca98098fc17f1d18ea542a619eff0">TransformedShape</a> ()=default</td></tr>
  126. <tr class="memdesc:aa2bca98098fc17f1d18ea542a619eff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
  127. <tr class="separator:aa2bca98098fc17f1d18ea542a619eff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:a8a62ed0edd25b3a64ecdcaab55de237e" id="r_a8a62ed0edd25b3a64ecdcaab55de237e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8a62ed0edd25b3a64ecdcaab55de237e">TransformedShape</a> (<a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inPositionCOM, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, const <a class="el" href="class_shape.html">Shape</a> *inShape, const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;inBodyID, const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;inSubShapeIDCreator=<a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a>())</td></tr>
  129. <tr class="separator:a8a62ed0edd25b3a64ecdcaab55de237e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:acd5399c06080e74de7f1ad8c61f9465a" id="r_acd5399c06080e74de7f1ad8c61f9465a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acd5399c06080e74de7f1ad8c61f9465a">CastRay</a> (const <a class="el" href="struct_r_ray_cast.html">RRayCast</a> &amp;inRay, <a class="el" href="class_ray_cast_result.html">RayCastResult</a> &amp;ioHit) const</td></tr>
  131. <tr class="separator:acd5399c06080e74de7f1ad8c61f9465a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:ae4af56e1fa6544074e06b589de4d77b9" id="r_ae4af56e1fa6544074e06b589de4d77b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae4af56e1fa6544074e06b589de4d77b9">CastRay</a> (const <a class="el" href="struct_r_ray_cast.html">RRayCast</a> &amp;inRay, const <a class="el" href="class_ray_cast_settings.html">RayCastSettings</a> &amp;inRayCastSettings, <a class="el" href="_shape_8h.html#a09896ea7755d75dc0c2c3e7058a6b85b">CastRayCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter={ }) const</td></tr>
  133. <tr class="separator:ae4af56e1fa6544074e06b589de4d77b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:ad589cfe7574f79645c39f917e15aff08" id="r_ad589cfe7574f79645c39f917e15aff08"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad589cfe7574f79645c39f917e15aff08">CollidePoint</a> (<a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inPoint, <a class="el" href="_shape_8h.html#aebaf36faa66f5b466411acbe12342d70">CollidePointCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter={ }) const</td></tr>
  135. <tr class="separator:ad589cfe7574f79645c39f917e15aff08"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:ad302129a3ff14b43463ec6514a79f988" id="r_ad302129a3ff14b43463ec6514a79f988"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad302129a3ff14b43463ec6514a79f988">CollideShape</a> (const <a class="el" href="class_shape.html">Shape</a> *inShape, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inShapeScale, <a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inCenterOfMassTransform, const <a class="el" href="class_collide_shape_settings.html">CollideShapeSettings</a> &amp;inCollideShapeSettings, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset, <a class="el" href="_shape_8h.html#af33744a7638d2c8e3ba97737b069f8d2">CollideShapeCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter={ }) const</td></tr>
  137. <tr class="separator:ad302129a3ff14b43463ec6514a79f988"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:ab9b03e726e2992e5a4ca1df568d5ae75" id="r_ab9b03e726e2992e5a4ca1df568d5ae75"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab9b03e726e2992e5a4ca1df568d5ae75">CastShape</a> (const <a class="el" href="struct_r_shape_cast.html">RShapeCast</a> &amp;inShapeCast, const <a class="el" href="class_shape_cast_settings.html">ShapeCastSettings</a> &amp;inShapeCastSettings, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset, <a class="el" href="_shape_8h.html#a501dee38fc3089311c7c9408ceda7401">CastShapeCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter={ }) const</td></tr>
  139. <tr class="separator:ab9b03e726e2992e5a4ca1df568d5ae75"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:a5379d6bf4807440be14c96829e7fa5bd" id="r_a5379d6bf4807440be14c96829e7fa5bd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5379d6bf4807440be14c96829e7fa5bd">CollectTransformedShapes</a> (const <a class="el" href="class_a_a_box.html">AABox</a> &amp;inBox, <a class="el" href="_shape_8h.html#ac1f1a1681fa4d69dfbc6cd9cc08c2ee4">TransformedShapeCollector</a> &amp;ioCollector, const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;inShapeFilter={ }) const</td></tr>
  141. <tr class="separator:a5379d6bf4807440be14c96829e7fa5bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:ab5c4bf71ad1569f890bccf3b71248b43" id="r_ab5c4bf71ad1569f890bccf3b71248b43"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab5c4bf71ad1569f890bccf3b71248b43">GetTrianglesStart</a> (<a class="el" href="#aca84b10055165beff1ca288bf6ccfd34">GetTrianglesContext</a> &amp;ioContext, const <a class="el" href="class_a_a_box.html">AABox</a> &amp;inBox, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset) const</td></tr>
  143. <tr class="separator:ab5c4bf71ad1569f890bccf3b71248b43"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:a7f4d127145d57e13ff41523a3c8ecd9e" id="r_a7f4d127145d57e13ff41523a3c8ecd9e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7f4d127145d57e13ff41523a3c8ecd9e">GetTrianglesNext</a> (<a class="el" href="#aca84b10055165beff1ca288bf6ccfd34">GetTrianglesContext</a> &amp;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</td></tr>
  145. <tr class="separator:a7f4d127145d57e13ff41523a3c8ecd9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. <tr class="memitem:a9f0559c4106b9b17becd5f401389b354" id="r_a9f0559c4106b9b17becd5f401389b354"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9f0559c4106b9b17becd5f401389b354">GetShapeScale</a> () const</td></tr>
  147. <tr class="memdesc:a9f0559c4106b9b17becd5f401389b354"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/set the scale of the shape as a <a class="el" href="class_vec3.html">Vec3</a>. <br /></td></tr>
  148. <tr class="separator:a9f0559c4106b9b17becd5f401389b354"><td class="memSeparator" colspan="2">&#160;</td></tr>
  149. <tr class="memitem:a0923e9bc45b0d6ee42d5350da78d51cc" id="r_a0923e9bc45b0d6ee42d5350da78d51cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0923e9bc45b0d6ee42d5350da78d51cc">SetShapeScale</a> (<a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale)</td></tr>
  150. <tr class="separator:a0923e9bc45b0d6ee42d5350da78d51cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  151. <tr class="memitem:afba760db30ccff8c59547cce78bd97a4" id="r_afba760db30ccff8c59547cce78bd97a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_real_8h.html#ab2b99ab2c9bab2170e4744e9fb519625">RMat44</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afba760db30ccff8c59547cce78bd97a4">GetCenterOfMassTransform</a> () const</td></tr>
  152. <tr class="memdesc:afba760db30ccff8c59547cce78bd97a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the transform for this shape's center of mass (excluding scale) <br /></td></tr>
  153. <tr class="separator:afba760db30ccff8c59547cce78bd97a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:a928f396b885e8fea11417ba0e651c678" id="r_a928f396b885e8fea11417ba0e651c678"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_real_8h.html#ab2b99ab2c9bab2170e4744e9fb519625">RMat44</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a928f396b885e8fea11417ba0e651c678">GetInverseCenterOfMassTransform</a> () const</td></tr>
  155. <tr class="memdesc:a928f396b885e8fea11417ba0e651c678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the inverse of the transform for this shape's center of mass (excluding scale) <br /></td></tr>
  156. <tr class="separator:a928f396b885e8fea11417ba0e651c678"><td class="memSeparator" colspan="2">&#160;</td></tr>
  157. <tr class="memitem:a8499fda3638a4246e152a2a298905852" id="r_a8499fda3638a4246e152a2a298905852"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8499fda3638a4246e152a2a298905852">SetWorldTransform</a> (<a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inPosition, <a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a> inRotation, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inScale)</td></tr>
  158. <tr class="memdesc:a8499fda3638a4246e152a2a298905852"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the world transform (including scale) of this transformed shape (not from the center of mass but in the space the shape was created) <br /></td></tr>
  159. <tr class="separator:a8499fda3638a4246e152a2a298905852"><td class="memSeparator" colspan="2">&#160;</td></tr>
  160. <tr class="memitem:a6634ea434c5877c1f458137d0b05e137" id="r_a6634ea434c5877c1f458137d0b05e137"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6634ea434c5877c1f458137d0b05e137">SetWorldTransform</a> (<a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a> inTransform)</td></tr>
  161. <tr class="memdesc:a6634ea434c5877c1f458137d0b05e137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the world transform (including scale) of this transformed shape (not from the center of mass but in the space the shape was created) <br /></td></tr>
  162. <tr class="separator:a6634ea434c5877c1f458137d0b05e137"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. <tr class="memitem:af233e9488d9738108c192ab850758cd9" id="r_af233e9488d9738108c192ab850758cd9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_real_8h.html#ab2b99ab2c9bab2170e4744e9fb519625">RMat44</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af233e9488d9738108c192ab850758cd9">GetWorldTransform</a> () const</td></tr>
  164. <tr class="memdesc:af233e9488d9738108c192ab850758cd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the world transform including scale of this shape (not from the center of mass but in the space the shape was created) <br /></td></tr>
  165. <tr class="separator:af233e9488d9738108c192ab850758cd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  166. <tr class="memitem:a33b12d09ebaf2071dd49a3873978ac0a" id="r_a33b12d09ebaf2071dd49a3873978ac0a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_a_a_box.html">AABox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a33b12d09ebaf2071dd49a3873978ac0a">GetWorldSpaceBounds</a> () const</td></tr>
  167. <tr class="memdesc:a33b12d09ebaf2071dd49a3873978ac0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the world space bounding box for this transformed shape. <br /></td></tr>
  168. <tr class="separator:a33b12d09ebaf2071dd49a3873978ac0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. <tr class="memitem:a1ac86317085e88189d1b8a2635dcec44" id="r_a1ac86317085e88189d1b8a2635dcec44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_sub_shape_i_d.html">SubShapeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1ac86317085e88189d1b8a2635dcec44">MakeSubShapeIDRelativeToShape</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID) const</td></tr>
  170. <tr class="memdesc:a1ac86317085e88189d1b8a2635dcec44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make inSubShapeID relative to mShape. When mSubShapeIDCreator is not empty, this is needed in order to get the correct path to the sub shape. <br /></td></tr>
  171. <tr class="separator:a1ac86317085e88189d1b8a2635dcec44"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. <tr class="memitem:a38fdd1585da3137083b8ee9f9bdcdd98" id="r_a38fdd1585da3137083b8ee9f9bdcdd98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_vec3.html">Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a38fdd1585da3137083b8ee9f9bdcdd98">GetWorldSpaceSurfaceNormal</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inPosition) const</td></tr>
  173. <tr class="separator:a38fdd1585da3137083b8ee9f9bdcdd98"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <tr class="memitem:abf8db8122d754ad62720f3da6f67be4d" id="r_abf8db8122d754ad62720f3da6f67be4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abf8db8122d754ad62720f3da6f67be4d">GetSupportingFace</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID, <a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a> inDirection, <a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a> inBaseOffset, <a class="el" href="class_shape.html#a95d3060318d33c1ef314c5b856a70cb8">Shape::SupportingFace</a> &amp;outVertices) const</td></tr>
  175. <tr class="separator:abf8db8122d754ad62720f3da6f67be4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <tr class="memitem:a8995638ea07aab36ba41e63bce603002" id="r_a8995638ea07aab36ba41e63bce603002"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_physics_material.html">PhysicsMaterial</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8995638ea07aab36ba41e63bce603002">GetMaterial</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID) const</td></tr>
  177. <tr class="memdesc:a8995638ea07aab36ba41e63bce603002"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get material of a particular sub shape. <br /></td></tr>
  178. <tr class="separator:a8995638ea07aab36ba41e63bce603002"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. <tr class="memitem:a98ca3c64d2bc65548a4845085c53eba5" id="r_a98ca3c64d2bc65548a4845085c53eba5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a98ca3c64d2bc65548a4845085c53eba5">GetSubShapeUserData</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID) const</td></tr>
  180. <tr class="memdesc:a98ca3c64d2bc65548a4845085c53eba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the user data of a particular sub shape. <br /></td></tr>
  181. <tr class="separator:a98ca3c64d2bc65548a4845085c53eba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <tr class="memitem:a8ef1a33902094dcdd6f20f63868c5ea2" id="r_a8ef1a33902094dcdd6f20f63868c5ea2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_transformed_shape.html">TransformedShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8ef1a33902094dcdd6f20f63868c5ea2">GetSubShapeTransformedShape</a> (const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;inSubShapeID, <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;outRemainder) const</td></tr>
  183. <tr class="separator:a8ef1a33902094dcdd6f20f63868c5ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. </table><table class="memberdecls">
  185. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  186. Static Public Member Functions</h2></td></tr>
  187. <tr class="memitem:a2a845c1bfaae3c821a7c8b0f517bd02d" id="r_a2a845c1bfaae3c821a7c8b0f517bd02d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_body_i_d.html">BodyID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2a845c1bfaae3c821a7c8b0f517bd02d">sGetBodyID</a> (const <a class="el" href="class_transformed_shape.html">TransformedShape</a> *inTS)</td></tr>
  188. <tr class="memdesc:a2a845c1bfaae3c821a7c8b0f517bd02d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to return the body id from a transformed shape. If the transformed shape is null an invalid body ID will be returned. <br /></td></tr>
  189. <tr class="separator:a2a845c1bfaae3c821a7c8b0f517bd02d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. </table><table class="memberdecls">
  191. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
  192. Public Attributes</h2></td></tr>
  193. <tr class="memitem:a37f8180dfc1c74cf7d97aca0eca7a0f5" id="r_a37f8180dfc1c74cf7d97aca0eca7a0f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_real_8h.html#ae088dda635fb0ba1c96ea179d384ca40">RVec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a37f8180dfc1c74cf7d97aca0eca7a0f5">mShapePositionCOM</a></td></tr>
  194. <tr class="memdesc:a37f8180dfc1c74cf7d97aca0eca7a0f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Center of mass world position of the shape. <br /></td></tr>
  195. <tr class="separator:a37f8180dfc1c74cf7d97aca0eca7a0f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:a329c136e38910229e39c31971819a34b" id="r_a329c136e38910229e39c31971819a34b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_quat.html">Quat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a329c136e38910229e39c31971819a34b">mShapeRotation</a></td></tr>
  197. <tr class="memdesc:a329c136e38910229e39c31971819a34b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotation of the shape. <br /></td></tr>
  198. <tr class="separator:a329c136e38910229e39c31971819a34b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  199. <tr class="memitem:ac6aaf976fee41c402c791012e4a2a3f9" id="r_ac6aaf976fee41c402c791012e4a2a3f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_ref_const.html">RefConst</a>&lt; <a class="el" href="class_shape.html">Shape</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac6aaf976fee41c402c791012e4a2a3f9">mShape</a></td></tr>
  200. <tr class="memdesc:ac6aaf976fee41c402c791012e4a2a3f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The shape itself. <br /></td></tr>
  201. <tr class="separator:ac6aaf976fee41c402c791012e4a2a3f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  202. <tr class="memitem:ad0e68878e0a74dcced58313f161b11f8" id="r_ad0e68878e0a74dcced58313f161b11f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_float3.html">Float3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad0e68878e0a74dcced58313f161b11f8">mShapeScale</a> { 1, 1, 1 }</td></tr>
  203. <tr class="memdesc:ad0e68878e0a74dcced58313f161b11f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Not stored as <a class="el" href="class_vec3.html">Vec3</a> to get a nicely packed structure. <br /></td></tr>
  204. <tr class="separator:ad0e68878e0a74dcced58313f161b11f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  205. <tr class="memitem:ae45d21f8b2ee5407c3ca2264ab2a5ebe" id="r_ae45d21f8b2ee5407c3ca2264ab2a5ebe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_body_i_d.html">BodyID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae45d21f8b2ee5407c3ca2264ab2a5ebe">mBodyID</a></td></tr>
  206. <tr class="memdesc:ae45d21f8b2ee5407c3ca2264ab2a5ebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional body ID from which this shape comes. <br /></td></tr>
  207. <tr class="separator:ae45d21f8b2ee5407c3ca2264ab2a5ebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
  208. <tr class="memitem:a3d0b38db0aacff1c3188a0c20f45e713" id="r_a3d0b38db0aacff1c3188a0c20f45e713"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3d0b38db0aacff1c3188a0c20f45e713">mSubShapeIDCreator</a></td></tr>
  209. <tr class="memdesc:a3d0b38db0aacff1c3188a0c20f45e713"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional sub shape ID creator for the shape (can be used when expanding compound shapes into multiple transformed shapes) <br /></td></tr>
  210. <tr class="separator:a3d0b38db0aacff1c3188a0c20f45e713"><td class="memSeparator" colspan="2">&#160;</td></tr>
  211. </table>
  212. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  213. <div class="textblock"><p>Temporary data structure that contains a shape and a transform. This structure can be obtained from a body (e.g. after a broad phase query) under lock protection. The lock can then be released and collision detection operations can be safely performed since the class takes a reference on the shape and does not use anything from the body anymore. </p>
  214. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  215. <a id="aca84b10055165beff1ca288bf6ccfd34" name="aca84b10055165beff1ca288bf6ccfd34"></a>
  216. <h2 class="memtitle"><span class="permalink"><a href="#aca84b10055165beff1ca288bf6ccfd34">&#9670;&#160;</a></span>GetTrianglesContext</h2>
  217. <div class="memitem">
  218. <div class="memproto">
  219. <table class="memname">
  220. <tr>
  221. <td class="memname">using <a class="el" href="#aca84b10055165beff1ca288bf6ccfd34">TransformedShape::GetTrianglesContext</a> = <a class="el" href="struct_shape_1_1_get_triangles_context.html">Shape::GetTrianglesContext</a></td>
  222. </tr>
  223. </table>
  224. </div><div class="memdoc">
  225. <p>Use the context from <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>. </p>
  226. </div>
  227. </div>
  228. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  229. <a id="aa2bca98098fc17f1d18ea542a619eff0" name="aa2bca98098fc17f1d18ea542a619eff0"></a>
  230. <h2 class="memtitle"><span class="permalink"><a href="#aa2bca98098fc17f1d18ea542a619eff0">&#9670;&#160;</a></span>TransformedShape() <span class="overload">[1/2]</span></h2>
  231. <div class="memitem">
  232. <div class="memproto">
  233. <table class="mlabels">
  234. <tr>
  235. <td class="mlabels-left">
  236. <table class="memname">
  237. <tr>
  238. <td class="memname"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a> TransformedShape::TransformedShape </td>
  239. <td>(</td>
  240. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  241. <td></td>
  242. </tr>
  243. </table>
  244. </td>
  245. <td class="mlabels-right">
  246. <span class="mlabels"><span class="mlabel">default</span></span> </td>
  247. </tr>
  248. </table>
  249. </div><div class="memdoc">
  250. <p>Constructor. </p>
  251. </div>
  252. </div>
  253. <a id="a8a62ed0edd25b3a64ecdcaab55de237e" name="a8a62ed0edd25b3a64ecdcaab55de237e"></a>
  254. <h2 class="memtitle"><span class="permalink"><a href="#a8a62ed0edd25b3a64ecdcaab55de237e">&#9670;&#160;</a></span>TransformedShape() <span class="overload">[2/2]</span></h2>
  255. <div class="memitem">
  256. <div class="memproto">
  257. <table class="mlabels">
  258. <tr>
  259. <td class="mlabels-left">
  260. <table class="memname">
  261. <tr>
  262. <td class="memname">TransformedShape::TransformedShape </td>
  263. <td>(</td>
  264. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPositionCOM</em></span>, </td>
  265. </tr>
  266. <tr>
  267. <td class="paramkey"></td>
  268. <td></td>
  269. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRotation</em></span>, </td>
  270. </tr>
  271. <tr>
  272. <td class="paramkey"></td>
  273. <td></td>
  274. <td class="paramtype">const <a class="el" href="class_shape.html">Shape</a> *</td> <td class="paramname"><span class="paramname"><em>inShape</em></span>, </td>
  275. </tr>
  276. <tr>
  277. <td class="paramkey"></td>
  278. <td></td>
  279. <td class="paramtype">const <a class="el" href="class_body_i_d.html">BodyID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBodyID</em></span>, </td>
  280. </tr>
  281. <tr>
  282. <td class="paramkey"></td>
  283. <td></td>
  284. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeIDCreator</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a>()</span>&#160;)</td>
  285. </tr>
  286. </table>
  287. </td>
  288. <td class="mlabels-right">
  289. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  290. </tr>
  291. </table>
  292. </div><div class="memdoc">
  293. </div>
  294. </div>
  295. <h2 class="groupheader">Member Function Documentation</h2>
  296. <a id="ae4af56e1fa6544074e06b589de4d77b9" name="ae4af56e1fa6544074e06b589de4d77b9"></a>
  297. <h2 class="memtitle"><span class="permalink"><a href="#ae4af56e1fa6544074e06b589de4d77b9">&#9670;&#160;</a></span>CastRay() <span class="overload">[1/2]</span></h2>
  298. <div class="memitem">
  299. <div class="memproto">
  300. <table class="memname">
  301. <tr>
  302. <td class="memname">void TransformedShape::CastRay </td>
  303. <td>(</td>
  304. <td class="paramtype">const <a class="el" href="struct_r_ray_cast.html">RRayCast</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRay</em></span>, </td>
  305. </tr>
  306. <tr>
  307. <td class="paramkey"></td>
  308. <td></td>
  309. <td class="paramtype">const <a class="el" href="class_ray_cast_settings.html">RayCastSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRayCastSettings</em></span>, </td>
  310. </tr>
  311. <tr>
  312. <td class="paramkey"></td>
  313. <td></td>
  314. <td class="paramtype"><a class="el" href="_shape_8h.html#a09896ea7755d75dc0c2c3e7058a6b85b">CastRayCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  315. </tr>
  316. <tr>
  317. <td class="paramkey"></td>
  318. <td></td>
  319. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{&#160;}</span>&#160;) const</td>
  320. </tr>
  321. </table>
  322. </div><div class="memdoc">
  323. <p>Cast a ray, allows collecting multiple hits. Note that this version is more flexible but also slightly slower than the CastRay function that returns only a single hit. If you want the surface normal of the hit use GetWorldSpaceSurfaceNormal(collected sub shape ID, inRay.GetPointOnRay(collected fraction)) on this object. </p>
  324. </div>
  325. </div>
  326. <a id="acd5399c06080e74de7f1ad8c61f9465a" name="acd5399c06080e74de7f1ad8c61f9465a"></a>
  327. <h2 class="memtitle"><span class="permalink"><a href="#acd5399c06080e74de7f1ad8c61f9465a">&#9670;&#160;</a></span>CastRay() <span class="overload">[2/2]</span></h2>
  328. <div class="memitem">
  329. <div class="memproto">
  330. <table class="memname">
  331. <tr>
  332. <td class="memname"><a class="el" href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a> bool TransformedShape::CastRay </td>
  333. <td>(</td>
  334. <td class="paramtype">const <a class="el" href="struct_r_ray_cast.html">RRayCast</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inRay</em></span>, </td>
  335. </tr>
  336. <tr>
  337. <td class="paramkey"></td>
  338. <td></td>
  339. <td class="paramtype"><a class="el" href="class_ray_cast_result.html">RayCastResult</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioHit</em></span>&#160;) const</td>
  340. </tr>
  341. </table>
  342. </div><div class="memdoc">
  343. <p>Cast a ray and find the closest hit. Returns true if it finds a hit. Hits further than ioHit.mFraction will not be considered and in this case ioHit will remain unmodified (and the function will return false). Convex objects will be treated as solid (meaning if the ray starts inside, you'll get a hit fraction of 0) and back face hits are returned. If you want the surface normal of the hit use GetWorldSpaceSurfaceNormal(ioHit.mSubShapeID2, inRay.GetPointOnRay(ioHit.mFraction)) on this object. </p>
  344. </div>
  345. </div>
  346. <a id="ab9b03e726e2992e5a4ca1df568d5ae75" name="ab9b03e726e2992e5a4ca1df568d5ae75"></a>
  347. <h2 class="memtitle"><span class="permalink"><a href="#ab9b03e726e2992e5a4ca1df568d5ae75">&#9670;&#160;</a></span>CastShape()</h2>
  348. <div class="memitem">
  349. <div class="memproto">
  350. <table class="memname">
  351. <tr>
  352. <td class="memname">void TransformedShape::CastShape </td>
  353. <td>(</td>
  354. <td class="paramtype">const <a class="el" href="struct_r_shape_cast.html">RShapeCast</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeCast</em></span>, </td>
  355. </tr>
  356. <tr>
  357. <td class="paramkey"></td>
  358. <td></td>
  359. <td class="paramtype">const <a class="el" href="class_shape_cast_settings.html">ShapeCastSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeCastSettings</em></span>, </td>
  360. </tr>
  361. <tr>
  362. <td class="paramkey"></td>
  363. <td></td>
  364. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inBaseOffset</em></span>, </td>
  365. </tr>
  366. <tr>
  367. <td class="paramkey"></td>
  368. <td></td>
  369. <td class="paramtype"><a class="el" href="_shape_8h.html#a501dee38fc3089311c7c9408ceda7401">CastShapeCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  370. </tr>
  371. <tr>
  372. <td class="paramkey"></td>
  373. <td></td>
  374. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{&#160;}</span>&#160;) const</td>
  375. </tr>
  376. </table>
  377. </div><div class="memdoc">
  378. <p>Cast a shape and report any hits to ioCollector </p><dl class="params"><dt>Parameters</dt><dd>
  379. <table class="params">
  380. <tr><td class="paramname">inShapeCast</td><td>The shape cast and its position and direction </td></tr>
  381. <tr><td class="paramname">inShapeCastSettings</td><td>Settings for the shape cast </td></tr>
  382. <tr><td class="paramname">inBaseOffset</td><td>All hit results will be returned relative to this offset, can be zero to get results in world position, but when you're testing far from the origin you get better precision by picking a position that's closer e.g. mShapePositionCOM or inShapeCast.mCenterOfMassStart.GetTranslation() since floats are most accurate near the origin </td></tr>
  383. <tr><td class="paramname">ioCollector</td><td>Collector that receives the hits </td></tr>
  384. <tr><td class="paramname">inShapeFilter</td><td>Filter that allows you to reject collisions </td></tr>
  385. </table>
  386. </dd>
  387. </dl>
  388. </div>
  389. </div>
  390. <a id="a5379d6bf4807440be14c96829e7fa5bd" name="a5379d6bf4807440be14c96829e7fa5bd"></a>
  391. <h2 class="memtitle"><span class="permalink"><a href="#a5379d6bf4807440be14c96829e7fa5bd">&#9670;&#160;</a></span>CollectTransformedShapes()</h2>
  392. <div class="memitem">
  393. <div class="memproto">
  394. <table class="memname">
  395. <tr>
  396. <td class="memname">void TransformedShape::CollectTransformedShapes </td>
  397. <td>(</td>
  398. <td class="paramtype">const <a class="el" href="class_a_a_box.html">AABox</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  399. </tr>
  400. <tr>
  401. <td class="paramkey"></td>
  402. <td></td>
  403. <td class="paramtype"><a class="el" href="_shape_8h.html#ac1f1a1681fa4d69dfbc6cd9cc08c2ee4">TransformedShapeCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  404. </tr>
  405. <tr>
  406. <td class="paramkey"></td>
  407. <td></td>
  408. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{&#160;}</span>&#160;) const</td>
  409. </tr>
  410. </table>
  411. </div><div class="memdoc">
  412. <p>Collect the leaf transformed shapes of all leaf shapes of this shape inBox is the world space axis aligned box which leaf shapes should collide with </p>
  413. </div>
  414. </div>
  415. <a id="ad589cfe7574f79645c39f917e15aff08" name="ad589cfe7574f79645c39f917e15aff08"></a>
  416. <h2 class="memtitle"><span class="permalink"><a href="#ad589cfe7574f79645c39f917e15aff08">&#9670;&#160;</a></span>CollidePoint()</h2>
  417. <div class="memitem">
  418. <div class="memproto">
  419. <table class="memname">
  420. <tr>
  421. <td class="memname">void TransformedShape::CollidePoint </td>
  422. <td>(</td>
  423. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPoint</em></span>, </td>
  424. </tr>
  425. <tr>
  426. <td class="paramkey"></td>
  427. <td></td>
  428. <td class="paramtype"><a class="el" href="_shape_8h.html#aebaf36faa66f5b466411acbe12342d70">CollidePointCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  429. </tr>
  430. <tr>
  431. <td class="paramkey"></td>
  432. <td></td>
  433. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{&#160;}</span>&#160;) const</td>
  434. </tr>
  435. </table>
  436. </div><div class="memdoc">
  437. <p>Check if inPoint is inside any shapes. For this tests all shapes are treated as if they were solid. For a mesh shape, this test will only provide sensible information if the mesh is a closed manifold. For each shape that collides, ioCollector will receive a hit </p>
  438. </div>
  439. </div>
  440. <a id="ad302129a3ff14b43463ec6514a79f988" name="ad302129a3ff14b43463ec6514a79f988"></a>
  441. <h2 class="memtitle"><span class="permalink"><a href="#ad302129a3ff14b43463ec6514a79f988">&#9670;&#160;</a></span>CollideShape()</h2>
  442. <div class="memitem">
  443. <div class="memproto">
  444. <table class="memname">
  445. <tr>
  446. <td class="memname">void TransformedShape::CollideShape </td>
  447. <td>(</td>
  448. <td class="paramtype">const <a class="el" href="class_shape.html">Shape</a> *</td> <td class="paramname"><span class="paramname"><em>inShape</em></span>, </td>
  449. </tr>
  450. <tr>
  451. <td class="paramkey"></td>
  452. <td></td>
  453. <td class="paramtype"><a class="el" href="_math_types_8h.html#a6bc57c31f15cea47640b580d03737c68">Vec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inShapeScale</em></span>, </td>
  454. </tr>
  455. <tr>
  456. <td class="paramkey"></td>
  457. <td></td>
  458. <td class="paramtype"><a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a></td> <td class="paramname"><span class="paramname"><em>inCenterOfMassTransform</em></span>, </td>
  459. </tr>
  460. <tr>
  461. <td class="paramkey"></td>
  462. <td></td>
  463. <td class="paramtype">const <a class="el" href="class_collide_shape_settings.html">CollideShapeSettings</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inCollideShapeSettings</em></span>, </td>
  464. </tr>
  465. <tr>
  466. <td class="paramkey"></td>
  467. <td></td>
  468. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inBaseOffset</em></span>, </td>
  469. </tr>
  470. <tr>
  471. <td class="paramkey"></td>
  472. <td></td>
  473. <td class="paramtype"><a class="el" href="_shape_8h.html#af33744a7638d2c8e3ba97737b069f8d2">CollideShapeCollector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioCollector</em></span>, </td>
  474. </tr>
  475. <tr>
  476. <td class="paramkey"></td>
  477. <td></td>
  478. <td class="paramtype">const <a class="el" href="class_shape_filter.html">ShapeFilter</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inShapeFilter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{&#160;}</span>&#160;) const</td>
  479. </tr>
  480. </table>
  481. </div><div class="memdoc">
  482. <p>Collide a shape and report any hits to ioCollector </p><dl class="params"><dt>Parameters</dt><dd>
  483. <table class="params">
  484. <tr><td class="paramname">inShape</td><td><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> to test </td></tr>
  485. <tr><td class="paramname">inShapeScale</td><td>Scale in local space of shape </td></tr>
  486. <tr><td class="paramname">inCenterOfMassTransform</td><td>Center of mass transform for the shape </td></tr>
  487. <tr><td class="paramname">inCollideShapeSettings</td><td>Settings </td></tr>
  488. <tr><td class="paramname">inBaseOffset</td><td>All hit results will be returned relative to this offset, can be zero to get results in world position, but when you're testing far from the origin you get better precision by picking a position that's closer e.g. mShapePositionCOM since floats are most accurate near the origin </td></tr>
  489. <tr><td class="paramname">ioCollector</td><td>Collector that receives the hits </td></tr>
  490. <tr><td class="paramname">inShapeFilter</td><td>Filter that allows you to reject collisions </td></tr>
  491. </table>
  492. </dd>
  493. </dl>
  494. </div>
  495. </div>
  496. <a id="afba760db30ccff8c59547cce78bd97a4" name="afba760db30ccff8c59547cce78bd97a4"></a>
  497. <h2 class="memtitle"><span class="permalink"><a href="#afba760db30ccff8c59547cce78bd97a4">&#9670;&#160;</a></span>GetCenterOfMassTransform()</h2>
  498. <div class="memitem">
  499. <div class="memproto">
  500. <table class="mlabels">
  501. <tr>
  502. <td class="mlabels-left">
  503. <table class="memname">
  504. <tr>
  505. <td class="memname"><a class="el" href="_real_8h.html#ab2b99ab2c9bab2170e4744e9fb519625">RMat44</a> TransformedShape::GetCenterOfMassTransform </td>
  506. <td>(</td>
  507. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  508. <td> const</td>
  509. </tr>
  510. </table>
  511. </td>
  512. <td class="mlabels-right">
  513. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  514. </tr>
  515. </table>
  516. </div><div class="memdoc">
  517. <p>Calculates the transform for this shape's center of mass (excluding scale) </p>
  518. </div>
  519. </div>
  520. <a id="a928f396b885e8fea11417ba0e651c678" name="a928f396b885e8fea11417ba0e651c678"></a>
  521. <h2 class="memtitle"><span class="permalink"><a href="#a928f396b885e8fea11417ba0e651c678">&#9670;&#160;</a></span>GetInverseCenterOfMassTransform()</h2>
  522. <div class="memitem">
  523. <div class="memproto">
  524. <table class="mlabels">
  525. <tr>
  526. <td class="mlabels-left">
  527. <table class="memname">
  528. <tr>
  529. <td class="memname"><a class="el" href="_real_8h.html#ab2b99ab2c9bab2170e4744e9fb519625">RMat44</a> TransformedShape::GetInverseCenterOfMassTransform </td>
  530. <td>(</td>
  531. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  532. <td> const</td>
  533. </tr>
  534. </table>
  535. </td>
  536. <td class="mlabels-right">
  537. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  538. </tr>
  539. </table>
  540. </div><div class="memdoc">
  541. <p>Calculates the inverse of the transform for this shape's center of mass (excluding scale) </p>
  542. </div>
  543. </div>
  544. <a id="a8995638ea07aab36ba41e63bce603002" name="a8995638ea07aab36ba41e63bce603002"></a>
  545. <h2 class="memtitle"><span class="permalink"><a href="#a8995638ea07aab36ba41e63bce603002">&#9670;&#160;</a></span>GetMaterial()</h2>
  546. <div class="memitem">
  547. <div class="memproto">
  548. <table class="mlabels">
  549. <tr>
  550. <td class="mlabels-left">
  551. <table class="memname">
  552. <tr>
  553. <td class="memname">const <a class="el" href="class_physics_material.html">PhysicsMaterial</a> * TransformedShape::GetMaterial </td>
  554. <td>(</td>
  555. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span></td><td>)</td>
  556. <td> const</td>
  557. </tr>
  558. </table>
  559. </td>
  560. <td class="mlabels-right">
  561. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  562. </tr>
  563. </table>
  564. </div><div class="memdoc">
  565. <p>Get material of a particular sub shape. </p>
  566. </div>
  567. </div>
  568. <a id="a9f0559c4106b9b17becd5f401389b354" name="a9f0559c4106b9b17becd5f401389b354"></a>
  569. <h2 class="memtitle"><span class="permalink"><a href="#a9f0559c4106b9b17becd5f401389b354">&#9670;&#160;</a></span>GetShapeScale()</h2>
  570. <div class="memitem">
  571. <div class="memproto">
  572. <table class="mlabels">
  573. <tr>
  574. <td class="mlabels-left">
  575. <table class="memname">
  576. <tr>
  577. <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> TransformedShape::GetShapeScale </td>
  578. <td>(</td>
  579. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  580. <td> const</td>
  581. </tr>
  582. </table>
  583. </td>
  584. <td class="mlabels-right">
  585. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  586. </tr>
  587. </table>
  588. </div><div class="memdoc">
  589. <p>Get/set the scale of the shape as a <a class="el" href="class_vec3.html">Vec3</a>. </p>
  590. </div>
  591. </div>
  592. <a id="a8ef1a33902094dcdd6f20f63868c5ea2" name="a8ef1a33902094dcdd6f20f63868c5ea2"></a>
  593. <h2 class="memtitle"><span class="permalink"><a href="#a8ef1a33902094dcdd6f20f63868c5ea2">&#9670;&#160;</a></span>GetSubShapeTransformedShape()</h2>
  594. <div class="memitem">
  595. <div class="memproto">
  596. <table class="mlabels">
  597. <tr>
  598. <td class="mlabels-left">
  599. <table class="memname">
  600. <tr>
  601. <td class="memname"><a class="el" href="class_transformed_shape.html">TransformedShape</a> TransformedShape::GetSubShapeTransformedShape </td>
  602. <td>(</td>
  603. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span>, </td>
  604. </tr>
  605. <tr>
  606. <td class="paramkey"></td>
  607. <td></td>
  608. <td class="paramtype"><a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outRemainder</em></span>&#160;) const</td>
  609. </tr>
  610. </table>
  611. </td>
  612. <td class="mlabels-right">
  613. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  614. </tr>
  615. </table>
  616. </div><div class="memdoc">
  617. <p>Get the direct child sub shape and its transform for a sub shape ID. </p><dl class="params"><dt>Parameters</dt><dd>
  618. <table class="params">
  619. <tr><td class="paramname">inSubShapeID</td><td>Sub shape ID that indicates the path to the leaf shape </td></tr>
  620. <tr><td class="paramname">outRemainder</td><td>The remainder of the sub shape ID after removing the sub shape </td></tr>
  621. </table>
  622. </dd>
  623. </dl>
  624. <dl class="section return"><dt>Returns</dt><dd>Direct child sub shape and its transform, note that the body ID and sub shape ID will be invalid </dd></dl>
  625. </div>
  626. </div>
  627. <a id="a98ca3c64d2bc65548a4845085c53eba5" name="a98ca3c64d2bc65548a4845085c53eba5"></a>
  628. <h2 class="memtitle"><span class="permalink"><a href="#a98ca3c64d2bc65548a4845085c53eba5">&#9670;&#160;</a></span>GetSubShapeUserData()</h2>
  629. <div class="memitem">
  630. <div class="memproto">
  631. <table class="mlabels">
  632. <tr>
  633. <td class="mlabels-left">
  634. <table class="memname">
  635. <tr>
  636. <td class="memname"><a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> TransformedShape::GetSubShapeUserData </td>
  637. <td>(</td>
  638. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span></td><td>)</td>
  639. <td> const</td>
  640. </tr>
  641. </table>
  642. </td>
  643. <td class="mlabels-right">
  644. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  645. </tr>
  646. </table>
  647. </div><div class="memdoc">
  648. <p>Get the user data of a particular sub shape. </p>
  649. </div>
  650. </div>
  651. <a id="abf8db8122d754ad62720f3da6f67be4d" name="abf8db8122d754ad62720f3da6f67be4d"></a>
  652. <h2 class="memtitle"><span class="permalink"><a href="#abf8db8122d754ad62720f3da6f67be4d">&#9670;&#160;</a></span>GetSupportingFace()</h2>
  653. <div class="memitem">
  654. <div class="memproto">
  655. <table class="mlabels">
  656. <tr>
  657. <td class="mlabels-left">
  658. <table class="memname">
  659. <tr>
  660. <td class="memname">void TransformedShape::GetSupportingFace </td>
  661. <td>(</td>
  662. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span>, </td>
  663. </tr>
  664. <tr>
  665. <td class="paramkey"></td>
  666. <td></td>
  667. <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>
  668. </tr>
  669. <tr>
  670. <td class="paramkey"></td>
  671. <td></td>
  672. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inBaseOffset</em></span>, </td>
  673. </tr>
  674. <tr>
  675. <td class="paramkey"></td>
  676. <td></td>
  677. <td class="paramtype"><a class="el" href="class_shape.html#a95d3060318d33c1ef314c5b856a70cb8">Shape::SupportingFace</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outVertices</em></span>&#160;) const</td>
  678. </tr>
  679. </table>
  680. </td>
  681. <td class="mlabels-right">
  682. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  683. </tr>
  684. </table>
  685. </div><div class="memdoc">
  686. <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>
  687. <table class="params">
  688. <tr><td class="paramname">inSubShapeID</td><td>Sub shape ID of target shape </td></tr>
  689. <tr><td class="paramname">inDirection</td><td>Direction that the face should be facing (in world space) </td></tr>
  690. <tr><td class="paramname">inBaseOffset</td><td>The vertices will be returned relative to this offset, can be zero to get results in world position, but when you're testing far from the origin you get better precision by picking a position that's closer e.g. mShapePositionCOM since floats are most accurate near the origin </td></tr>
  691. <tr><td class="paramname">outVertices</td><td>Resulting face. Note the returned face can have a single point 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>
  692. </table>
  693. </dd>
  694. </dl>
  695. </div>
  696. </div>
  697. <a id="a7f4d127145d57e13ff41523a3c8ecd9e" name="a7f4d127145d57e13ff41523a3c8ecd9e"></a>
  698. <h2 class="memtitle"><span class="permalink"><a href="#a7f4d127145d57e13ff41523a3c8ecd9e">&#9670;&#160;</a></span>GetTrianglesNext()</h2>
  699. <div class="memitem">
  700. <div class="memproto">
  701. <table class="memname">
  702. <tr>
  703. <td class="memname">int TransformedShape::GetTrianglesNext </td>
  704. <td>(</td>
  705. <td class="paramtype"><a class="el" href="#aca84b10055165beff1ca288bf6ccfd34">GetTrianglesContext</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioContext</em></span>, </td>
  706. </tr>
  707. <tr>
  708. <td class="paramkey"></td>
  709. <td></td>
  710. <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>inMaxTrianglesRequested</em></span>, </td>
  711. </tr>
  712. <tr>
  713. <td class="paramkey"></td>
  714. <td></td>
  715. <td class="paramtype"><a class="el" href="class_float3.html">Float3</a> *</td> <td class="paramname"><span class="paramname"><em>outTriangleVertices</em></span>, </td>
  716. </tr>
  717. <tr>
  718. <td class="paramkey"></td>
  719. <td></td>
  720. <td class="paramtype">const <a class="el" href="class_physics_material.html">PhysicsMaterial</a> **</td> <td class="paramname"><span class="paramname"><em>outMaterials</em></span><span class="paramdefsep"> = </span><span class="paramdefval">nullptr</span>&#160;) const</td>
  721. </tr>
  722. </table>
  723. </div><div class="memdoc">
  724. <p>Call this repeatedly to get all triangles in the box. outTriangleVertices should be large enough to hold 3 * inMaxTriangleRequested entries outMaterials (if it is not null) should contain inMaxTrianglesRequested entries The function returns the amount of triangles that it found (which will be &lt;= inMaxTrianglesRequested), or 0 if there are no more triangles. Note that the function can return a value &lt; inMaxTrianglesRequested and still have more triangles to process (triangles can be returned in blocks) Note that the function may return triangles outside of the requested box, only coarse culling is performed on the returned triangles </p>
  725. </div>
  726. </div>
  727. <a id="ab5c4bf71ad1569f890bccf3b71248b43" name="ab5c4bf71ad1569f890bccf3b71248b43"></a>
  728. <h2 class="memtitle"><span class="permalink"><a href="#ab5c4bf71ad1569f890bccf3b71248b43">&#9670;&#160;</a></span>GetTrianglesStart()</h2>
  729. <div class="memitem">
  730. <div class="memproto">
  731. <table class="memname">
  732. <tr>
  733. <td class="memname">void TransformedShape::GetTrianglesStart </td>
  734. <td>(</td>
  735. <td class="paramtype"><a class="el" href="#aca84b10055165beff1ca288bf6ccfd34">GetTrianglesContext</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ioContext</em></span>, </td>
  736. </tr>
  737. <tr>
  738. <td class="paramkey"></td>
  739. <td></td>
  740. <td class="paramtype">const <a class="el" href="class_a_a_box.html">AABox</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inBox</em></span>, </td>
  741. </tr>
  742. <tr>
  743. <td class="paramkey"></td>
  744. <td></td>
  745. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inBaseOffset</em></span>&#160;) const</td>
  746. </tr>
  747. </table>
  748. </div><div class="memdoc">
  749. <p>To start iterating over triangles, call this function first. To get the actual triangles call GetTrianglesNext. </p><dl class="params"><dt>Parameters</dt><dd>
  750. <table class="params">
  751. <tr><td class="paramname">ioContext</td><td>A temporary buffer and should remain untouched until the last call to GetTrianglesNext. </td></tr>
  752. <tr><td class="paramname">inBox</td><td>The world space bounding in which you want to get the triangles. </td></tr>
  753. <tr><td class="paramname">inBaseOffset</td><td>All hit results will be returned relative to this offset, can be zero to get results in world position, but when you're testing far from the origin you get better precision by picking a position that's closer e.g. inBox.GetCenter() since floats are most accurate near the origin </td></tr>
  754. </table>
  755. </dd>
  756. </dl>
  757. </div>
  758. </div>
  759. <a id="a33b12d09ebaf2071dd49a3873978ac0a" name="a33b12d09ebaf2071dd49a3873978ac0a"></a>
  760. <h2 class="memtitle"><span class="permalink"><a href="#a33b12d09ebaf2071dd49a3873978ac0a">&#9670;&#160;</a></span>GetWorldSpaceBounds()</h2>
  761. <div class="memitem">
  762. <div class="memproto">
  763. <table class="mlabels">
  764. <tr>
  765. <td class="mlabels-left">
  766. <table class="memname">
  767. <tr>
  768. <td class="memname"><a class="el" href="class_a_a_box.html">AABox</a> TransformedShape::GetWorldSpaceBounds </td>
  769. <td>(</td>
  770. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  771. <td> const</td>
  772. </tr>
  773. </table>
  774. </td>
  775. <td class="mlabels-right">
  776. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  777. </tr>
  778. </table>
  779. </div><div class="memdoc">
  780. <p>Get the world space bounding box for this transformed shape. </p>
  781. </div>
  782. </div>
  783. <a id="a38fdd1585da3137083b8ee9f9bdcdd98" name="a38fdd1585da3137083b8ee9f9bdcdd98"></a>
  784. <h2 class="memtitle"><span class="permalink"><a href="#a38fdd1585da3137083b8ee9f9bdcdd98">&#9670;&#160;</a></span>GetWorldSpaceSurfaceNormal()</h2>
  785. <div class="memitem">
  786. <div class="memproto">
  787. <table class="mlabels">
  788. <tr>
  789. <td class="mlabels-left">
  790. <table class="memname">
  791. <tr>
  792. <td class="memname"><a class="el" href="class_vec3.html">Vec3</a> TransformedShape::GetWorldSpaceSurfaceNormal </td>
  793. <td>(</td>
  794. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span>, </td>
  795. </tr>
  796. <tr>
  797. <td class="paramkey"></td>
  798. <td></td>
  799. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPosition</em></span>&#160;) const</td>
  800. </tr>
  801. </table>
  802. </td>
  803. <td class="mlabels-right">
  804. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  805. </tr>
  806. </table>
  807. </div><div class="memdoc">
  808. <p>Get surface normal of a particular sub shape and its world space surface position on this body. Note: When you have a <a class="el" href="class_collide_shape_result.html" title="Class that contains all information of two colliding shapes.">CollideShapeResult</a> or <a class="el" href="class_shape_cast_result.html" title="Result of a shape cast test.">ShapeCastResult</a> you should use -mPenetrationAxis.Normalized() as contact normal as GetWorldSpaceSurfaceNormal will only return face normals (and not vertex or edge normals). </p>
  809. </div>
  810. </div>
  811. <a id="af233e9488d9738108c192ab850758cd9" name="af233e9488d9738108c192ab850758cd9"></a>
  812. <h2 class="memtitle"><span class="permalink"><a href="#af233e9488d9738108c192ab850758cd9">&#9670;&#160;</a></span>GetWorldTransform()</h2>
  813. <div class="memitem">
  814. <div class="memproto">
  815. <table class="mlabels">
  816. <tr>
  817. <td class="mlabels-left">
  818. <table class="memname">
  819. <tr>
  820. <td class="memname"><a class="el" href="_real_8h.html#ab2b99ab2c9bab2170e4744e9fb519625">RMat44</a> TransformedShape::GetWorldTransform </td>
  821. <td>(</td>
  822. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  823. <td> const</td>
  824. </tr>
  825. </table>
  826. </td>
  827. <td class="mlabels-right">
  828. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  829. </tr>
  830. </table>
  831. </div><div class="memdoc">
  832. <p>Calculates the world transform including scale of this shape (not from the center of mass but in the space the shape was created) </p>
  833. </div>
  834. </div>
  835. <a id="a1ac86317085e88189d1b8a2635dcec44" name="a1ac86317085e88189d1b8a2635dcec44"></a>
  836. <h2 class="memtitle"><span class="permalink"><a href="#a1ac86317085e88189d1b8a2635dcec44">&#9670;&#160;</a></span>MakeSubShapeIDRelativeToShape()</h2>
  837. <div class="memitem">
  838. <div class="memproto">
  839. <table class="mlabels">
  840. <tr>
  841. <td class="mlabels-left">
  842. <table class="memname">
  843. <tr>
  844. <td class="memname"><a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> TransformedShape::MakeSubShapeIDRelativeToShape </td>
  845. <td>(</td>
  846. <td class="paramtype">const <a class="el" href="class_sub_shape_i_d.html">SubShapeID</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inSubShapeID</em></span></td><td>)</td>
  847. <td> const</td>
  848. </tr>
  849. </table>
  850. </td>
  851. <td class="mlabels-right">
  852. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  853. </tr>
  854. </table>
  855. </div><div class="memdoc">
  856. <p>Make inSubShapeID relative to mShape. When mSubShapeIDCreator is not empty, this is needed in order to get the correct path to the sub shape. </p>
  857. </div>
  858. </div>
  859. <a id="a0923e9bc45b0d6ee42d5350da78d51cc" name="a0923e9bc45b0d6ee42d5350da78d51cc"></a>
  860. <h2 class="memtitle"><span class="permalink"><a href="#a0923e9bc45b0d6ee42d5350da78d51cc">&#9670;&#160;</a></span>SetShapeScale()</h2>
  861. <div class="memitem">
  862. <div class="memproto">
  863. <table class="mlabels">
  864. <tr>
  865. <td class="mlabels-left">
  866. <table class="memname">
  867. <tr>
  868. <td class="memname">void TransformedShape::SetShapeScale </td>
  869. <td>(</td>
  870. <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>
  871. <td></td>
  872. </tr>
  873. </table>
  874. </td>
  875. <td class="mlabels-right">
  876. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  877. </tr>
  878. </table>
  879. </div><div class="memdoc">
  880. </div>
  881. </div>
  882. <a id="a6634ea434c5877c1f458137d0b05e137" name="a6634ea434c5877c1f458137d0b05e137"></a>
  883. <h2 class="memtitle"><span class="permalink"><a href="#a6634ea434c5877c1f458137d0b05e137">&#9670;&#160;</a></span>SetWorldTransform() <span class="overload">[1/2]</span></h2>
  884. <div class="memitem">
  885. <div class="memproto">
  886. <table class="mlabels">
  887. <tr>
  888. <td class="mlabels-left">
  889. <table class="memname">
  890. <tr>
  891. <td class="memname">void TransformedShape::SetWorldTransform </td>
  892. <td>(</td>
  893. <td class="paramtype"><a class="el" href="_real_8h.html#a61b9fb9774ecfc9a33318eead7118ee9">RMat44Arg</a></td> <td class="paramname"><span class="paramname"><em>inTransform</em></span></td><td>)</td>
  894. <td></td>
  895. </tr>
  896. </table>
  897. </td>
  898. <td class="mlabels-right">
  899. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  900. </tr>
  901. </table>
  902. </div><div class="memdoc">
  903. <p>Sets the world transform (including scale) of this transformed shape (not from the center of mass but in the space the shape was created) </p>
  904. </div>
  905. </div>
  906. <a id="a8499fda3638a4246e152a2a298905852" name="a8499fda3638a4246e152a2a298905852"></a>
  907. <h2 class="memtitle"><span class="permalink"><a href="#a8499fda3638a4246e152a2a298905852">&#9670;&#160;</a></span>SetWorldTransform() <span class="overload">[2/2]</span></h2>
  908. <div class="memitem">
  909. <div class="memproto">
  910. <table class="mlabels">
  911. <tr>
  912. <td class="mlabels-left">
  913. <table class="memname">
  914. <tr>
  915. <td class="memname">void TransformedShape::SetWorldTransform </td>
  916. <td>(</td>
  917. <td class="paramtype"><a class="el" href="_real_8h.html#a43bea2d9c57780b4b66bab1312fd77f3">RVec3Arg</a></td> <td class="paramname"><span class="paramname"><em>inPosition</em></span>, </td>
  918. </tr>
  919. <tr>
  920. <td class="paramkey"></td>
  921. <td></td>
  922. <td class="paramtype"><a class="el" href="_math_types_8h.html#a3c723d55f34e02bc506abe3dfb7bd2aa">QuatArg</a></td> <td class="paramname"><span class="paramname"><em>inRotation</em></span>, </td>
  923. </tr>
  924. <tr>
  925. <td class="paramkey"></td>
  926. <td></td>
  927. <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>&#160;)</td>
  928. </tr>
  929. </table>
  930. </td>
  931. <td class="mlabels-right">
  932. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  933. </tr>
  934. </table>
  935. </div><div class="memdoc">
  936. <p>Sets the world transform (including scale) of this transformed shape (not from the center of mass but in the space the shape was created) </p>
  937. </div>
  938. </div>
  939. <a id="a2a845c1bfaae3c821a7c8b0f517bd02d" name="a2a845c1bfaae3c821a7c8b0f517bd02d"></a>
  940. <h2 class="memtitle"><span class="permalink"><a href="#a2a845c1bfaae3c821a7c8b0f517bd02d">&#9670;&#160;</a></span>sGetBodyID()</h2>
  941. <div class="memitem">
  942. <div class="memproto">
  943. <table class="mlabels">
  944. <tr>
  945. <td class="mlabels-left">
  946. <table class="memname">
  947. <tr>
  948. <td class="memname">static <a class="el" href="class_body_i_d.html">BodyID</a> TransformedShape::sGetBodyID </td>
  949. <td>(</td>
  950. <td class="paramtype">const <a class="el" href="class_transformed_shape.html">TransformedShape</a> *</td> <td class="paramname"><span class="paramname"><em>inTS</em></span></td><td>)</td>
  951. <td></td>
  952. </tr>
  953. </table>
  954. </td>
  955. <td class="mlabels-right">
  956. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  957. </tr>
  958. </table>
  959. </div><div class="memdoc">
  960. <p>Helper function to return the body id from a transformed shape. If the transformed shape is null an invalid body ID will be returned. </p>
  961. </div>
  962. </div>
  963. <h2 class="groupheader">Member Data Documentation</h2>
  964. <a id="ae45d21f8b2ee5407c3ca2264ab2a5ebe" name="ae45d21f8b2ee5407c3ca2264ab2a5ebe"></a>
  965. <h2 class="memtitle"><span class="permalink"><a href="#ae45d21f8b2ee5407c3ca2264ab2a5ebe">&#9670;&#160;</a></span>mBodyID</h2>
  966. <div class="memitem">
  967. <div class="memproto">
  968. <table class="memname">
  969. <tr>
  970. <td class="memname"><a class="el" href="class_body_i_d.html">BodyID</a> TransformedShape::mBodyID</td>
  971. </tr>
  972. </table>
  973. </div><div class="memdoc">
  974. <p>Optional body ID from which this shape comes. </p>
  975. </div>
  976. </div>
  977. <a id="ac6aaf976fee41c402c791012e4a2a3f9" name="ac6aaf976fee41c402c791012e4a2a3f9"></a>
  978. <h2 class="memtitle"><span class="permalink"><a href="#ac6aaf976fee41c402c791012e4a2a3f9">&#9670;&#160;</a></span>mShape</h2>
  979. <div class="memitem">
  980. <div class="memproto">
  981. <table class="memname">
  982. <tr>
  983. <td class="memname"><a class="el" href="class_ref_const.html">RefConst</a>&lt;<a class="el" href="class_shape.html">Shape</a>&gt; TransformedShape::mShape</td>
  984. </tr>
  985. </table>
  986. </div><div class="memdoc">
  987. <p>The shape itself. </p>
  988. </div>
  989. </div>
  990. <a id="a37f8180dfc1c74cf7d97aca0eca7a0f5" name="a37f8180dfc1c74cf7d97aca0eca7a0f5"></a>
  991. <h2 class="memtitle"><span class="permalink"><a href="#a37f8180dfc1c74cf7d97aca0eca7a0f5">&#9670;&#160;</a></span>mShapePositionCOM</h2>
  992. <div class="memitem">
  993. <div class="memproto">
  994. <table class="memname">
  995. <tr>
  996. <td class="memname"><a class="el" href="_real_8h.html#ae088dda635fb0ba1c96ea179d384ca40">RVec3</a> TransformedShape::mShapePositionCOM</td>
  997. </tr>
  998. </table>
  999. </div><div class="memdoc">
  1000. <p>Center of mass world position of the shape. </p>
  1001. </div>
  1002. </div>
  1003. <a id="a329c136e38910229e39c31971819a34b" name="a329c136e38910229e39c31971819a34b"></a>
  1004. <h2 class="memtitle"><span class="permalink"><a href="#a329c136e38910229e39c31971819a34b">&#9670;&#160;</a></span>mShapeRotation</h2>
  1005. <div class="memitem">
  1006. <div class="memproto">
  1007. <table class="memname">
  1008. <tr>
  1009. <td class="memname"><a class="el" href="class_quat.html">Quat</a> TransformedShape::mShapeRotation</td>
  1010. </tr>
  1011. </table>
  1012. </div><div class="memdoc">
  1013. <p>Rotation of the shape. </p>
  1014. </div>
  1015. </div>
  1016. <a id="ad0e68878e0a74dcced58313f161b11f8" name="ad0e68878e0a74dcced58313f161b11f8"></a>
  1017. <h2 class="memtitle"><span class="permalink"><a href="#ad0e68878e0a74dcced58313f161b11f8">&#9670;&#160;</a></span>mShapeScale</h2>
  1018. <div class="memitem">
  1019. <div class="memproto">
  1020. <table class="memname">
  1021. <tr>
  1022. <td class="memname"><a class="el" href="class_float3.html">Float3</a> TransformedShape::mShapeScale { 1, 1, 1 }</td>
  1023. </tr>
  1024. </table>
  1025. </div><div class="memdoc">
  1026. <p>Not stored as <a class="el" href="class_vec3.html">Vec3</a> to get a nicely packed structure. </p>
  1027. </div>
  1028. </div>
  1029. <a id="a3d0b38db0aacff1c3188a0c20f45e713" name="a3d0b38db0aacff1c3188a0c20f45e713"></a>
  1030. <h2 class="memtitle"><span class="permalink"><a href="#a3d0b38db0aacff1c3188a0c20f45e713">&#9670;&#160;</a></span>mSubShapeIDCreator</h2>
  1031. <div class="memitem">
  1032. <div class="memproto">
  1033. <table class="memname">
  1034. <tr>
  1035. <td class="memname"><a class="el" href="class_sub_shape_i_d_creator.html">SubShapeIDCreator</a> TransformedShape::mSubShapeIDCreator</td>
  1036. </tr>
  1037. </table>
  1038. </div><div class="memdoc">
  1039. <p>Optional sub shape ID creator for the shape (can be used when expanding compound shapes into multiple transformed shapes) </p>
  1040. </div>
  1041. </div>
  1042. <hr/>The documentation for this class was generated from the following files:<ul>
  1043. <li>Jolt/Physics/Collision/<a class="el" href="_transformed_shape_8h_source.html">TransformedShape.h</a></li>
  1044. <li>Jolt/Physics/Collision/<a class="el" href="_transformed_shape_8cpp.html">TransformedShape.cpp</a></li>
  1045. </ul>
  1046. </div><!-- contents -->
  1047. </div><!-- doc-content -->
  1048. <!-- start footer part -->
  1049. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  1050. <ul>
  1051. <li class="navelem"><a class="el" href="class_transformed_shape.html">TransformedShape</a></li>
  1052. <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>
  1053. </ul>
  1054. </div>
  1055. </body>
  1056. </html>