Files
PhysX4.1/physx/documentation/PhysXAPI/files/classPxRigidBodyExt.html
2025-11-28 23:13:44 +05:30

1429 lines
99 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxRigidBodyExt 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>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</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>
<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 style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classPxRigidBodyExt.html','');});
/* @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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classPxRigidBodyExt-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">PxRigidBodyExt Class Reference<div class="ingroups"><a class="el" href="group__extensions.html">Extensions</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>utility functions for use with <a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects. ">PxRigidBody</a> and subclasses
<a href="classPxRigidBodyExt.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PxRigidBodyExt_8h_source.html">PxRigidBodyExt.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a769be90cdb138897ce426aa04ac0a1e7"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#a769be90cdb138897ce426aa04ac0a1e7">updateMassAndInertia</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const PxReal *shapeDensities, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> shapeDensityCount, const <a class="el" href="classPxVec3.html">PxVec3</a> *massLocalPose=NULL, bool includeNonSimShapes=false)</td></tr>
<tr class="memdesc:a769be90cdb138897ce426aa04ac0a1e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computation of mass properties for a rigid body actor. <a href="#a769be90cdb138897ce426aa04ac0a1e7">More...</a><br /></td></tr>
<tr class="separator:a769be90cdb138897ce426aa04ac0a1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3799da4d9faefd65517222250bacf33a"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#a3799da4d9faefd65517222250bacf33a">updateMassAndInertia</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, PxReal density, const <a class="el" href="classPxVec3.html">PxVec3</a> *massLocalPose=NULL, bool includeNonSimShapes=false)</td></tr>
<tr class="memdesc:a3799da4d9faefd65517222250bacf33a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computation of mass properties for a rigid body actor. <a href="#a3799da4d9faefd65517222250bacf33a">More...</a><br /></td></tr>
<tr class="separator:a3799da4d9faefd65517222250bacf33a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8f6af57a0fde875c41e5d747dec49fb"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#ab8f6af57a0fde875c41e5d747dec49fb">setMassAndUpdateInertia</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const PxReal *shapeMasses, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> shapeMassCount, const <a class="el" href="classPxVec3.html">PxVec3</a> *massLocalPose=NULL, bool includeNonSimShapes=false)</td></tr>
<tr class="memdesc:ab8f6af57a0fde875c41e5d747dec49fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computation of mass properties for a rigid body actor. <a href="#ab8f6af57a0fde875c41e5d747dec49fb">More...</a><br /></td></tr>
<tr class="separator:ab8f6af57a0fde875c41e5d747dec49fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33cb51d74c87d8b6f8a33c7e3580372d"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#a33cb51d74c87d8b6f8a33c7e3580372d">setMassAndUpdateInertia</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, PxReal mass, const <a class="el" href="classPxVec3.html">PxVec3</a> *massLocalPose=NULL, bool includeNonSimShapes=false)</td></tr>
<tr class="memdesc:a33cb51d74c87d8b6f8a33c7e3580372d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computation of mass properties for a rigid body actor. <a href="#a33cb51d74c87d8b6f8a33c7e3580372d">More...</a><br /></td></tr>
<tr class="separator:a33cb51d74c87d8b6f8a33c7e3580372d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44f1a4248b259bc96ff5dfb233860b4d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classPxMassProperties.html">PxMassProperties</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#a44f1a4248b259bc96ff5dfb233860b4d">computeMassPropertiesFromShapes</a> (const <a class="el" href="classPxShape.html">PxShape</a> *const *shapes, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> shapeCount)</td></tr>
<tr class="memdesc:a44f1a4248b259bc96ff5dfb233860b4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the mass, inertia tensor and center of mass from a list of shapes. <a href="#a44f1a4248b259bc96ff5dfb233860b4d">More...</a><br /></td></tr>
<tr class="separator:a44f1a4248b259bc96ff5dfb233860b4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e3a81ec184fe8981dbbcebff6da1f61"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#a0e3a81ec184fe8981dbbcebff6da1f61">addForceAtPos</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;<a class="el" href="PxArticulationReducedCoordinate_8h.html#a1f5925a4680ca8dff39369ff8d47ab7c">force</a>, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;pos, <a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> mode=<a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545a6e707aa50e1612a2603643ee2df85f1a">PxForceMode::eFORCE</a>, bool wakeup=true)</td></tr>
<tr class="memdesc:a0e3a81ec184fe8981dbbcebff6da1f61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in global coordinates, to the actor. <a href="#a0e3a81ec184fe8981dbbcebff6da1f61">More...</a><br /></td></tr>
<tr class="separator:a0e3a81ec184fe8981dbbcebff6da1f61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a732d9246bc10aef4aa76f4a6c941c7c5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#a732d9246bc10aef4aa76f4a6c941c7c5">addForceAtLocalPos</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;<a class="el" href="PxArticulationReducedCoordinate_8h.html#a1f5925a4680ca8dff39369ff8d47ab7c">force</a>, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;pos, <a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> mode=<a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545a6e707aa50e1612a2603643ee2df85f1a">PxForceMode::eFORCE</a>, bool wakeup=true)</td></tr>
<tr class="memdesc:a732d9246bc10aef4aa76f4a6c941c7c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in local coordinates, to the actor. <a href="#a732d9246bc10aef4aa76f4a6c941c7c5">More...</a><br /></td></tr>
<tr class="separator:a732d9246bc10aef4aa76f4a6c941c7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0df8ee24ebf8b840909bdb09c8d90717"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#a0df8ee24ebf8b840909bdb09c8d90717">addLocalForceAtPos</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;<a class="el" href="PxArticulationReducedCoordinate_8h.html#a1f5925a4680ca8dff39369ff8d47ab7c">force</a>, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;pos, <a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> mode=<a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545a6e707aa50e1612a2603643ee2df85f1a">PxForceMode::eFORCE</a>, bool wakeup=true)</td></tr>
<tr class="memdesc:a0df8ee24ebf8b840909bdb09c8d90717"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular point in global coordinates, to the actor. <a href="#a0df8ee24ebf8b840909bdb09c8d90717">More...</a><br /></td></tr>
<tr class="separator:a0df8ee24ebf8b840909bdb09c8d90717"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace7be55938f260ee769b993c6c90d288"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#ace7be55938f260ee769b993c6c90d288">addLocalForceAtLocalPos</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;<a class="el" href="PxArticulationReducedCoordinate_8h.html#a1f5925a4680ca8dff39369ff8d47ab7c">force</a>, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;pos, <a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> mode=<a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545a6e707aa50e1612a2603643ee2df85f1a">PxForceMode::eFORCE</a>, bool wakeup=true)</td></tr>
<tr class="memdesc:ace7be55938f260ee769b993c6c90d288"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular point in local coordinates, to the actor. <a href="#ace7be55938f260ee769b993c6c90d288">More...</a><br /></td></tr>
<tr class="separator:ace7be55938f260ee769b993c6c90d288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acce31159814673df7781eb62ee032ef2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classPxVec3.html">PxVec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#acce31159814673df7781eb62ee032ef2">getVelocityAtPos</a> (const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;pos)</td></tr>
<tr class="memdesc:acce31159814673df7781eb62ee032ef2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the velocity of a point given in world coordinates if it were attached to the specified body and moving with it. <a href="#acce31159814673df7781eb62ee032ef2">More...</a><br /></td></tr>
<tr class="separator:acce31159814673df7781eb62ee032ef2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab79486496528ea623774e7a9b021633d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classPxVec3.html">PxVec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#ab79486496528ea623774e7a9b021633d">getLocalVelocityAtLocalPos</a> (const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;pos)</td></tr>
<tr class="memdesc:ab79486496528ea623774e7a9b021633d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the velocity of a point given in local coordinates if it were attached to the specified body and moving with it. <a href="#ab79486496528ea623774e7a9b021633d">More...</a><br /></td></tr>
<tr class="separator:ab79486496528ea623774e7a9b021633d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afed73713b7c1032a7ce921c7de25a278"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classPxVec3.html">PxVec3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#afed73713b7c1032a7ce921c7de25a278">getVelocityAtOffset</a> (const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;pos)</td></tr>
<tr class="memdesc:afed73713b7c1032a7ce921c7de25a278"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the velocity of a point (offset from the origin of the body) given in world coordinates if it were attached to the specified body and moving with it. <a href="#afed73713b7c1032a7ce921c7de25a278">More...</a><br /></td></tr>
<tr class="separator:afed73713b7c1032a7ce921c7de25a278"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abff916a23a3b9f0e362d1ba2345f45dd"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#abff916a23a3b9f0e362d1ba2345f45dd">linearSweepSingle</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, <a class="el" href="classPxScene.html">PxScene</a> &amp;scene, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;unitDir, const PxReal distance, PxHitFlags outputFlags, <a class="el" href="structPxSweepHit.html">PxSweepHit</a> &amp;closestHit, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> &amp;shapeIndex, const <a class="el" href="structPxQueryFilterData.html">PxQueryFilterData</a> &amp;filterData=<a class="el" href="structPxQueryFilterData.html">PxQueryFilterData</a>(), <a class="el" href="classPxQueryFilterCallback.html">PxQueryFilterCallback</a> *filterCall=NULL, const <a class="el" href="structPxQueryCache.html">PxQueryCache</a> *cache=NULL, const PxReal inflation=0.0f)</td></tr>
<tr class="memdesc:abff916a23a3b9f0e362d1ba2345f45dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a linear sweep through space with the body's geometry objects. <a href="#abff916a23a3b9f0e362d1ba2345f45dd">More...</a><br /></td></tr>
<tr class="separator:abff916a23a3b9f0e362d1ba2345f45dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfc2b24aa3d9207ce6af21094151aede"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#adfc2b24aa3d9207ce6af21094151aede">linearSweepMultiple</a> (<a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, <a class="el" href="classPxScene.html">PxScene</a> &amp;scene, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;unitDir, const PxReal distance, PxHitFlags outputFlags, <a class="el" href="structPxSweepHit.html">PxSweepHit</a> *touchHitBuffer, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *touchHitShapeIndices, <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> touchHitBufferSize, <a class="el" href="structPxSweepHit.html">PxSweepHit</a> &amp;block, PxI32 &amp;blockingShapeIndex, bool &amp;overflow, const <a class="el" href="structPxQueryFilterData.html">PxQueryFilterData</a> &amp;filterData=<a class="el" href="structPxQueryFilterData.html">PxQueryFilterData</a>(), <a class="el" href="classPxQueryFilterCallback.html">PxQueryFilterCallback</a> *filterCall=NULL, const <a class="el" href="structPxQueryCache.html">PxQueryCache</a> *cache=NULL, const PxReal inflation=0.0f)</td></tr>
<tr class="memdesc:adfc2b24aa3d9207ce6af21094151aede"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a linear sweep through space with the body's geometry objects, returning all overlaps. <a href="#adfc2b24aa3d9207ce6af21094151aede">More...</a><br /></td></tr>
<tr class="separator:adfc2b24aa3d9207ce6af21094151aede"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0684e41c619824229cdedb47e06563a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#aa0684e41c619824229cdedb47e06563a">computeVelocityDeltaFromImpulse</a> (const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;impulsiveForce, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;impulsiveTorque, <a class="el" href="classPxVec3.html">PxVec3</a> &amp;deltaLinearVelocity, <a class="el" href="classPxVec3.html">PxVec3</a> &amp;deltaAngularVelocity)</td></tr>
<tr class="memdesc:aa0684e41c619824229cdedb47e06563a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the change to linear and angular velocity that would occur if an impulsive force and torque were to be applied to a specified rigid body. <a href="#aa0684e41c619824229cdedb47e06563a">More...</a><br /></td></tr>
<tr class="separator:aa0684e41c619824229cdedb47e06563a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc672d4db8e02d4ddc1d8ee18068221a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#abc672d4db8e02d4ddc1d8ee18068221a">computeVelocityDeltaFromImpulse</a> (const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;globalPose, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;point, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;impulse, const PxReal invMassScale, const PxReal invInertiaScale, <a class="el" href="classPxVec3.html">PxVec3</a> &amp;deltaLinearVelocity, <a class="el" href="classPxVec3.html">PxVec3</a> &amp;deltaAngularVelocity)</td></tr>
<tr class="memdesc:abc672d4db8e02d4ddc1d8ee18068221a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the linear and angular velocity change vectors for a given impulse at a world space position taking a mass and inertia scale into account. <a href="#abc672d4db8e02d4ddc1d8ee18068221a">More...</a><br /></td></tr>
<tr class="separator:abc672d4db8e02d4ddc1d8ee18068221a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1215782ff3e5c18ca42d8805578c21a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBodyExt.html#aa1215782ff3e5c18ca42d8805578c21a">computeLinearAngularImpulse</a> (const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;body, const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;globalPose, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;point, const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;impulse, const PxReal invMassScale, const PxReal invInertiaScale, <a class="el" href="classPxVec3.html">PxVec3</a> &amp;linearImpulse, <a class="el" href="classPxVec3.html">PxVec3</a> &amp;angularImpulse)</td></tr>
<tr class="memdesc:aa1215782ff3e5c18ca42d8805578c21a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the linear and angular impulse vectors for a given impulse at a world space position taking a mass and inertia scale into account. <a href="#aa1215782ff3e5c18ca42d8805578c21a">More...</a><br /></td></tr>
<tr class="separator:aa1215782ff3e5c18ca42d8805578c21a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>utility functions for use with <a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects. ">PxRigidBody</a> and subclasses </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects. ">PxRigidBody</a> <a class="el" href="classPxRigidDynamic.html" title="PxRigidDynamic represents a dynamic rigid simulation object in the physics SDK. ">PxRigidDynamic</a> <a class="el" href="classPxArticulationLink.html" title="a component of an articulation that represents a rigid body ">PxArticulationLink</a> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a732d9246bc10aef4aa76f4a6c941c7c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a732d9246bc10aef4aa76f4a6c941c7c5">&#9670;&nbsp;</a></span>addForceAtLocalPos()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void PxRigidBodyExt::addForceAtLocalPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>force</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>pos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545">PxForceMode::Enum</a>&#160;</td>
<td class="paramname"><em>mode</em> = <code><a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545a6e707aa50e1612a2603643ee2df85f1a">PxForceMode::eFORCE</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>wakeup</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in local coordinates, to the actor. </p>
<p>Note that if the force does not act along the center of mass of the actor, this will also add the corresponding torque. Because forces are reset at the end of every timestep, you can maintain a total external force on an object by calling this once every frame.</p>
<dl class="section note"><dt>Note</dt><dd>if this call is used to apply a force or impulse to an articulation link, only the link is updated, not the entire articulation</dd></dl>
<p><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a> determines if the force is to be conventional or impulsive. Only eFORCE and eIMPULSE are supported, as the force required to produce a given velocity change or acceleration is underdetermined given only the desired change at a given point.</p>
<p><b>Sleeping:</b> This call wakes the actor if it is sleeping and the wakeup parameter is true (default).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body to apply the force to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">force</td><td>Force/impulse to add, defined in the global frame. <b>Range:</b> force vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position in the local frame to add the force at. <b>Range:</b> position vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>The mode to use when applying the force/impulse(see <a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a>). </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">wakeup</td><td>Specify if the call should wake up the actor.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a> </dd>
<dd>
<a class="el" href="classPxRigidBodyExt.html#a0e3a81ec184fe8981dbbcebff6da1f61" title="Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in ...">addForceAtPos()</a> <a class="el" href="classPxRigidBodyExt.html#a0df8ee24ebf8b840909bdb09c8d90717" title="Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular poin...">addLocalForceAtPos()</a> <a class="el" href="classPxRigidBodyExt.html#ace7be55938f260ee769b993c6c90d288" title="Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular poin...">addLocalForceAtLocalPos()</a> </dd></dl>
</div>
</div>
<a id="a0e3a81ec184fe8981dbbcebff6da1f61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e3a81ec184fe8981dbbcebff6da1f61">&#9670;&nbsp;</a></span>addForceAtPos()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void PxRigidBodyExt::addForceAtPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>force</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>pos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545">PxForceMode::Enum</a>&#160;</td>
<td class="paramname"><em>mode</em> = <code><a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545a6e707aa50e1612a2603643ee2df85f1a">PxForceMode::eFORCE</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>wakeup</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in global coordinates, to the actor. </p>
<p>Note that if the force does not act along the center of mass of the actor, this will also add the corresponding torque. Because forces are reset at the end of every timestep, you can maintain a total external force on an object by calling this once every frame.</p>
<dl class="section note"><dt>Note</dt><dd>if this call is used to apply a force or impulse to an articulation link, only the link is updated, not the entire articulation</dd></dl>
<p><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a> determines if the force is to be conventional or impulsive. Only eFORCE and eIMPULSE are supported, as the force required to produce a given velocity change or acceleration is underdetermined given only the desired change at a given point.</p>
<p><b>Sleeping:</b> This call wakes the actor if it is sleeping and the wakeup parameter is true (default).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body to apply the force to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">force</td><td>Force/impulse to add, defined in the global frame. <b>Range:</b> force vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position in the global frame to add the force at. <b>Range:</b> position vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>The mode to use when applying the force/impulse(see <a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a>). </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">wakeup</td><td>Specify if the call should wake up the actor.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a> </dd>
<dd>
<a class="el" href="classPxRigidBodyExt.html#a732d9246bc10aef4aa76f4a6c941c7c5" title="Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in ...">addForceAtLocalPos()</a> <a class="el" href="classPxRigidBodyExt.html#a0df8ee24ebf8b840909bdb09c8d90717" title="Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular poin...">addLocalForceAtPos()</a> <a class="el" href="classPxRigidBodyExt.html#ace7be55938f260ee769b993c6c90d288" title="Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular poin...">addLocalForceAtLocalPos()</a> </dd></dl>
</div>
</div>
<a id="ace7be55938f260ee769b993c6c90d288"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace7be55938f260ee769b993c6c90d288">&#9670;&nbsp;</a></span>addLocalForceAtLocalPos()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void PxRigidBodyExt::addLocalForceAtLocalPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>force</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>pos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545">PxForceMode::Enum</a>&#160;</td>
<td class="paramname"><em>mode</em> = <code><a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545a6e707aa50e1612a2603643ee2df85f1a">PxForceMode::eFORCE</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>wakeup</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular point in local coordinates, to the actor. </p>
<p>Note that if the force does not act along the center of mass of the actor, this will also add the corresponding torque. Because forces are reset at the end of every timestep, you can maintain a total external force on an object by calling this once every frame.</p>
<dl class="section note"><dt>Note</dt><dd>if this call is used to apply a force or impulse to an articulation link, only the link is updated, not the entire articulation</dd></dl>
<p><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a> determines if the force is to be conventional or impulsive. Only eFORCE and eIMPULSE are supported, as the force required to produce a given velocity change or acceleration is underdetermined given only the desired change at a given point.</p>
<p><b>Sleeping:</b> This call wakes the actor if it is sleeping and the wakeup parameter is true (default).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body to apply the force to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">force</td><td>Force/impulse to add, defined in the local frame. <b>Range:</b> force vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position in the local frame to add the force at. <b>Range:</b> position vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>The mode to use when applying the force/impulse(see <a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a>). </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">wakeup</td><td>Specify if the call should wake up the actor.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a> </dd>
<dd>
<a class="el" href="classPxRigidBodyExt.html#a0e3a81ec184fe8981dbbcebff6da1f61" title="Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in ...">addForceAtPos()</a> <a class="el" href="classPxRigidBodyExt.html#a732d9246bc10aef4aa76f4a6c941c7c5" title="Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in ...">addForceAtLocalPos()</a> <a class="el" href="classPxRigidBodyExt.html#a0df8ee24ebf8b840909bdb09c8d90717" title="Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular poin...">addLocalForceAtPos()</a> </dd></dl>
</div>
</div>
<a id="a0df8ee24ebf8b840909bdb09c8d90717"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0df8ee24ebf8b840909bdb09c8d90717">&#9670;&nbsp;</a></span>addLocalForceAtPos()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void PxRigidBodyExt::addLocalForceAtPos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>force</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>pos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545">PxForceMode::Enum</a>&#160;</td>
<td class="paramname"><em>mode</em> = <code><a class="el" href="structPxForceMode.html#aadaaafefe0478d829b816154c676e545a6e707aa50e1612a2603643ee2df85f1a">PxForceMode::eFORCE</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>wakeup</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular point in global coordinates, to the actor. </p>
<p>Note that if the force does not act along the center of mass of the actor, this will also add the corresponding torque. Because forces are reset at the end of every timestep, you can maintain a total external force on an object by calling this once every frame.</p>
<dl class="section note"><dt>Note</dt><dd>if this call is used to apply a force or impulse to an articulation link, only the link is updated, not the entire articulation</dd></dl>
<p><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a> determines if the force is to be conventional or impulsive. Only eFORCE and eIMPULSE are supported, as the force required to produce a given velocity change or acceleration is underdetermined given only the desired change at a given point.</p>
<p><b>Sleeping:</b> This call wakes the actor if it is sleeping and the wakeup parameter is true (default).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body to apply the force to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">force</td><td>Force/impulse to add, defined in the local frame. <b>Range:</b> force vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position in the global frame to add the force at. <b>Range:</b> position vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>The mode to use when applying the force/impulse(see <a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a>). </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">wakeup</td><td>Specify if the call should wake up the actor.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that is carried out...">PxForceMode</a> </dd>
<dd>
<a class="el" href="classPxRigidBodyExt.html#a0e3a81ec184fe8981dbbcebff6da1f61" title="Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in ...">addForceAtPos()</a> <a class="el" href="classPxRigidBodyExt.html#a732d9246bc10aef4aa76f4a6c941c7c5" title="Applies a force (or impulse) defined in the global coordinate frame, acting at a particular point in ...">addForceAtLocalPos()</a> <a class="el" href="classPxRigidBodyExt.html#ace7be55938f260ee769b993c6c90d288" title="Applies a force (or impulse) defined in the actor local coordinate frame, acting at a particular poin...">addLocalForceAtLocalPos()</a> </dd></dl>
</div>
</div>
<a id="aa1215782ff3e5c18ca42d8805578c21a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1215782ff3e5c18ca42d8805578c21a">&#9670;&nbsp;</a></span>computeLinearAngularImpulse()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void PxRigidBodyExt::computeLinearAngularImpulse </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
<td class="paramname"><em>globalPose</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>point</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>impulse</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal&#160;</td>
<td class="paramname"><em>invMassScale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal&#160;</td>
<td class="paramname"><em>invInertiaScale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>linearImpulse</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>angularImpulse</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the linear and angular impulse vectors for a given impulse at a world space position taking a mass and inertia scale into account. </p>
<p>This function is useful for extracting the respective linear and angular impulses from a contact or joint when the mass/inertia ratios have been adjusted.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">globalPose</td><td>The body's world space transform </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>The point in world space where the impulse is applied </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">impulse</td><td>The impulse vector in world space </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">invMassScale</td><td>The inverse mass scale </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">invInertiaScale</td><td>The inverse inertia scale </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">linearImpulse</td><td>The linear impulse </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">angularImpulse</td><td>The angular impulse </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a44f1a4248b259bc96ff5dfb233860b4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44f1a4248b259bc96ff5dfb233860b4d">&#9670;&nbsp;</a></span>computeMassPropertiesFromShapes()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classPxMassProperties.html">PxMassProperties</a> PxRigidBodyExt::computeMassPropertiesFromShapes </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxShape.html">PxShape</a> *const *&#160;</td>
<td class="paramname"><em>shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>shapeCount</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the mass, inertia tensor and center of mass from a list of shapes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">shapes</td><td>The shapes to compute the mass properties from. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">shapeCount</td><td>The number of provided shapes. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The mass properties from the combined shapes.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidBody.html#ab152773926fe7b222d61e982c3cb6adf" title="Sets the pose of the center of mass relative to the actor. ">PxRigidBody::setCMassLocalPose</a> <a class="el" href="classPxRigidBody.html#a755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates. ">PxRigidBody::setMassSpaceInertiaTensor</a> <a class="el" href="classPxRigidBody.html#a8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor. ">PxRigidBody::setMass</a> </dd></dl>
</div>
</div>
<a id="aa0684e41c619824229cdedb47e06563a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0684e41c619824229cdedb47e06563a">&#9670;&nbsp;</a></span>computeVelocityDeltaFromImpulse() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void PxRigidBodyExt::computeVelocityDeltaFromImpulse </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>impulsiveForce</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>impulsiveTorque</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>deltaLinearVelocity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>deltaAngularVelocity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the change to linear and angular velocity that would occur if an impulsive force and torque were to be applied to a specified rigid body. </p>
<p>The rigid body is left unaffected unless a subsequent independent call is executed that actually applies the computed changes to velocity and angular velocity.</p>
<dl class="section note"><dt>Note</dt><dd>if this call is used to determine the velocity delta for an articulation link, only the mass properties of the link are taken into account.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidBody.html#a04bab22deecb716e2cdd7a64b5cfaee7" title="Retrieves the linear velocity of an actor. ">PxRigidBody::getLinearVelocity</a>, <a class="el" href="classPxRigidBody.html#a0aed51d5ddcf81b09a104ad7f0f30c05" title="Sets the linear velocity of the actor. ">PxRigidBody::setLinearVelocity</a>, <a class="el" href="classPxRigidBody.html#af91b92d6fcf47103b148337749aa93e0" title="Retrieves the angular velocity of the actor. ">PxRigidBody::getAngularVelocity</a>, <a class="el" href="classPxRigidBody.html#ad49850630db14af26e019d2550ecfd27" title="Sets the angular velocity of the actor. ">PxRigidBody::setAngularVelocity</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The body under consideration. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">impulsiveForce</td><td>The impulsive force that would be applied to the specified rigid body. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">impulsiveTorque</td><td>The impulsive torque that would be applied to the specified rigid body. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">deltaLinearVelocity</td><td>The change in linear velocity that would arise if impulsiveForce was to be applied to the specified rigid body. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">deltaAngularVelocity</td><td>The change in angular velocity that would arise if impulsiveTorque was to be applied to the specified rigid body. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="abc672d4db8e02d4ddc1d8ee18068221a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc672d4db8e02d4ddc1d8ee18068221a">&#9670;&nbsp;</a></span>computeVelocityDeltaFromImpulse() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void PxRigidBodyExt::computeVelocityDeltaFromImpulse </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> &amp;&#160;</td>
<td class="paramname"><em>globalPose</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>point</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>impulse</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal&#160;</td>
<td class="paramname"><em>invMassScale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal&#160;</td>
<td class="paramname"><em>invInertiaScale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>deltaLinearVelocity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>deltaAngularVelocity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the linear and angular velocity change vectors for a given impulse at a world space position taking a mass and inertia scale into account. </p>
<p>This function is useful for extracting the respective linear and angular velocity changes from a contact or joint when the mass/inertia ratios have been adjusted.</p>
<dl class="section note"><dt>Note</dt><dd>if this call is used to determine the velocity delta for an articulation link, only the mass properties of the link are taken into account.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">globalPose</td><td>The body's world space transform </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>The point in world space where the impulse is applied </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">impulse</td><td>The impulse vector in world space </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">invMassScale</td><td>The inverse mass scale </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">invInertiaScale</td><td>The inverse inertia scale </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">deltaLinearVelocity</td><td>The linear velocity change </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">deltaAngularVelocity</td><td>The angular velocity change </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ab79486496528ea623774e7a9b021633d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab79486496528ea623774e7a9b021633d">&#9670;&nbsp;</a></span>getLocalVelocityAtLocalPos()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classPxVec3.html">PxVec3</a> PxRigidBodyExt::getLocalVelocityAtLocalPos </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>pos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the velocity of a point given in local coordinates if it were attached to the specified body and moving with it. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body the point is attached to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position we wish to determine the velocity for, defined in the local frame. <b>Range:</b> position vector </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The velocity of point in the local frame.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>getLocalPointVelocity() </dd></dl>
</div>
</div>
<a id="afed73713b7c1032a7ce921c7de25a278"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afed73713b7c1032a7ce921c7de25a278">&#9670;&nbsp;</a></span>getVelocityAtOffset()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classPxVec3.html">PxVec3</a> PxRigidBodyExt::getVelocityAtOffset </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>pos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the velocity of a point (offset from the origin of the body) given in world coordinates if it were attached to the specified body and moving with it. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body the point is attached to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position (offset from the origin of the body) we wish to determine the velocity for, defined in the global frame. <b>Range:</b> position vector </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The velocity of point (offset from the origin of the body) in the global frame.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>getLocalPointVelocity() </dd></dl>
</div>
</div>
<a id="acce31159814673df7781eb62ee032ef2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acce31159814673df7781eb62ee032ef2">&#9670;&nbsp;</a></span>getVelocityAtPos()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classPxVec3.html">PxVec3</a> PxRigidBodyExt::getVelocityAtPos </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>pos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the velocity of a point given in world coordinates if it were attached to the specified body and moving with it. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body the point is attached to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>Position we wish to determine the velocity for, defined in the global frame. <b>Range:</b> position vector </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The velocity of point in the global frame.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>getLocalPointVelocity() </dd></dl>
</div>
</div>
<a id="adfc2b24aa3d9207ce6af21094151aede"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfc2b24aa3d9207ce6af21094151aede">&#9670;&nbsp;</a></span>linearSweepMultiple()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxRigidBodyExt::linearSweepMultiple </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxScene.html">PxScene</a> &amp;&#160;</td>
<td class="paramname"><em>scene</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>unitDir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal&#160;</td>
<td class="paramname"><em>distance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PxHitFlags&#160;</td>
<td class="paramname"><em>outputFlags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxSweepHit.html">PxSweepHit</a> *&#160;</td>
<td class="paramname"><em>touchHitBuffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *&#160;</td>
<td class="paramname"><em>touchHitShapeIndices</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>touchHitBufferSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxSweepHit.html">PxSweepHit</a> &amp;&#160;</td>
<td class="paramname"><em>block</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PxI32 &amp;&#160;</td>
<td class="paramname"><em>blockingShapeIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool &amp;&#160;</td>
<td class="paramname"><em>overflow</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structPxQueryFilterData.html">PxQueryFilterData</a> &amp;&#160;</td>
<td class="paramname"><em>filterData</em> = <code><a class="el" href="structPxQueryFilterData.html">PxQueryFilterData</a>()</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxQueryFilterCallback.html">PxQueryFilterCallback</a> *&#160;</td>
<td class="paramname"><em>filterCall</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structPxQueryCache.html">PxQueryCache</a> *&#160;</td>
<td class="paramname"><em>cache</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal&#160;</td>
<td class="paramname"><em>inflation</em> = <code>0.0f</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs a linear sweep through space with the body's geometry objects, returning all overlaps. </p>
<dl class="section note"><dt>Note</dt><dd>Supported geometries are: box, sphere, capsule, convex. Other geometry types will be ignored.</dd></dl>
<p>This function sweeps all shapes attached to a given rigid body through space and reports all objects in the scene that intersect any of the shapes' swept paths until there are no more objects to report or a blocking hit is encountered.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body to sweep. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scene</td><td>The scene object to process the query. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">unitDir</td><td>Normalized direction of the sweep. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">distance</td><td>Sweep distance. Needs to be larger than 0. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">outputFlags</td><td>Specifies which properties should be written to the hit information. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">touchHitBuffer</td><td>Raycast hit information buffer. If the buffer overflows, an arbitrary subset of touch hits is returned (typically the query should be restarted with a larger buffer). </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">touchHitShapeIndices</td><td>After the query is completed, touchHitShapeIndices[i] will contain the body index that caused the hit stored in hitBuffer[i] </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">touchHitBufferSize</td><td>Size of both touch hit buffers in elements. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">block</td><td>Closest blocking hit is returned via this reference. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">blockingShapeIndex</td><td>Set to -1 if if a blocking hit was not found, otherwise set to closest blocking hit shape index. The touching hits are reported separately in hitBuffer. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">overflow</td><td>Set to true if touchHitBuffer didn't have enough space for all results. Touch hits will be incomplete if overflow occurred. Possible solution is to restart the query with a larger buffer. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterData</td><td>If any word in filterData.data is non-zero then filterData.data will be used for filtering, otherwise shape-&gt;getQueryFilterData() will be used instead. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCall</td><td>Custom filtering logic (optional). Only used if the corresponding <a class="el" href="structPxQueryFlag.html" title="Filtering flags for scene queries. ">PxQueryFlag</a> flags are set. If NULL, all hits are assumed to be blocking. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cache</td><td>Cached hit shape (optional). Ray is tested against cached shape first then against the scene. Note: Filtering is not executed for a cached shape if supplied; instead, if a hit is found, it is assumed to be a blocking hit. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">inflation</td><td>This parameter creates a skin around the swept geometry which increases its extents for sweeping. The sweep will register a hit as soon as the skin touches a shape, and will return the corresponding distance and normal.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of touching hits. If overflow is set to true, the results are incomplete. In case of overflow there are also no guarantees that all touching hits returned are closer than the blocking hit.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxScene.html" title="A scene is a collection of bodies and constraints which can interact. ">PxScene</a> <a class="el" href="group__scenequery.html#gaacf083b040f6c841644782282171bd61" title="Flags typedef for the set of bits defined in PxQueryFlag. ">PxQueryFlags</a> <a class="el" href="structPxFilterData.html" title="PxFilterData is user-definable data which gets passed into the collision filtering shader and/or call...">PxFilterData</a> <a class="el" href="group__scenequery.html#gab2564436bacfef3130eb9f0c9070656e" title="Batched query pre-filter shader. ">PxBatchQueryPreFilterShader</a> <a class="el" href="group__scenequery.html#ga8cbf76701572506b8120b8e54ac319c7" title="Batched query post-filter shader. ">PxBatchQueryPostFilterShader</a> <a class="el" href="structPxSweepHit.html" title="Stores results of sweep queries. ">PxSweepHit</a> </dd></dl>
</div>
</div>
<a id="abff916a23a3b9f0e362d1ba2345f45dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abff916a23a3b9f0e362d1ba2345f45dd">&#9670;&nbsp;</a></span>linearSweepSingle()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool PxRigidBodyExt::linearSweepSingle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxScene.html">PxScene</a> &amp;&#160;</td>
<td class="paramname"><em>scene</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> &amp;&#160;</td>
<td class="paramname"><em>unitDir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal&#160;</td>
<td class="paramname"><em>distance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PxHitFlags&#160;</td>
<td class="paramname"><em>outputFlags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxSweepHit.html">PxSweepHit</a> &amp;&#160;</td>
<td class="paramname"><em>closestHit</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> &amp;&#160;</td>
<td class="paramname"><em>shapeIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structPxQueryFilterData.html">PxQueryFilterData</a> &amp;&#160;</td>
<td class="paramname"><em>filterData</em> = <code><a class="el" href="structPxQueryFilterData.html">PxQueryFilterData</a>()</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxQueryFilterCallback.html">PxQueryFilterCallback</a> *&#160;</td>
<td class="paramname"><em>filterCall</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structPxQueryCache.html">PxQueryCache</a> *&#160;</td>
<td class="paramname"><em>cache</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal&#160;</td>
<td class="paramname"><em>inflation</em> = <code>0.0f</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs a linear sweep through space with the body's geometry objects. </p>
<dl class="section note"><dt>Note</dt><dd>Supported geometries are: box, sphere, capsule, convex. Other geometry types will be ignored. </dd>
<dd>
If eTOUCH is returned from the filter callback, it will trigger an error and the hit will be discarded.</dd></dl>
<p>The function sweeps all shapes attached to a given rigid body through space and reports the nearest object in the scene which intersects any of of the shapes swept paths. Information about the closest intersection is written to a <a class="el" href="structPxSweepHit.html" title="Stores results of sweep queries. ">PxSweepHit</a> structure.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">body</td><td>The rigid body to sweep. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scene</td><td>The scene object to process the query. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">unitDir</td><td>Normalized direction of the sweep. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">distance</td><td>Sweep distance. Needs to be larger than 0. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">outputFlags</td><td>Specifies which properties should be written to the hit information. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">closestHit</td><td>Closest hit result. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">shapeIndex</td><td>Index of the body shape that caused the closest hit. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterData</td><td>If any word in filterData.data is non-zero then filterData.data will be used for filtering, otherwise shape-&gt;getQueryFilterData() will be used instead. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCall</td><td>Custom filtering logic (optional). Only used if the corresponding <a class="el" href="structPxQueryFlag.html" title="Filtering flags for scene queries. ">PxQueryFlag</a> flags are set. If NULL, all hits are assumed to be blocking. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cache</td><td>Cached hit shape (optional). Ray is tested against cached shape first then against the scene. Note: Filtering is not executed for a cached shape if supplied; instead, if a hit is found, it is assumed to be a blocking hit. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">inflation</td><td>This parameter creates a skin around the swept geometry which increases its extents for sweeping. The sweep will register a hit as soon as the skin touches a shape, and will return the corresponding distance and normal.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if a blocking hit was found.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxScene.html" title="A scene is a collection of bodies and constraints which can interact. ">PxScene</a> <a class="el" href="group__scenequery.html#gaacf083b040f6c841644782282171bd61" title="Flags typedef for the set of bits defined in PxQueryFlag. ">PxQueryFlags</a> <a class="el" href="structPxFilterData.html" title="PxFilterData is user-definable data which gets passed into the collision filtering shader and/or call...">PxFilterData</a> <a class="el" href="group__scenequery.html#gab2564436bacfef3130eb9f0c9070656e" title="Batched query pre-filter shader. ">PxBatchQueryPreFilterShader</a> <a class="el" href="group__scenequery.html#ga8cbf76701572506b8120b8e54ac319c7" title="Batched query post-filter shader. ">PxBatchQueryPostFilterShader</a> <a class="el" href="structPxSweepHit.html" title="Stores results of sweep queries. ">PxSweepHit</a> </dd></dl>
</div>
</div>
<a id="ab8f6af57a0fde875c41e5d747dec49fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8f6af57a0fde875c41e5d747dec49fb">&#9670;&nbsp;</a></span>setMassAndUpdateInertia() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool PxRigidBodyExt::setMassAndUpdateInertia </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal *&#160;</td>
<td class="paramname"><em>shapeMasses</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>shapeMassCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> *&#160;</td>
<td class="paramname"><em>massLocalPose</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeNonSimShapes</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computation of mass properties for a rigid body actor. </p>
<p>This method sets the mass, inertia and center of mass of a rigid body. The mass is set to the sum of all user-supplied shape mass values, and the inertia and center of mass are computed according to the rigid body's shapes and the per shape mass input values.</p>
<p>If no collision shapes are found, the inertia tensor is set to (1,1,1)</p>
<dl class="section note"><dt>Note</dt><dd>If a single mass value should be used for the actor as a whole then the overloaded method <a class="el" href="classPxRigidBodyExt.html#ab8f6af57a0fde875c41e5d747dec49fb" title="Computation of mass properties for a rigid body actor. ">setMassAndUpdateInertia()</a> with a single mass parameter can be used instead.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidBodyExt.html#a769be90cdb138897ce426aa04ac0a1e7" title="Computation of mass properties for a rigid body actor. ">updateMassAndInertia</a> for more details.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">body</td><td>The rigid body for which to set the mass and centre of mass local pose properties. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">shapeMasses</td><td>The per shape mass values. There must be one entry for each shape which has the <a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aa7fa4fea0eecda9cc80a7aaa11a22df52" title="The shape will partake in collision in the physical simulation. ">PxShapeFlag::eSIMULATION_SHAPE</a> set. Other shapes are ignored. The mass values must be greater than 0. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">shapeMassCount</td><td>The number of provided mass values. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">massLocalPose</td><td>The center of mass relative to the actor frame. If set to null then (0,0,0) is assumed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">includeNonSimShapes</td><td>True if all kind of shapes (<a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aabc7ec24b00ed57f3914482f0706c6273" title="The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ">PxShapeFlag::eSCENE_QUERY_SHAPE</a>, <a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aaef2b90024dc86be72b68bbaf94a5821d" title="The shape is a trigger which can send reports whenever other shapes enter/leave its volume...">PxShapeFlag::eTRIGGER_SHAPE</a>) should be taken into account. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Boolean. True on success else false.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidBody.html#ab152773926fe7b222d61e982c3cb6adf" title="Sets the pose of the center of mass relative to the actor. ">PxRigidBody::setCMassLocalPose</a> <a class="el" href="classPxRigidBody.html#a755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates. ">PxRigidBody::setMassSpaceInertiaTensor</a> <a class="el" href="classPxRigidBody.html#a8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor. ">PxRigidBody::setMass</a> </dd></dl>
</div>
</div>
<a id="a33cb51d74c87d8b6f8a33c7e3580372d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33cb51d74c87d8b6f8a33c7e3580372d">&#9670;&nbsp;</a></span>setMassAndUpdateInertia() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool PxRigidBodyExt::setMassAndUpdateInertia </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PxReal&#160;</td>
<td class="paramname"><em>mass</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> *&#160;</td>
<td class="paramname"><em>massLocalPose</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeNonSimShapes</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computation of mass properties for a rigid body actor. </p>
<p>This method sets the mass, inertia and center of mass of a rigid body. The mass is set to the user-supplied value, and the inertia and center of mass are computed according to the rigid body's shapes and the input mass.</p>
<p>If no collision shapes are found, the inertia tensor is set to (1,1,1)</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidBodyExt.html#a769be90cdb138897ce426aa04ac0a1e7" title="Computation of mass properties for a rigid body actor. ">updateMassAndInertia</a> for more details.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">body</td><td>The rigid body for which to set the mass and centre of mass local pose properties. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mass</td><td>The mass of the body. Must be greater than 0. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">massLocalPose</td><td>The center of mass relative to the actor frame. If set to null then (0,0,0) is assumed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">includeNonSimShapes</td><td>True if all kind of shapes (<a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aabc7ec24b00ed57f3914482f0706c6273" title="The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ">PxShapeFlag::eSCENE_QUERY_SHAPE</a>, <a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aaef2b90024dc86be72b68bbaf94a5821d" title="The shape is a trigger which can send reports whenever other shapes enter/leave its volume...">PxShapeFlag::eTRIGGER_SHAPE</a>) should be taken into account. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Boolean. True on success else false.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidBody.html#ab152773926fe7b222d61e982c3cb6adf" title="Sets the pose of the center of mass relative to the actor. ">PxRigidBody::setCMassLocalPose</a> <a class="el" href="classPxRigidBody.html#a755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates. ">PxRigidBody::setMassSpaceInertiaTensor</a> <a class="el" href="classPxRigidBody.html#a8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor. ">PxRigidBody::setMass</a> </dd></dl>
</div>
</div>
<a id="a769be90cdb138897ce426aa04ac0a1e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a769be90cdb138897ce426aa04ac0a1e7">&#9670;&nbsp;</a></span>updateMassAndInertia() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool PxRigidBodyExt::updateMassAndInertia </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const PxReal *&#160;</td>
<td class="paramname"><em>shapeDensities</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
<td class="paramname"><em>shapeDensityCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> *&#160;</td>
<td class="paramname"><em>massLocalPose</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeNonSimShapes</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computation of mass properties for a rigid body actor. </p>
<p>To simulate a dynamic rigid actor, the SDK needs a mass and an inertia tensor.</p>
<p>This method offers functionality to compute the necessary mass and inertia properties based on the shapes declared in the <a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects. ">PxRigidBody</a> descriptor and some additionally specified parameters. For each shape, the shape geometry, the shape positioning within the actor and the specified shape density are used to compute the body's mass and inertia properties.</p>
<ul>
<li>
Shapes without <a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aa7fa4fea0eecda9cc80a7aaa11a22df52" title="The shape will partake in collision in the physical simulation. ">PxShapeFlag::eSIMULATION_SHAPE</a> set are ignored unless includeNonSimShapes is true. </li>
<li>
Shapes with plane, triangle mesh or heightfield geometry and <a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aa7fa4fea0eecda9cc80a7aaa11a22df52" title="The shape will partake in collision in the physical simulation. ">PxShapeFlag::eSIMULATION_SHAPE</a> set are not allowed for <a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects. ">PxRigidBody</a> collision. </li>
</ul>
<p>This method will set the mass, center of mass, and inertia tensor</p>
<p>if no collision shapes are found, the inertia tensor is set to (1,1,1) and the mass to 1</p>
<p>if massLocalPose is non-NULL, the rigid body's center of mass parameter will be set to the user provided value (massLocalPose) and the inertia tensor will be resolved at that point.</p>
<dl class="section note"><dt>Note</dt><dd>If all shapes of the actor have the same density then the overloaded method <a class="el" href="classPxRigidBodyExt.html#a769be90cdb138897ce426aa04ac0a1e7" title="Computation of mass properties for a rigid body actor. ">updateMassAndInertia()</a> with a single density parameter can be used instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">body</td><td>The rigid body. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">shapeDensities</td><td>The per shape densities. There must be one entry for each shape which has the <a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aa7fa4fea0eecda9cc80a7aaa11a22df52" title="The shape will partake in collision in the physical simulation. ">PxShapeFlag::eSIMULATION_SHAPE</a> set (or for all shapes if includeNonSimShapes is set to true). Other shapes are ignored. The density values must be greater than 0. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">shapeDensityCount</td><td>The number of provided density values. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">massLocalPose</td><td>The center of mass relative to the actor frame. If set to null then (0,0,0) is assumed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">includeNonSimShapes</td><td>True if all kind of shapes (<a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aabc7ec24b00ed57f3914482f0706c6273" title="The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ">PxShapeFlag::eSCENE_QUERY_SHAPE</a>, <a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aaef2b90024dc86be72b68bbaf94a5821d" title="The shape is a trigger which can send reports whenever other shapes enter/leave its volume...">PxShapeFlag::eTRIGGER_SHAPE</a>) should be taken into account. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Boolean. True on success else false.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>PxRigidBody::setMassLocalPose <a class="el" href="classPxRigidBody.html#a755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates. ">PxRigidBody::setMassSpaceInertiaTensor</a> <a class="el" href="classPxRigidBody.html#a8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor. ">PxRigidBody::setMass</a> </dd></dl>
</div>
</div>
<a id="a3799da4d9faefd65517222250bacf33a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3799da4d9faefd65517222250bacf33a">&#9670;&nbsp;</a></span>updateMassAndInertia() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool PxRigidBodyExt::updateMassAndInertia </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxRigidBody.html">PxRigidBody</a> &amp;&#160;</td>
<td class="paramname"><em>body</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PxReal&#160;</td>
<td class="paramname"><em>density</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> *&#160;</td>
<td class="paramname"><em>massLocalPose</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeNonSimShapes</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computation of mass properties for a rigid body actor. </p>
<p>See previous method for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">body</td><td>The rigid body. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">density</td><td>The density of the body. Used to compute the mass of the body. The density must be greater than 0. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">massLocalPose</td><td>The center of mass relative to the actor frame. If set to null then (0,0,0) is assumed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">includeNonSimShapes</td><td>True if all kind of shapes (<a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aabc7ec24b00ed57f3914482f0706c6273" title="The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ">PxShapeFlag::eSCENE_QUERY_SHAPE</a>, <a class="el" href="structPxShapeFlag.html#a6edb481aaa3a998c5d6dd3fc4ad87f1aaef2b90024dc86be72b68bbaf94a5821d" title="The shape is a trigger which can send reports whenever other shapes enter/leave its volume...">PxShapeFlag::eTRIGGER_SHAPE</a>) should be taken into account. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Boolean. True on success else false.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>PxRigidBody::setMassLocalPose <a class="el" href="classPxRigidBody.html#a755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates. ">PxRigidBody::setMassSpaceInertiaTensor</a> <a class="el" href="classPxRigidBody.html#a8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor. ">PxRigidBody::setMass</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PxRigidBodyExt_8h_source.html">PxRigidBodyExt.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classPxRigidBodyExt.html">PxRigidBodyExt</a></li>
<li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
</ul>
</div>
</body>
</html>