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

201 lines
17 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>PxRigidBodyFlag Struct 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('structPxRigidBodyFlag.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-types">Public Types</a> &#124;
<a href="structPxRigidBodyFlag-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">PxRigidBodyFlag Struct Reference<div class="ingroups"><a class="el" href="group__physics.html">Physics</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Collection of flags describing the behavior of a rigid body.
<a href="structPxRigidBodyFlag.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PxRigidBody_8h_source.html">PxRigidBody.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a5fd4878ae66a98c030a9d976e8ba8596"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596">Enum</a> { <br />
&#160;&#160;<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596abd76e6985e9db78efb7a66148ea4c212">eKINEMATIC</a> = (1&lt;&lt;0),
<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596a983c62745e575428d8b0aadefc23e8bc">eUSE_KINEMATIC_TARGET_FOR_SCENE_QUERIES</a> = (1&lt;&lt;1),
<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596a686cdd889652a435c19d8c663d809d9e">eENABLE_CCD</a> = (1&lt;&lt;2),
<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596a37775d7c189d9f499fdfda010f73fb95">eENABLE_CCD_FRICTION</a> = (1&lt;&lt;3),
<br />
&#160;&#160;<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596ac89b33b0290d667f6f2ae69298631d01">eENABLE_POSE_INTEGRATION_PREVIEW</a> = (1 &lt;&lt; 4),
<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596af13d6aa80b364fe2cef81a0039e37d45">eENABLE_SPECULATIVE_CCD</a> = (1 &lt;&lt; 5),
<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596ab2bb4cc4246807076a2103d72bd69e00">eENABLE_CCD_MAX_CONTACT_IMPULSE</a> = (1 &lt;&lt; 6),
<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596ae3f262927cf4d13f517c6f0c08ec448f">eRETAIN_ACCELERATIONS</a> = (1&lt;&lt;7),
<br />
&#160;&#160;<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596a698967abdd9280abb3a7aea8b712a9f9">eFORCE_KINE_KINE_NOTIFICATIONS</a> = (1&lt;&lt;8),
<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596a3500d16d79229a7aba7ec54e66adaed6">eFORCE_STATIC_KINE_NOTIFICATIONS</a> = (1&lt;&lt;9),
<a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596a19c3d420263e8b29250817344bf7bc9f">eRESERVED</a> = (1&lt;&lt;15)
<br />
}</td></tr>
<tr class="separator:a5fd4878ae66a98c030a9d976e8ba8596"><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>Collection of flags describing the behavior of a rigid body. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidBody.html#a9b23b890404b1010bf0b67a225bd22e7" title="Raises or clears a particular rigid body flag. ">PxRigidBody.setRigidBodyFlag()</a>, <a class="el" href="classPxRigidBody.html#a2ef3c66318db72f2dd2c1b0d20513f18" title="Reads the PxRigidBody flags. ">PxRigidBody.getRigidBodyFlags()</a> </dd></dl>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a5fd4878ae66a98c030a9d976e8ba8596"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fd4878ae66a98c030a9d976e8ba8596">&#9670;&nbsp;</a></span>Enum</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596">PxRigidBodyFlag::Enum</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596abd76e6985e9db78efb7a66148ea4c212"></a>eKINEMATIC&#160;</td><td class="fielddoc"><p>Enables kinematic mode for the actor. </p>
<p>Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the setKinematicTarget() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.</p>
<p>Kinematic actors are great for moving platforms or characters, where direct motion control is desired.</p>
<p>You can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.</p>
<p><b>Sleeping:</b> </p><ul>
<li>Setting this flag on a dynamic actor will put the actor to sleep and set the velocities to 0. </li>
<li>If this flag gets cleared, the current sleep state of the actor will be kept.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>kinematic actors are incompatible with CCD so raising this flag will automatically clear eENABLE_CCD</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidDynamic.html#a4464d188e7a1e94582c9cf35da9bbc93" title="Moves kinematically controlled dynamic actors through the game world. ">PxRigidDynamic.setKinematicTarget()</a>Enable kinematic mode for the body. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596a983c62745e575428d8b0aadefc23e8bc"></a>eUSE_KINEMATIC_TARGET_FOR_SCENE_QUERIES&#160;</td><td class="fielddoc"><p>Use the kinematic target transform for scene queries. </p>
<p>If this flag is raised, then scene queries will treat the kinematic target transform as the current pose of the body (instead of using the actual pose). Without this flag, the kinematic target will only take effect with respect to scene queries after a simulation step.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxRigidDynamic.html#a4464d188e7a1e94582c9cf35da9bbc93" title="Moves kinematically controlled dynamic actors through the game world. ">PxRigidDynamic.setKinematicTarget()</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596a686cdd889652a435c19d8c663d809d9e"></a>eENABLE_CCD&#160;</td><td class="fielddoc"><p>Enables swept integration for the actor. </p>
<p>If this flag is raised and CCD is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to high-speed motion. Note individual shape pairs still need to enable <a class="el" href="structPxPairFlag.html#a60e71a2948b030140f840766a3f7ac2fac41a9f8b9326480403c023ad20cdc2f1" title="This flag is used to indicate whether this pair generates CCD contacts. ">PxPairFlag::eDETECT_CCD_CONTACT</a> in the collision filtering to enable the CCD to respond to individual interactions.</p>
<dl class="section note"><dt>Note</dt><dd>kinematic actors are incompatible with CCD so this flag will be cleared automatically when raised on a kinematic actorEnable CCD for the body. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596a37775d7c189d9f499fdfda010f73fb95"></a>eENABLE_CCD_FRICTION&#160;</td><td class="fielddoc"><p>Enabled CCD in swept integration for the actor. </p>
<p>If this flag is raised and CCD is enabled, CCD interactions will simulate friction. By default, friction is disabled in CCD interactions because CCD friction has been observed to introduce some simulation artifacts. CCD friction was enabled in previous versions of the SDK. Raising this flag will result in behavior that is a closer match for previous versions of the SDK.</p>
<dl class="section note"><dt>Note</dt><dd>This flag requires <a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596a686cdd889652a435c19d8c663d809d9e" title="Enables swept integration for the actor. ">PxRigidBodyFlag::eENABLE_CCD</a> to be raised to have any effect. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596ac89b33b0290d667f6f2ae69298631d01"></a>eENABLE_POSE_INTEGRATION_PREVIEW&#160;</td><td class="fielddoc"><p>Register a rigid body for reporting pose changes by the simulation at an early stage. </p>
<p>Sometimes it might be advantageous to get access to the new pose of a rigid body as early as possible and not wait until the call to fetchResults() returns. Setting this flag will schedule the rigid body to get reported in <a class="el" href="classPxSimulationEventCallback.html#a86cd9bd80e504054d075fda24498756b" title="Provides early access to the new pose of moving rigid bodies. ">PxSimulationEventCallback::onAdvance()</a>. Please refer to the documentation of that callback to understand the behavior and limitations of this functionality.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSimulationEventCallback.html#a86cd9bd80e504054d075fda24498756b" title="Provides early access to the new pose of moving rigid bodies. ">PxSimulationEventCallback::onAdvance()</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596af13d6aa80b364fe2cef81a0039e37d45"></a>eENABLE_SPECULATIVE_CCD&#160;</td><td class="fielddoc"><p>Register a rigid body to dynamicly adjust contact offset based on velocity. This can be used to achieve a CCD effect. </p>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596ab2bb4cc4246807076a2103d72bd69e00"></a>eENABLE_CCD_MAX_CONTACT_IMPULSE&#160;</td><td class="fielddoc"><p>Permit CCD to limit maxContactImpulse. This is useful for use-cases like a destruction system but can cause visual artefacts so is not enabled by default. </p>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596ae3f262927cf4d13f517c6f0c08ec448f"></a>eRETAIN_ACCELERATIONS&#160;</td><td class="fielddoc"><p>Carries over forces/accelerations between frames, rather than clearning them. </p>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596a698967abdd9280abb3a7aea8b712a9f9"></a>eFORCE_KINE_KINE_NOTIFICATIONS&#160;</td><td class="fielddoc"><p>Forces kinematic-kinematic pairs notifications for this actor. </p>
<p>This flag overrides the global scene-level <a class="el" href="structPxPairFilteringMode.html">PxPairFilteringMode</a> setting for kinematic actors. This is equivalent to having <a class="el" href="structPxPairFilteringMode.html#aeaa62ad327b874e4b199022401bf7615a15ecf48d452c22f6fb755df16919eca4">PxPairFilteringMode::eKEEP</a> for pairs involving this actor.</p>
<p>A particular use case is when you have a large amount of kinematic actors, but you are only interested in interactions between a few of them. In this case it is best to use set <a class="el" href="classPxSceneDesc.html#a90e220df7cb1f25852d4cc62cecd8869" title="Filtering mode for kinematic-kinematic pairs in the broadphase. ">PxSceneDesc.kineKineFilteringMode</a> = <a class="el" href="structPxPairFilteringMode.html#aeaa62ad327b874e4b199022401bf7615ad053cb78e88913567e0cb208ea2c458c">PxPairFilteringMode::eKILL</a>, and then raise the eFORCE_KINE_KINE_NOTIFICATIONS flag on the small set of kinematic actors that need notifications.</p>
<dl class="section note"><dt>Note</dt><dd>This has no effect if <a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596abd76e6985e9db78efb7a66148ea4c212" title="Enables kinematic mode for the actor. ">PxRigidBodyFlag::eKINEMATIC</a> is not set.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Changing this flag at runtime will not have an effect until you remove and re-add the actor to the scene.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxPairFilteringMode.html">PxPairFilteringMode</a> <a class="el" href="classPxSceneDesc.html#a90e220df7cb1f25852d4cc62cecd8869" title="Filtering mode for kinematic-kinematic pairs in the broadphase. ">PxSceneDesc.kineKineFilteringMode</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596a3500d16d79229a7aba7ec54e66adaed6"></a>eFORCE_STATIC_KINE_NOTIFICATIONS&#160;</td><td class="fielddoc"><p>Forces static-kinematic pairs notifications for this actor. </p>
<p>Similar to eFORCE_KINE_KINE_NOTIFICATIONS, but for static-kinematic interactions.</p>
<dl class="section note"><dt>Note</dt><dd>This has no effect if <a class="el" href="structPxRigidBodyFlag.html#a5fd4878ae66a98c030a9d976e8ba8596abd76e6985e9db78efb7a66148ea4c212" title="Enables kinematic mode for the actor. ">PxRigidBodyFlag::eKINEMATIC</a> is not set.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Changing this flag at runtime will not have an effect until you remove and re-add the actor to the scene.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxPairFilteringMode.html">PxPairFilteringMode</a> <a class="el" href="classPxSceneDesc.html#a1ff29795e987f8f9b347545468915de2" title="Filtering mode for static-kinematic pairs in the broadphase. ">PxSceneDesc.staticKineFilteringMode</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a5fd4878ae66a98c030a9d976e8ba8596a19c3d420263e8b29250817344bf7bc9f"></a>eRESERVED&#160;</td><td class="fielddoc"><p>Reserved for internal usage. </p>
</td></tr>
</table>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="PxRigidBody_8h_source.html">PxRigidBody.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="structPxRigidBodyFlag.html">PxRigidBodyFlag</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>