diff options
| author | git perforce import user <a@b> | 2016-10-25 12:29:14 -0600 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees> | 2016-10-25 18:56:37 -0500 |
| commit | 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch) | |
| tree | fa6485c169e50d7415a651bf838f5bcd0fd3bfbd /PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationEventCallback_8h-source.html | |
| download | physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip | |
Initial commit:
PhysX 3.4.0 Update @ 21294896
APEX 1.4.0 Update @ 21275617
[CL 21300167]
Diffstat (limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationEventCallback_8h-source.html')
| -rw-r--r-- | PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationEventCallback_8h-source.html | 469 |
1 files changed, 469 insertions, 0 deletions
diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationEventCallback_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationEventCallback_8h-source.html new file mode 100644 index 00000000..c97f7c27 --- /dev/null +++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationEventCallback_8h-source.html @@ -0,0 +1,469 @@ +<html> + <head> + <title>NVIDIA(R) PhysX(R) SDK 3.4 API Reference: PxSimulationEventCallback.h Source File</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <LINK HREF="NVIDIA.css" REL="stylesheet" TYPE="text/css"> + </head> + + <body bgcolor="#FFFFFF"> + <div id="header"> + <hr class="first"> + <img alt="" src="images/PhysXlogo.png" align="middle"> <br> + <center> + <a class="qindex" href="main.html">Main Page</a> + <a class="qindex" href="hierarchy.html">Class Hierarchy</a> + <a class="qindex" href="annotated.html">Compound List</a> + <a class="qindex" href="functions.html">Compound Members</a> + </center> + <hr class="second"> + </div> +<!-- Generated by Doxygen 1.5.8 --> +<h1>PxSimulationEventCallback.h</h1><a href="PxSimulationEventCallback_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span> +<a name="l00002"></a>00002 <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span> +<a name="l00003"></a>00003 <span class="comment">//</span> +<a name="l00004"></a>00004 <span class="comment">// Notice</span> +<a name="l00005"></a>00005 <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span> +<a name="l00006"></a>00006 <span class="comment">// proprietary rights in and to this software and related documentation and</span> +<a name="l00007"></a>00007 <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span> +<a name="l00008"></a>00008 <span class="comment">// distribution of this software and related documentation without an express</span> +<a name="l00009"></a>00009 <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span> +<a name="l00010"></a>00010 <span class="comment">//</span> +<a name="l00011"></a>00011 <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span> +<a name="l00012"></a>00012 <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span> +<a name="l00013"></a>00013 <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span> +<a name="l00014"></a>00014 <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span> +<a name="l00015"></a>00015 <span class="comment">//</span> +<a name="l00016"></a>00016 <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span> +<a name="l00017"></a>00017 <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span> +<a name="l00018"></a>00018 <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span> +<a name="l00019"></a>00019 <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span> +<a name="l00020"></a>00020 <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span> +<a name="l00021"></a>00021 <span class="comment">// This code supersedes and replaces all information previously supplied.</span> +<a name="l00022"></a>00022 <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span> +<a name="l00023"></a>00023 <span class="comment">// components in life support devices or systems without express written approval of</span> +<a name="l00024"></a>00024 <span class="comment">// NVIDIA Corporation.</span> +<a name="l00025"></a>00025 <span class="comment">//</span> +<a name="l00026"></a>00026 <span class="comment">// Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved.</span> +<a name="l00027"></a>00027 <span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span> +<a name="l00028"></a>00028 <span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved. </span> +<a name="l00029"></a>00029 +<a name="l00030"></a>00030 +<a name="l00031"></a>00031 <span class="preprocessor">#ifndef PX_SIMULATION_EVENT_CALLBACK</span> +<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define PX_SIMULATION_EVENT_CALLBACK</span> +<a name="l00033"></a>00033 <span class="preprocessor"></span> +<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PxVec3_8h.html">foundation/PxVec3.h</a>"</span> +<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="PxTransform_8h.html">foundation/PxTransform.h</a>"</span> +<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="PxMemory_8h.html">foundation/PxMemory.h</a>"</span> +<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="PxPhysXConfig_8h.html">PxPhysXConfig.h</a>"</span> +<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PxFiltering_8h.html">PxFiltering.h</a>"</span> +<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="PxContact_8h.html">PxContact.h</a>"</span> +<a name="l00043"></a>00043 +<a name="l00044"></a>00044 <span class="preprocessor">#if !PX_DOXYGEN</span> +<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="keyword">namespace </span>physx +<a name="l00046"></a>00046 { +<a name="l00047"></a>00047 <span class="preprocessor">#endif</span> +<a name="l00048"></a>00048 <span class="preprocessor"></span> +<a name="l00049"></a>00049 <span class="keyword">class </span><a class="code" href="classPxShape.html" title="Abstract class for collision shapes.">PxShape</a>; +<a name="l00050"></a>00050 <span class="keyword">class </span><a class="code" href="classPxActor.html" title="PxActor is the base class for the main simulation objects in the physics SDK.">PxActor</a>; +<a name="l00051"></a>00051 <span class="keyword">class </span><a class="code" href="classPxRigidActor.html" title="PxRigidActor represents a base class shared between dynamic and static rigid bodies...">PxRigidActor</a>; +<a name="l00052"></a>00052 <span class="keyword">class </span><a class="code" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects.">PxRigidBody</a>; +<a name="l00053"></a>00053 <span class="keyword">class </span><a class="code" href="classPxConstraint.html" title="A plugin class for implementing constraints.">PxConstraint</a>; +<a name="l00054"></a>00054 +<a name="l00055"></a>00055 +<a name="l00061"></a><a class="code" href="structPxContactPairExtraDataType.html">00061</a> <span class="keyword">struct </span><a class="code" href="structPxContactPairExtraDataType.html" title="Extra data item types for contact pairs.">PxContactPairExtraDataType</a> +<a name="l00062"></a>00062 { +<a name="l00063"></a><a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccf">00063</a> <span class="keyword">enum</span> <a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccf">Enum</a> +<a name="l00064"></a>00064 { +<a name="l00065"></a><a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccf65354aa538954b8a3cf69c76ea17c969">00065</a> ePRE_SOLVER_VELOCITY, +<a name="l00066"></a><a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccf84f1ceadbc96a19d20b1c73b9d423f97">00066</a> ePOST_SOLVER_VELOCITY, +<a name="l00067"></a><a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccfcd2d0aa83804b8a76c80c4774f24cc5b">00067</a> eCONTACT_EVENT_POSE, +<a name="l00068"></a><a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccf4cd1b1bb26276831476d4014f3aebff4">00068</a> eCONTACT_PAIR_INDEX +<a name="l00069"></a>00069 }; +<a name="l00070"></a>00070 }; +<a name="l00071"></a>00071 +<a name="l00072"></a>00072 +<a name="l00078"></a><a class="code" href="structPxContactPairExtraDataItem.html">00078</a> <span class="keyword">struct </span><a class="code" href="structPxContactPairExtraDataItem.html" title="Base class for items in the extra data stream of contact pairs.">PxContactPairExtraDataItem</a> +<a name="l00079"></a>00079 { +<a name="l00080"></a>00080 <span class="keyword">public</span>: +<a name="l00081"></a><a class="code" href="structPxContactPairExtraDataItem.html#79c3bb558f707953197bd57b15baa0fe">00081</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="structPxContactPairExtraDataItem.html#79c3bb558f707953197bd57b15baa0fe">PxContactPairExtraDataItem</a>() {} +<a name="l00082"></a>00082 +<a name="l00086"></a><a class="code" href="structPxContactPairExtraDataItem.html#18e83c33b02a0a57f0daf818379e06d6">00086</a> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a> type; +<a name="l00087"></a>00087 }; +<a name="l00088"></a>00088 +<a name="l00089"></a>00089 +<a name="l00101"></a><a class="code" href="structPxContactPairVelocity.html">00101</a> <span class="keyword">struct </span><a class="code" href="structPxContactPairVelocity.html" title="Velocities of the contact pair rigid bodies.">PxContactPairVelocity</a> : <span class="keyword">public</span> <a class="code" href="structPxContactPairExtraDataItem.html" title="Base class for items in the extra data stream of contact pairs.">PxContactPairExtraDataItem</a> +<a name="l00102"></a>00102 { +<a name="l00103"></a>00103 <span class="keyword">public</span>: +<a name="l00104"></a><a class="code" href="structPxContactPairVelocity.html#413001492fb89e7e85dd76ed7a8d8f6d">00104</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="structPxContactPairVelocity.html#413001492fb89e7e85dd76ed7a8d8f6d">PxContactPairVelocity</a>() {} +<a name="l00105"></a>00105 +<a name="l00109"></a><a class="code" href="structPxContactPairVelocity.html#98a55c7cf6a531934189f69933723a23">00109</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> linearVelocity[2]; +<a name="l00110"></a>00110 +<a name="l00114"></a><a class="code" href="structPxContactPairVelocity.html#a930131d979792551504da7890665c76">00114</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> angularVelocity[2]; +<a name="l00115"></a>00115 }; +<a name="l00116"></a>00116 +<a name="l00117"></a>00117 +<a name="l00123"></a><a class="code" href="structPxContactPairPose.html">00123</a> <span class="keyword">struct </span><a class="code" href="structPxContactPairPose.html" title="World space actor poses of the contact pair rigid bodies.">PxContactPairPose</a> : <span class="keyword">public</span> <a class="code" href="structPxContactPairExtraDataItem.html" title="Base class for items in the extra data stream of contact pairs.">PxContactPairExtraDataItem</a> +<a name="l00124"></a>00124 { +<a name="l00125"></a>00125 <span class="keyword">public</span>: +<a name="l00126"></a><a class="code" href="structPxContactPairPose.html#a6ed45b56106284558faeebdde10c8f1">00126</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="structPxContactPairPose.html#a6ed45b56106284558faeebdde10c8f1">PxContactPairPose</a>() {} +<a name="l00127"></a>00127 +<a name="l00131"></a><a class="code" href="structPxContactPairPose.html#b238e8a9bb30fe71637a27d497a64ca5">00131</a> <a class="code" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector">PxTransform</a> globalPose[2]; +<a name="l00132"></a>00132 }; +<a name="l00133"></a>00133 +<a name="l00134"></a>00134 +<a name="l00160"></a><a class="code" href="structPxContactPairIndex.html">00160</a> <span class="keyword">struct </span><a class="code" href="structPxContactPairIndex.html" title="Marker for the beginning of a new item set in the extra data stream.">PxContactPairIndex</a> : <span class="keyword">public</span> <a class="code" href="structPxContactPairExtraDataItem.html" title="Base class for items in the extra data stream of contact pairs.">PxContactPairExtraDataItem</a> +<a name="l00161"></a>00161 { +<a name="l00162"></a>00162 <span class="keyword">public</span>: +<a name="l00163"></a><a class="code" href="structPxContactPairIndex.html#0aae6856f18cbe9040c586ef4852a862">00163</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="structPxContactPairIndex.html#0aae6856f18cbe9040c586ef4852a862">PxContactPairIndex</a>() {} +<a name="l00164"></a>00164 +<a name="l00168"></a><a class="code" href="structPxContactPairIndex.html#b9ca1f887cd9a26b50eadd4297c4d19e">00168</a> <a class="code" href="namespacephysx.html#9caf1cbcda071b6d2a9c069faa99da23">PxU16</a> index; +<a name="l00169"></a>00169 }; +<a name="l00170"></a>00170 +<a name="l00171"></a>00171 +<a name="l00177"></a><a class="code" href="structPxContactPairExtraDataIterator.html">00177</a> <span class="keyword">struct </span><a class="code" href="structPxContactPairExtraDataIterator.html" title="A class to iterate over a contact pair extra data stream.">PxContactPairExtraDataIterator</a> +<a name="l00178"></a>00178 { +<a name="l00184"></a><a class="code" href="structPxContactPairExtraDataIterator.html#f5d36be4d51a22af103523375a04d5e0">00184</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="code" href="structPxContactPairExtraDataIterator.html" title="A class to iterate over a contact pair extra data stream.">PxContactPairExtraDataIterator</a>(<span class="keyword">const</span> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* stream, <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> size) +<a name="l00185"></a>00185 : currPtr(stream), endPtr(stream + size), contactPairIndex(0) +<a name="l00186"></a>00186 { +<a name="l00187"></a>00187 clearDataPtrs(); +<a name="l00188"></a>00188 } +<a name="l00189"></a>00189 +<a name="l00208"></a><a class="code" href="structPxContactPairExtraDataIterator.html#6938e71e6ed8d693a4fe9e1bd3bd9d3a">00208</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">bool</span> nextItemSet() +<a name="l00209"></a>00209 { +<a name="l00210"></a>00210 clearDataPtrs(); +<a name="l00211"></a>00211 +<a name="l00212"></a>00212 <span class="keywordtype">bool</span> foundEntry = <span class="keyword">false</span>; +<a name="l00213"></a>00213 <span class="keywordtype">bool</span> endOfItemSet = <span class="keyword">false</span>; +<a name="l00214"></a>00214 <span class="keywordflow">while</span> ((currPtr < endPtr) && (!endOfItemSet)) +<a name="l00215"></a>00215 { +<a name="l00216"></a>00216 <span class="keyword">const</span> <a class="code" href="structPxContactPairExtraDataItem.html" title="Base class for items in the extra data stream of contact pairs.">PxContactPairExtraDataItem</a>* edItem = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><a class="code" href="structPxContactPairExtraDataItem.html" title="Base class for items in the extra data stream of contact pairs.">PxContactPairExtraDataItem</a>*<span class="keyword">></span>(currPtr); +<a name="l00217"></a>00217 <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a> type = edItem-><a class="code" href="structPxContactPairExtraDataItem.html#18e83c33b02a0a57f0daf818379e06d6" title="The type of the extra data stream item.">type</a>; +<a name="l00218"></a>00218 +<a name="l00219"></a>00219 <span class="keywordflow">switch</span>(type) +<a name="l00220"></a>00220 { +<a name="l00221"></a>00221 <span class="keywordflow">case</span> <a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccf65354aa538954b8a3cf69c76ea17c969" title="see PxContactPairVelocity">PxContactPairExtraDataType::ePRE_SOLVER_VELOCITY</a>: +<a name="l00222"></a>00222 { +<a name="l00223"></a>00223 <a class="code" href="group__foundation.html#g4a83a657390b324a460f14684e5accee">PX_ASSERT</a>(!preSolverVelocity); +<a name="l00224"></a>00224 preSolverVelocity = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="structPxContactPairVelocity.html" title="Velocities of the contact pair rigid bodies.">PxContactPairVelocity</a>*<span class="keyword">></span>(edItem); +<a name="l00225"></a>00225 currPtr += <span class="keyword">sizeof</span>(<a class="code" href="structPxContactPairVelocity.html" title="Velocities of the contact pair rigid bodies.">PxContactPairVelocity</a>); +<a name="l00226"></a>00226 foundEntry = <span class="keyword">true</span>; +<a name="l00227"></a>00227 } +<a name="l00228"></a>00228 <span class="keywordflow">break</span>; +<a name="l00229"></a>00229 +<a name="l00230"></a>00230 <span class="keywordflow">case</span> <a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccf84f1ceadbc96a19d20b1c73b9d423f97" title="see PxContactPairVelocity">PxContactPairExtraDataType::ePOST_SOLVER_VELOCITY</a>: +<a name="l00231"></a>00231 { +<a name="l00232"></a>00232 postSolverVelocity = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="structPxContactPairVelocity.html" title="Velocities of the contact pair rigid bodies.">PxContactPairVelocity</a>*<span class="keyword">></span>(edItem); +<a name="l00233"></a>00233 currPtr += <span class="keyword">sizeof</span>(<a class="code" href="structPxContactPairVelocity.html" title="Velocities of the contact pair rigid bodies.">PxContactPairVelocity</a>); +<a name="l00234"></a>00234 foundEntry = <span class="keyword">true</span>; +<a name="l00235"></a>00235 } +<a name="l00236"></a>00236 <span class="keywordflow">break</span>; +<a name="l00237"></a>00237 +<a name="l00238"></a>00238 <span class="keywordflow">case</span> <a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccfcd2d0aa83804b8a76c80c4774f24cc5b" title="see PxContactPairPose">PxContactPairExtraDataType::eCONTACT_EVENT_POSE</a>: +<a name="l00239"></a>00239 { +<a name="l00240"></a>00240 eventPose = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="structPxContactPairPose.html" title="World space actor poses of the contact pair rigid bodies.">PxContactPairPose</a>*<span class="keyword">></span>(edItem); +<a name="l00241"></a>00241 currPtr += <span class="keyword">sizeof</span>(<a class="code" href="structPxContactPairPose.html" title="World space actor poses of the contact pair rigid bodies.">PxContactPairPose</a>); +<a name="l00242"></a>00242 foundEntry = <span class="keyword">true</span>; +<a name="l00243"></a>00243 } +<a name="l00244"></a>00244 <span class="keywordflow">break</span>; +<a name="l00245"></a>00245 +<a name="l00246"></a>00246 <span class="keywordflow">case</span> <a class="code" href="structPxContactPairExtraDataType.html#ba00bd5468b1e16d9b473f573ddc2ccf4cd1b1bb26276831476d4014f3aebff4" title="see PxContactPairIndex">PxContactPairExtraDataType::eCONTACT_PAIR_INDEX</a>: +<a name="l00247"></a>00247 { +<a name="l00248"></a>00248 <span class="keywordflow">if</span> (!foundEntry) +<a name="l00249"></a>00249 { +<a name="l00250"></a>00250 contactPairIndex = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="structPxContactPairIndex.html" title="Marker for the beginning of a new item set in the extra data stream.">PxContactPairIndex</a>*<span class="keyword">></span>(edItem)->index; +<a name="l00251"></a>00251 currPtr += <span class="keyword">sizeof</span>(<a class="code" href="structPxContactPairIndex.html" title="Marker for the beginning of a new item set in the extra data stream.">PxContactPairIndex</a>); +<a name="l00252"></a>00252 foundEntry = <span class="keyword">true</span>; +<a name="l00253"></a>00253 } +<a name="l00254"></a>00254 <span class="keywordflow">else</span> +<a name="l00255"></a>00255 endOfItemSet = <span class="keyword">true</span>; +<a name="l00256"></a>00256 } +<a name="l00257"></a>00257 <span class="keywordflow">break</span>; +<a name="l00258"></a>00258 +<a name="l00259"></a>00259 <span class="keywordflow">default</span>: +<a name="l00260"></a>00260 <span class="keywordflow">return</span> foundEntry; +<a name="l00261"></a>00261 } +<a name="l00262"></a>00262 } +<a name="l00263"></a>00263 +<a name="l00264"></a>00264 <span class="keywordflow">return</span> foundEntry; +<a name="l00265"></a>00265 } +<a name="l00266"></a>00266 +<a name="l00267"></a>00267 <span class="keyword">private</span>: +<a name="l00271"></a><a class="code" href="structPxContactPairExtraDataIterator.html#1d2a22a64b21c547ad7e586307ca3afb">00271</a> <a class="code" href="group__foundation.html#g6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <span class="keywordtype">void</span> clearDataPtrs() +<a name="l00272"></a>00272 { +<a name="l00273"></a>00273 preSolverVelocity = NULL; +<a name="l00274"></a>00274 postSolverVelocity = NULL; +<a name="l00275"></a>00275 eventPose = NULL; +<a name="l00276"></a>00276 } +<a name="l00277"></a>00277 +<a name="l00278"></a>00278 <span class="keyword">public</span>: +<a name="l00282"></a><a class="code" href="structPxContactPairExtraDataIterator.html#c54b5d820140765076bc39255d679750">00282</a> <span class="keyword">const</span> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* currPtr; +<a name="l00283"></a>00283 +<a name="l00287"></a><a class="code" href="structPxContactPairExtraDataIterator.html#ff63eb915e6527e8d807ed6cdac48a7b">00287</a> <span class="keyword">const</span> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* endPtr; +<a name="l00288"></a>00288 +<a name="l00294"></a><a class="code" href="structPxContactPairExtraDataIterator.html#bec5ba2e81dc6604bf322fe4cb1810e1">00294</a> <span class="keyword">const</span> <a class="code" href="structPxContactPairVelocity.html" title="Velocities of the contact pair rigid bodies.">PxContactPairVelocity</a>* preSolverVelocity; +<a name="l00295"></a>00295 +<a name="l00301"></a><a class="code" href="structPxContactPairExtraDataIterator.html#8e2656d684789f0f05c135d5f5c5fa25">00301</a> <span class="keyword">const</span> <a class="code" href="structPxContactPairVelocity.html" title="Velocities of the contact pair rigid bodies.">PxContactPairVelocity</a>* postSolverVelocity; +<a name="l00302"></a>00302 +<a name="l00308"></a><a class="code" href="structPxContactPairExtraDataIterator.html#dcdd22f0243e8e2ffc81241a8831074c">00308</a> <span class="keyword">const</span> <a class="code" href="structPxContactPairPose.html" title="World space actor poses of the contact pair rigid bodies.">PxContactPairPose</a>* eventPose; +<a name="l00309"></a>00309 +<a name="l00315"></a><a class="code" href="structPxContactPairExtraDataIterator.html#137240c7c0d90d99f78800108a311256">00315</a> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> contactPairIndex; +<a name="l00316"></a>00316 }; +<a name="l00317"></a>00317 +<a name="l00318"></a>00318 +<a name="l00324"></a><a class="code" href="structPxContactPairHeaderFlag.html">00324</a> <span class="keyword">struct </span><a class="code" href="structPxContactPairHeaderFlag.html" title="Collection of flags providing information on contact report pairs.">PxContactPairHeaderFlag</a> +<a name="l00325"></a>00325 { +<a name="l00326"></a><a class="code" href="structPxContactPairHeaderFlag.html#143dcb345f5c81bd542d33e67085ba3a">00326</a> <span class="keyword">enum</span> <a class="code" href="structPxContactPairHeaderFlag.html#143dcb345f5c81bd542d33e67085ba3a">Enum</a> +<a name="l00327"></a>00327 { +<a name="l00328"></a><a class="code" href="structPxContactPairHeaderFlag.html#143dcb345f5c81bd542d33e67085ba3a5d6c30a3eb5e624bcf7cff2d69962801">00328</a> eREMOVED_ACTOR_0 = (1<<0), +<a name="l00329"></a><a class="code" href="structPxContactPairHeaderFlag.html#143dcb345f5c81bd542d33e67085ba3aa505e89eb31298d8bc304f95565d53bf">00329</a> eREMOVED_ACTOR_1 = (1<<1) +<a name="l00330"></a>00330 }; +<a name="l00331"></a>00331 }; +<a name="l00332"></a>00332 +<a name="l00338"></a><a class="code" href="group__physics.html#ga4275c674f70ce3f0be586339eb0b045">00338</a> <span class="keyword">typedef</span> <a class="code" href="classPxFlags.html">PxFlags<PxContactPairHeaderFlag::Enum, PxU16></a> <a class="code" href="classPxFlags.html">PxContactPairHeaderFlags</a>; +<a name="l00339"></a>00339 <a class="code" href="group__foundation.html#g092f922a63fdc7a95ae4f4e24b3768c1">PX_FLAGS_OPERATORS</a>(<a class="code" href="structPxContactPairHeaderFlag.html#143dcb345f5c81bd542d33e67085ba3a">PxContactPairHeaderFlag::Enum</a>, <a class="code" href="namespacephysx.html#9caf1cbcda071b6d2a9c069faa99da23">PxU16</a>) +<a name="l00340"></a>00340 +<a name="l00341"></a>00341 +<a name="l00342"></a>00342 +<a name="l00347"></a><a class="code" href="structPxContactPairHeader.html">00347</a> struct <a class="code" href="structPxContactPairHeader.html" title="An Instance of this class is passed to PxSimulationEventCallback.onContact().">PxContactPairHeader</a> +<a name="l00348"></a>00348 { +<a name="l00349"></a>00349 <span class="keyword">public</span>: +<a name="l00350"></a><a class="code" href="structPxContactPairHeader.html#d5ae557cec81ae4c92b0e987b682af7d">00350</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="structPxContactPairHeader.html#d5ae557cec81ae4c92b0e987b682af7d">PxContactPairHeader</a>() {} +<a name="l00351"></a>00351 +<a name="l00363"></a><a class="code" href="structPxContactPairHeader.html#e3a7e00ec5edf59b946196becc840182">00363</a> <a class="code" href="classPxRigidActor.html" title="PxRigidActor represents a base class shared between dynamic and static rigid bodies...">PxRigidActor</a>* actors[2]; +<a name="l00364"></a>00364 +<a name="l00373"></a><a class="code" href="structPxContactPairHeader.html#2a9619192f15e1a60104c90b83f67e33">00373</a> <span class="keyword">const</span> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* extraDataStream; +<a name="l00374"></a>00374 +<a name="l00378"></a><a class="code" href="structPxContactPairHeader.html#b43e1aa99a8399533f57725d50f002d4">00378</a> <a class="code" href="namespacephysx.html#9caf1cbcda071b6d2a9c069faa99da23">PxU16</a> extraDataStreamSize; +<a name="l00379"></a>00379 +<a name="l00385"></a><a class="code" href="structPxContactPairHeader.html#ff053696e65138d0d5ca6625350e1011">00385</a> <a class="code" href="classPxFlags.html">PxContactPairHeaderFlags</a> flags; +<a name="l00386"></a>00386 +<a name="l00390"></a><a class="code" href="structPxContactPairHeader.html#e1b3429e7d69fcba36d264087e03c12b">00390</a> <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structPxContactPair.html" title="Contact report pair information.">PxContactPair</a>* pairs; +<a name="l00391"></a>00391 +<a name="l00395"></a><a class="code" href="structPxContactPairHeader.html#a4b544da63d06205662034a5ebaf1e9f">00395</a> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> nbPairs; +<a name="l00396"></a>00396 }; +<a name="l00397"></a>00397 +<a name="l00398"></a>00398 +<a name="l00404"></a><a class="code" href="structPxContactPairFlag.html">00404</a> <span class="keyword">struct </span><a class="code" href="structPxContactPairFlag.html" title="Collection of flags providing information on contact report pairs.">PxContactPairFlag</a> +<a name="l00405"></a>00405 { +<a name="l00406"></a><a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe9">00406</a> <span class="keyword">enum</span> <a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe9">Enum</a> +<a name="l00407"></a>00407 { +<a name="l00411"></a><a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe96242154f6745f277c5eee26e6720bd92">00411</a> eREMOVED_SHAPE_0 = (1<<0), +<a name="l00412"></a>00412 +<a name="l00416"></a><a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe9008066f2fa67361c251415056ad037b1">00416</a> eREMOVED_SHAPE_1 = (1<<1), +<a name="l00417"></a>00417 +<a name="l00425"></a><a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe9e98d7d1c67a1176d3fe6945c26ae2898">00425</a> eACTOR_PAIR_HAS_FIRST_TOUCH = (1<<2), +<a name="l00426"></a>00426 +<a name="l00432"></a><a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe97d506d1c6752284cae2dd3cf9e3d5e9b">00432</a> eACTOR_PAIR_LOST_TOUCH = (1<<3), +<a name="l00433"></a>00433 +<a name="l00440"></a><a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe99de36fd88d372fec362f1b2f9e1ae84d">00440</a> eINTERNAL_HAS_IMPULSES = (1<<4), +<a name="l00441"></a>00441 +<a name="l00447"></a><a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe971986247e42a1d5f71ef758700e1945e">00447</a> eINTERNAL_CONTACTS_ARE_FLIPPED = (1<<5) +<a name="l00448"></a>00448 }; +<a name="l00449"></a>00449 }; +<a name="l00450"></a>00450 +<a name="l00456"></a><a class="code" href="group__physics.html#ge73039b8bd7e7f4a606acfba4811291c">00456</a> <span class="keyword">typedef</span> <a class="code" href="classPxFlags.html">PxFlags<PxContactPairFlag::Enum, PxU16></a> <a class="code" href="classPxFlags.html">PxContactPairFlags</a>; +<a name="l00457"></a>00457 <a class="code" href="group__foundation.html#g092f922a63fdc7a95ae4f4e24b3768c1">PX_FLAGS_OPERATORS</a>(<a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe9">PxContactPairFlag::Enum</a>, <a class="code" href="namespacephysx.html#9caf1cbcda071b6d2a9c069faa99da23">PxU16</a>) +<a name="l00458"></a>00458 +<a name="l00459"></a>00459 +<a name="l00460"></a>00460 +<a name="l00463"></a><a class="code" href="structPxContactPairPoint.html">00463</a> struct <a class="code" href="structPxContactPairPoint.html" title="A contact point as used by contact notification.">PxContactPairPoint</a> +<a name="l00464"></a>00464 { +<a name="l00468"></a><a class="code" href="structPxContactPairPoint.html#66d3adffcb6ab1760863e56aa11e5700">00468</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> position; +<a name="l00469"></a>00469 +<a name="l00473"></a><a class="code" href="structPxContactPairPoint.html#f259733d066c5295cea7423a4f9b59fd">00473</a> <a class="code" href="namespacephysx.html#727d2d8426e2a21ebbc522fa65c3f97a">PxReal</a> separation; +<a name="l00474"></a>00474 +<a name="l00478"></a><a class="code" href="structPxContactPairPoint.html#36ae08a170895b4b57eaa1f6488bcd05">00478</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> normal; +<a name="l00479"></a>00479 +<a name="l00483"></a><a class="code" href="structPxContactPairPoint.html#97a896e3c7d4fad769f6f90ed95e0fb4">00483</a> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> internalFaceIndex0; +<a name="l00484"></a>00484 +<a name="l00488"></a><a class="code" href="structPxContactPairPoint.html#df48bcf5ea77bda35d58c7274fa44680">00488</a> <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a> impulse; +<a name="l00489"></a>00489 +<a name="l00493"></a><a class="code" href="structPxContactPairPoint.html#24d0d7df3a95498b60f2bc67d5d74ace">00493</a> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> internalFaceIndex1; +<a name="l00494"></a>00494 }; +<a name="l00495"></a>00495 +<a name="l00496"></a>00496 +<a name="l00505"></a><a class="code" href="structPxContactPair.html">00505</a> <span class="keyword">struct </span><a class="code" href="structPxContactPair.html" title="Contact report pair information.">PxContactPair</a> +<a name="l00506"></a>00506 { +<a name="l00507"></a>00507 <span class="keyword">public</span>: +<a name="l00508"></a><a class="code" href="structPxContactPair.html#d9a904aa67a0cec9887d03521c636d9e">00508</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="structPxContactPair.html#d9a904aa67a0cec9887d03521c636d9e">PxContactPair</a>() {} +<a name="l00509"></a>00509 +<a name="l00521"></a><a class="code" href="structPxContactPair.html#d4482d0d718415fbbd0c5852994f139f">00521</a> <a class="code" href="classPxShape.html" title="Abstract class for collision shapes.">PxShape</a>* shapes[2]; +<a name="l00522"></a>00522 +<a name="l00529"></a><a class="code" href="structPxContactPair.html#48af2df819d277ca1329da1630ac4a47">00529</a> <span class="keyword">const</span> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* contactPatches; +<a name="l00530"></a>00530 +<a name="l00537"></a><a class="code" href="structPxContactPair.html#73d11caa7df479aa964761a376968abb">00537</a> <span class="keyword">const</span> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* contactPoints; +<a name="l00538"></a>00538 +<a name="l00545"></a><a class="code" href="structPxContactPair.html#0468bb8f49c3eeaf0ec18ce5b828f0ca">00545</a> <span class="keyword">const</span> <a class="code" href="namespacephysx.html#727d2d8426e2a21ebbc522fa65c3f97a">PxReal</a>* contactImpulses; +<a name="l00546"></a>00546 +<a name="l00550"></a><a class="code" href="structPxContactPair.html#8bee18db2d05286fc1e1b14bac54184f">00550</a> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> requiredBufferSize; +<a name="l00551"></a>00551 +<a name="l00555"></a><a class="code" href="structPxContactPair.html#fd3b2178f7005d3563f41b4925e60a39">00555</a> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a> contactCount; +<a name="l00556"></a>00556 +<a name="l00561"></a><a class="code" href="structPxContactPair.html#ac2821a1e5d8d8cc969b24f2a861a1a0">00561</a> <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a> patchCount; +<a name="l00562"></a>00562 +<a name="l00567"></a><a class="code" href="structPxContactPair.html#bf78ac4dcef249601f486b939c08d589">00567</a> <a class="code" href="namespacephysx.html#9caf1cbcda071b6d2a9c069faa99da23">PxU16</a> contactStreamSize; +<a name="l00568"></a>00568 +<a name="l00574"></a><a class="code" href="structPxContactPair.html#649a2da93fe6f6227631c42733648ca7">00574</a> <a class="code" href="classPxFlags.html">PxContactPairFlags</a> flags; +<a name="l00575"></a>00575 +<a name="l00598"></a><a class="code" href="structPxContactPair.html#cba0b9958ac5d3884c515f94234b9c20">00598</a> <a class="code" href="classPxFlags.html">PxPairFlags</a> events; +<a name="l00599"></a>00599 +<a name="l00600"></a><a class="code" href="structPxContactPair.html#7335f614a8f1aaec63340f28cc4d1f5f">00600</a> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> internalData[2]; <span class="comment">// For internal use only</span> +<a name="l00601"></a>00601 +<a name="l00611"></a>00611 <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> extractContacts(<a class="code" href="structPxContactPairPoint.html" title="A contact point as used by contact notification.">PxContactPairPoint</a>* userBuffer, <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> bufferSize) <span class="keyword">const</span>; +<a name="l00612"></a>00612 +<a name="l00622"></a>00622 <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">void</span> bufferContacts(<a class="code" href="structPxContactPair.html" title="Contact report pair information.">PxContactPair</a>* newPair, <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* bufferMemory) <span class="keyword">const</span>; +<a name="l00623"></a>00623 +<a name="l00624"></a>00624 <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keyword">const</span> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a>* getInternalFaceIndices() <span class="keyword">const</span>; +<a name="l00625"></a>00625 }; +<a name="l00626"></a>00626 +<a name="l00627"></a>00627 +<a name="l00628"></a><a class="code" href="group__physics.html#g7ff203676a71282e269ff6844e93fa13">00628</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> <a class="code" href="group__physics.html#g7ff203676a71282e269ff6844e93fa13" title="Extracts the contact points from the stream and stores them in a convenient format...">PxContactPair::extractContacts</a>(<a class="code" href="structPxContactPairPoint.html" title="A contact point as used by contact notification.">PxContactPairPoint</a>* userBuffer, <a class="code" href="namespacephysx.html#9b7fbd746d18bf5b6545713a8d818f41">PxU32</a> bufferSize)<span class="keyword"> const</span> +<a name="l00629"></a>00629 <span class="keyword"></span>{ +<a name="l00630"></a>00630 <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> nbContacts = 0; +<a name="l00631"></a>00631 +<a name="l00632"></a>00632 <span class="keywordflow">if</span>(<a class="code" href="structPxContactPair.html#fd3b2178f7005d3563f41b4925e60a39" title="Number of contact points stored in the contact stream.">contactCount</a> && bufferSize) +<a name="l00633"></a>00633 { +<a name="l00634"></a>00634 <a class="code" href="structPxContactStreamIterator.html" title="A class to iterate over a compressed contact stream. This supports read-only access...">PxContactStreamIterator</a> iter(<a class="code" href="structPxContactPair.html#48af2df819d277ca1329da1630ac4a47" title="Pointer to first patch header in contact stream containing contact patch data.">contactPatches</a>, <a class="code" href="structPxContactPair.html#73d11caa7df479aa964761a376968abb" title="Pointer to first contact point in contact stream containing contact data.">contactPoints</a>, <a class="code" href="group__physics.html#g305b4df8647fb1ddb2b67918482ec789">getInternalFaceIndices</a>(), <a class="code" href="structPxContactPair.html#ac2821a1e5d8d8cc969b24f2a861a1a0" title="Number of contact patches stored in the contact stream.">patchCount</a>, <a class="code" href="structPxContactPair.html#fd3b2178f7005d3563f41b4925e60a39" title="Number of contact points stored in the contact stream.">contactCount</a>); +<a name="l00635"></a>00635 +<a name="l00636"></a>00636 <span class="keyword">const</span> <a class="code" href="namespacephysx.html#727d2d8426e2a21ebbc522fa65c3f97a">PxReal</a>* impulses = <a class="code" href="structPxContactPair.html#0468bb8f49c3eeaf0ec18ce5b828f0ca" title="Buffer containing applied impulse data.">contactImpulses</a>; +<a name="l00637"></a>00637 +<a name="l00638"></a>00638 <span class="keyword">const</span> <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> flippedContacts = (<a class="code" href="structPxContactPair.html#649a2da93fe6f6227631c42733648ca7" title="Additional information on the contact report pair.">flags</a> & <a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe971986247e42a1d5f71ef758700e1945e" title="Internal flag, used by PxContactPair.extractContacts().">PxContactPairFlag::eINTERNAL_CONTACTS_ARE_FLIPPED</a>); +<a name="l00639"></a>00639 <span class="keyword">const</span> <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> hasImpulses = (<a class="code" href="structPxContactPair.html#649a2da93fe6f6227631c42733648ca7" title="Additional information on the contact report pair.">flags</a> & <a class="code" href="structPxContactPairFlag.html#a9414bf8c45ed9d53da3e5c98025fbe99de36fd88d372fec362f1b2f9e1ae84d" title="Internal flag, used by PxContactPair.extractContacts().">PxContactPairFlag::eINTERNAL_HAS_IMPULSES</a>); +<a name="l00640"></a>00640 +<a name="l00641"></a>00641 <span class="keywordflow">while</span>(iter.<a class="code" href="structPxContactStreamIterator.html#6a871d90155002f41632b0f30ca3b15a" title="Returns whether there are more patches in this stream.">hasNextPatch</a>()) +<a name="l00642"></a>00642 { +<a name="l00643"></a>00643 iter.<a class="code" href="structPxContactStreamIterator.html#46de7820400eb295b621f38c79884867" title="Advances iterator to next contact patch.">nextPatch</a>(); +<a name="l00644"></a>00644 <span class="keywordflow">while</span>(iter.<a class="code" href="structPxContactStreamIterator.html#b0db82d3eaf3eb77a2ffb1e5775754ad" title="Returns if the current patch has more contacts.">hasNextContact</a>()) +<a name="l00645"></a>00645 { +<a name="l00646"></a>00646 iter.<a class="code" href="structPxContactStreamIterator.html#7e153b25314fff172bca67a660ccc8c8" title="Advances to the next contact in the patch.">nextContact</a>(); +<a name="l00647"></a>00647 <a class="code" href="structPxContactPairPoint.html" title="A contact point as used by contact notification.">PxContactPairPoint</a>& dst = userBuffer[nbContacts]; +<a name="l00648"></a>00648 dst.<a class="code" href="structPxContactPairPoint.html#66d3adffcb6ab1760863e56aa11e5700" title="The position of the contact point between the shapes, in world space.">position</a> = iter.<a class="code" href="structPxContactStreamIterator.html#d50e5c8e8f815416304cbaced1ed3980" title="Gets the contact&#39;s contact point.">getContactPoint</a>(); +<a name="l00649"></a>00649 dst.<a class="code" href="structPxContactPairPoint.html#f259733d066c5295cea7423a4f9b59fd" title="The separation of the shapes at the contact point. A negative separation denotes...">separation</a> = iter.<a class="code" href="structPxContactStreamIterator.html#b6bd9823f5d44bc849e74d5d52ea0f54" title="Gets the contact&#39;s separation.">getSeparation</a>(); +<a name="l00650"></a>00650 dst.<a class="code" href="structPxContactPairPoint.html#36ae08a170895b4b57eaa1f6488bcd05" title="The normal of the contacting surfaces at the contact point. The normal direction...">normal</a> = iter.<a class="code" href="structPxContactStreamIterator.html#43a9866f464b2b05520f9e60c2635159" title="Gets the current contact&#39;s normal.">getContactNormal</a>(); +<a name="l00651"></a>00651 <span class="keywordflow">if</span>(!flippedContacts) +<a name="l00652"></a>00652 { +<a name="l00653"></a>00653 dst.<a class="code" href="structPxContactPairPoint.html#97a896e3c7d4fad769f6f90ed95e0fb4" title="The surface index of shape 0 at the contact point. This is used to identify the surface...">internalFaceIndex0</a> = iter.<a class="code" href="structPxContactStreamIterator.html#397e7782437534dd5183b57717f24a4a" title="Gets the contact&#39;s face index for shape 0.">getFaceIndex0</a>(); +<a name="l00654"></a>00654 dst.<a class="code" href="structPxContactPairPoint.html#24d0d7df3a95498b60f2bc67d5d74ace" title="The surface index of shape 1 at the contact point. This is used to identify the surface...">internalFaceIndex1</a> = iter.<a class="code" href="structPxContactStreamIterator.html#777a6870286e1eddcc5e9f8cca93b90b" title="Gets the contact&#39;s face index for shape 1.">getFaceIndex1</a>(); +<a name="l00655"></a>00655 } +<a name="l00656"></a>00656 <span class="keywordflow">else</span> +<a name="l00657"></a>00657 { +<a name="l00658"></a>00658 dst.<a class="code" href="structPxContactPairPoint.html#97a896e3c7d4fad769f6f90ed95e0fb4" title="The surface index of shape 0 at the contact point. This is used to identify the surface...">internalFaceIndex0</a> = iter.<a class="code" href="structPxContactStreamIterator.html#777a6870286e1eddcc5e9f8cca93b90b" title="Gets the contact&#39;s face index for shape 1.">getFaceIndex1</a>(); +<a name="l00659"></a>00659 dst.<a class="code" href="structPxContactPairPoint.html#24d0d7df3a95498b60f2bc67d5d74ace" title="The surface index of shape 1 at the contact point. This is used to identify the surface...">internalFaceIndex1</a> = iter.<a class="code" href="structPxContactStreamIterator.html#397e7782437534dd5183b57717f24a4a" title="Gets the contact&#39;s face index for shape 0.">getFaceIndex0</a>(); +<a name="l00660"></a>00660 } +<a name="l00661"></a>00661 +<a name="l00662"></a>00662 <span class="keywordflow">if</span>(hasImpulses) +<a name="l00663"></a>00663 { +<a name="l00664"></a>00664 <span class="keyword">const</span> <a class="code" href="namespacephysx.html#727d2d8426e2a21ebbc522fa65c3f97a">PxReal</a> impulse = impulses[nbContacts]; +<a name="l00665"></a>00665 dst.<a class="code" href="structPxContactPairPoint.html#df48bcf5ea77bda35d58c7274fa44680" title="The impulse applied at the contact point, in world space. Divide by the simulation...">impulse</a> = dst.<a class="code" href="structPxContactPairPoint.html#36ae08a170895b4b57eaa1f6488bcd05" title="The normal of the contacting surfaces at the contact point. The normal direction...">normal</a> * impulse; +<a name="l00666"></a>00666 } +<a name="l00667"></a>00667 <span class="keywordflow">else</span> +<a name="l00668"></a>00668 dst.<a class="code" href="structPxContactPairPoint.html#df48bcf5ea77bda35d58c7274fa44680" title="The impulse applied at the contact point, in world space. Divide by the simulation...">impulse</a> = <a class="code" href="classPxVec3.html" title="3 Element vector class.">PxVec3</a>(0.0f); +<a name="l00669"></a>00669 ++nbContacts; +<a name="l00670"></a>00670 <span class="keywordflow">if</span>(nbContacts == bufferSize) +<a name="l00671"></a>00671 <span class="keywordflow">return</span> nbContacts; +<a name="l00672"></a>00672 } +<a name="l00673"></a>00673 } +<a name="l00674"></a>00674 } +<a name="l00675"></a>00675 +<a name="l00676"></a>00676 <span class="keywordflow">return</span> nbContacts; +<a name="l00677"></a>00677 } +<a name="l00678"></a>00678 +<a name="l00679"></a>00679 +<a name="l00680"></a><a class="code" href="group__physics.html#gdcafe5e4172403f89d62e592248fc5dc">00680</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__physics.html#gdcafe5e4172403f89d62e592248fc5dc" title="Helper method to clone the contact pair and copy the contact data stream into a user...">PxContactPair::bufferContacts</a>(<a class="code" href="structPxContactPair.html" title="Contact report pair information.">PxContactPair</a>* newPair, <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* bufferMemory)<span class="keyword"> const</span> +<a name="l00681"></a>00681 <span class="keyword"></span>{ +<a name="l00682"></a>00682 <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* patches = bufferMemory; +<a name="l00683"></a>00683 <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>* contacts = NULL; +<a name="l00684"></a>00684 <span class="keywordflow">if</span>(patches) +<a name="l00685"></a>00685 { +<a name="l00686"></a>00686 contacts = bufferMemory + <a class="code" href="structPxContactPair.html#ac2821a1e5d8d8cc969b24f2a861a1a0" title="Number of contact patches stored in the contact stream.">patchCount</a> * <span class="keyword">sizeof</span>(<a class="code" href="structPxContactPatch.html" title="Header for contact patch where all points share same material and normal.">PxContactPatch</a>); +<a name="l00687"></a>00687 <a class="code" href="group__foundation.html#g939562c42c614caac1aaba467f77d510" title="Copies the bytes of one memory block to another. The memory blocks must not overlap...">PxMemCopy</a>(patches, <a class="code" href="structPxContactPair.html#48af2df819d277ca1329da1630ac4a47" title="Pointer to first patch header in contact stream containing contact patch data.">contactPatches</a>, <span class="keyword">sizeof</span>(<a class="code" href="structPxContactPatch.html" title="Header for contact patch where all points share same material and normal.">PxContactPatch</a>)*<a class="code" href="structPxContactPair.html#ac2821a1e5d8d8cc969b24f2a861a1a0" title="Number of contact patches stored in the contact stream.">patchCount</a>); +<a name="l00688"></a>00688 <a class="code" href="group__foundation.html#g939562c42c614caac1aaba467f77d510" title="Copies the bytes of one memory block to another. The memory blocks must not overlap...">PxMemCopy</a>(contacts, <a class="code" href="structPxContactPair.html#73d11caa7df479aa964761a376968abb" title="Pointer to first contact point in contact stream containing contact data.">contactPoints</a>, <a class="code" href="structPxContactPair.html#bf78ac4dcef249601f486b939c08d589" title="Size of the contact stream [bytes] not including force buffer.">contactStreamSize</a> - (<span class="keyword">sizeof</span>(<a class="code" href="structPxContactPatch.html" title="Header for contact patch where all points share same material and normal.">PxContactPatch</a>)*patchCount)); +<a name="l00689"></a>00689 } +<a name="l00690"></a>00690 +<a name="l00691"></a>00691 <span class="keywordflow">if</span>(<a class="code" href="structPxContactPair.html#0468bb8f49c3eeaf0ec18ce5b828f0ca" title="Buffer containing applied impulse data.">contactImpulses</a>) +<a name="l00692"></a>00692 { +<a name="l00693"></a>00693 <a class="code" href="group__foundation.html#g939562c42c614caac1aaba467f77d510" title="Copies the bytes of one memory block to another. The memory blocks must not overlap...">PxMemCopy</a>(bufferMemory + ((<a class="code" href="structPxContactPair.html#bf78ac4dcef249601f486b939c08d589" title="Size of the contact stream [bytes] not including force buffer.">contactStreamSize</a> + 15) & (~15)), <a class="code" href="structPxContactPair.html#0468bb8f49c3eeaf0ec18ce5b828f0ca" title="Buffer containing applied impulse data.">contactImpulses</a>, <span class="keyword">sizeof</span>(<a class="code" href="namespacephysx.html#727d2d8426e2a21ebbc522fa65c3f97a">PxReal</a>) * <a class="code" href="structPxContactPair.html#fd3b2178f7005d3563f41b4925e60a39" title="Number of contact points stored in the contact stream.">contactCount</a>); +<a name="l00694"></a>00694 } +<a name="l00695"></a>00695 +<a name="l00696"></a>00696 <span class="keywordflow">if</span> (newPair) +<a name="l00697"></a>00697 { +<a name="l00698"></a>00698 *newPair = *<span class="keyword">this</span>; +<a name="l00699"></a>00699 newPair-><a class="code" href="structPxContactPair.html#48af2df819d277ca1329da1630ac4a47" title="Pointer to first patch header in contact stream containing contact patch data.">contactPatches</a> = patches; +<a name="l00700"></a>00700 newPair-><a class="code" href="structPxContactPair.html#73d11caa7df479aa964761a376968abb" title="Pointer to first contact point in contact stream containing contact data.">contactPoints</a> = contacts; +<a name="l00701"></a>00701 } +<a name="l00702"></a>00702 } +<a name="l00703"></a>00703 +<a name="l00704"></a>00704 +<a name="l00705"></a><a class="code" href="group__physics.html#g305b4df8647fb1ddb2b67918482ec789">00705</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <span class="keyword">const</span> <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a>* <a class="code" href="group__physics.html#g305b4df8647fb1ddb2b67918482ec789">PxContactPair::getInternalFaceIndices</a>()<span class="keyword"> const</span> +<a name="l00706"></a>00706 <span class="keyword"></span>{ +<a name="l00707"></a>00707 <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a>*<span class="keyword">></span>(<a class="code" href="structPxContactPair.html#0468bb8f49c3eeaf0ec18ce5b828f0ca" title="Buffer containing applied impulse data.">contactImpulses</a> + <a class="code" href="structPxContactPair.html#fd3b2178f7005d3563f41b4925e60a39" title="Number of contact points stored in the contact stream.">contactCount</a>); +<a name="l00708"></a>00708 } +<a name="l00709"></a>00709 +<a name="l00715"></a><a class="code" href="structPxTriggerPairFlag.html">00715</a> <span class="keyword">struct </span><a class="code" href="structPxTriggerPairFlag.html" title="Collection of flags providing information on trigger report pairs.">PxTriggerPairFlag</a> +<a name="l00716"></a>00716 { +<a name="l00717"></a><a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebb">00717</a> <span class="keyword">enum</span> <a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebb">Enum</a> +<a name="l00718"></a>00718 { +<a name="l00719"></a><a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebb25a3670764c02ab4c9446f5d54db0d68">00719</a> <a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebb25a3670764c02ab4c9446f5d54db0d68" title="The trigger shape has been removed from the actor/scene.">eREMOVED_SHAPE_TRIGGER</a> = (1<<0), +<a name="l00720"></a><a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebb4a5d51bc51e8d03782c4656cfe36fac7">00720</a> <a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebb4a5d51bc51e8d03782c4656cfe36fac7" title="The shape causing the trigger event has been removed from the actor/scene.">eREMOVED_SHAPE_OTHER</a> = (1<<1), +<a name="l00721"></a><a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebbd52885bfb712218d2d9193012482aeb5">00721</a> <a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebbd52885bfb712218d2d9193012482aeb5" title="For internal use only.">eNEXT_FREE</a> = (1<<2) +<a name="l00722"></a>00722 }; +<a name="l00723"></a>00723 }; +<a name="l00724"></a>00724 +<a name="l00730"></a><a class="code" href="group__physics.html#ge5d4ef1b3321702c4431da8fe72b8f7f">00730</a> <span class="keyword">typedef</span> <a class="code" href="classPxFlags.html">PxFlags<PxTriggerPairFlag::Enum, PxU8></a> <a class="code" href="classPxFlags.html">PxTriggerPairFlags</a>; +<a name="l00731"></a>00731 <a class="code" href="group__foundation.html#g092f922a63fdc7a95ae4f4e24b3768c1">PX_FLAGS_OPERATORS</a>(<a class="code" href="structPxTriggerPairFlag.html#a3c006812673a9dc0a2a87e2be483ebb">PxTriggerPairFlag::Enum</a>, <a class="code" href="namespacephysx.html#3849f86abc21d3a58949481603fe8309">PxU8</a>) +<a name="l00732"></a>00732 +<a name="l00733"></a>00733 +<a name="l00734"></a>00734 +<a name="l00746"></a><a class="code" href="structPxTriggerPair.html">00746</a> struct <a class="code" href="structPxTriggerPair.html" title="Descriptor for a trigger pair.">PxTriggerPair</a> +<a name="l00747"></a>00747 { +<a name="l00748"></a><a class="code" href="structPxTriggerPair.html#adedcfa39f52b9e32b73d9f2096069f1">00748</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="structPxTriggerPair.html#adedcfa39f52b9e32b73d9f2096069f1">PxTriggerPair</a>() {} +<a name="l00749"></a>00749 +<a name="l00750"></a><a class="code" href="structPxTriggerPair.html#d9010d4ddceacd431e8733a010dee664">00750</a> <a class="code" href="classPxShape.html" title="Abstract class for collision shapes.">PxShape</a>* triggerShape; +<a name="l00751"></a><a class="code" href="structPxTriggerPair.html#f4e22129ed6743a51b2ec3553e966950">00751</a> <a class="code" href="classPxRigidActor.html" title="PxRigidActor represents a base class shared between dynamic and static rigid bodies...">PxRigidActor</a>* triggerActor; +<a name="l00752"></a><a class="code" href="structPxTriggerPair.html#483aaaaecb45e77230879bb0b303b8df">00752</a> <a class="code" href="classPxShape.html" title="Abstract class for collision shapes.">PxShape</a>* otherShape; +<a name="l00753"></a><a class="code" href="structPxTriggerPair.html#d079ad0829b0e0e58a962a2167dcf566">00753</a> <a class="code" href="classPxRigidActor.html" title="PxRigidActor represents a base class shared between dynamic and static rigid bodies...">PxRigidActor</a>* otherActor; +<a name="l00754"></a><a class="code" href="structPxTriggerPair.html#b02c51a235d45757e48ecaad5fb7c091">00754</a> <a class="code" href="structPxPairFlag.html#60e71a2948b030140f840766a3f7ac2f">PxPairFlag::Enum</a> status; +<a name="l00755"></a><a class="code" href="structPxTriggerPair.html#a4e5f001e8736f5033c52291486c655b">00755</a> <a class="code" href="classPxFlags.html">PxTriggerPairFlags</a> flags; +<a name="l00756"></a>00756 }; +<a name="l00757"></a>00757 +<a name="l00758"></a>00758 +<a name="l00766"></a><a class="code" href="structPxConstraintInfo.html">00766</a> <span class="keyword">struct </span><a class="code" href="structPxConstraintInfo.html" title="Descriptor for a broken constraint.">PxConstraintInfo</a> +<a name="l00767"></a>00767 { +<a name="l00768"></a><a class="code" href="structPxConstraintInfo.html#073f7587ffb496c4bdc470eb34032fd2">00768</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="structPxConstraintInfo.html#073f7587ffb496c4bdc470eb34032fd2">PxConstraintInfo</a>() {} +<a name="l00769"></a><a class="code" href="structPxConstraintInfo.html#a7bd411f2d3571030b8da6eec0daf6ea">00769</a> <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> <a class="code" href="structPxConstraintInfo.html#a7bd411f2d3571030b8da6eec0daf6ea">PxConstraintInfo</a>(<a class="code" href="classPxConstraint.html" title="A plugin class for implementing constraints.">PxConstraint</a>* c, <span class="keywordtype">void</span>* extRef, <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> t) : constraint(c), externalReference(extRef), type(t) {} +<a name="l00770"></a>00770 +<a name="l00771"></a><a class="code" href="structPxConstraintInfo.html#38e7eda9e38f5318b9d4dc27fa46316b">00771</a> <a class="code" href="classPxConstraint.html" title="A plugin class for implementing constraints.">PxConstraint</a>* constraint; +<a name="l00772"></a><a class="code" href="structPxConstraintInfo.html#64fa7758b3a66b003097a9609aa67c3c">00772</a> <span class="keywordtype">void</span>* externalReference; +<a name="l00773"></a><a class="code" href="structPxConstraintInfo.html#324fadc19904fff635aa9d16da7a21f9">00773</a> <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> type; +<a name="l00774"></a>00774 }; +<a name="l00775"></a>00775 +<a name="l00776"></a>00776 +<a name="l00793"></a><a class="code" href="classPxSimulationEventCallback.html">00793</a> <span class="keyword">class </span><a class="code" href="classPxSimulationEventCallback.html" title="An interface class that the user can implement in order to receive simulation events...">PxSimulationEventCallback</a> +<a name="l00794"></a>00794 { +<a name="l00795"></a>00795 <span class="keyword">public</span>: +<a name="l00808"></a>00808 <span class="keyword">virtual</span> <span class="keywordtype">void</span> onConstraintBreak(<a class="code" href="structPxConstraintInfo.html" title="Descriptor for a broken constraint.">PxConstraintInfo</a>* constraints, <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> count) = 0; +<a name="l00809"></a>00809 +<a name="l00826"></a>00826 <span class="keyword">virtual</span> <span class="keywordtype">void</span> onWake(<a class="code" href="classPxActor.html" title="PxActor is the base class for the main simulation objects in the physics SDK.">PxActor</a>** actors, <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> count) = 0; +<a name="l00827"></a>00827 +<a name="l00845"></a>00845 <span class="keyword">virtual</span> <span class="keywordtype">void</span> onSleep(<a class="code" href="classPxActor.html" title="PxActor is the base class for the main simulation objects in the physics SDK.">PxActor</a>** actors, <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> count) = 0; +<a name="l00846"></a>00846 +<a name="l00863"></a>00863 <span class="keyword">virtual</span> <span class="keywordtype">void</span> onContact(<span class="keyword">const</span> <a class="code" href="structPxContactPairHeader.html" title="An Instance of this class is passed to PxSimulationEventCallback.onContact().">PxContactPairHeader</a>& pairHeader, <span class="keyword">const</span> <a class="code" href="structPxContactPair.html" title="Contact report pair information.">PxContactPair</a>* pairs, <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> nbPairs) = 0; +<a name="l00864"></a>00864 +<a name="l00880"></a>00880 <span class="keyword">virtual</span> <span class="keywordtype">void</span> onTrigger(<a class="code" href="structPxTriggerPair.html" title="Descriptor for a trigger pair.">PxTriggerPair</a>* pairs, <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> count) = 0; +<a name="l00881"></a>00881 +<a name="l00907"></a>00907 <span class="keyword">virtual</span> <span class="keywordtype">void</span> onAdvance(<span class="keyword">const</span> <a class="code" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects.">PxRigidBody</a>*<span class="keyword">const</span>* bodyBuffer, <span class="keyword">const</span> <a class="code" href="classPxTransform.html" title="class representing a rigid euclidean transform as a quaternion and a vector">PxTransform</a>* poseBuffer, <span class="keyword">const</span> <a class="code" href="group__foundation.html#gcce5749db3dcfb916e98c253374264ed">PxU32</a> count) = 0; +<a name="l00908"></a>00908 +<a name="l00909"></a><a class="code" href="classPxSimulationEventCallback.html#e97f7e6f3dbccaeef1e3fa1578862e88">00909</a> <span class="keyword">virtual</span> <a class="code" href="classPxSimulationEventCallback.html#e97f7e6f3dbccaeef1e3fa1578862e88">~PxSimulationEventCallback</a>() {} +<a name="l00910"></a>00910 }; +<a name="l00911"></a>00911 +<a name="l00912"></a>00912 <span class="preprocessor">#if !PX_DOXYGEN</span> +<a name="l00913"></a>00913 <span class="preprocessor"></span>} <span class="comment">// namespace physx</span> +<a name="l00914"></a>00914 <span class="preprocessor">#endif</span> +<a name="l00915"></a>00915 <span class="preprocessor"></span> +<a name="l00917"></a>00917 <span class="preprocessor">#endif</span> +</pre></div></div> + +<hr style="width: 100%; height: 2px;"><br> +Copyright © 2008-2016 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a> +</body> +</html> |