From 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 Mon Sep 17 00:00:00 2001
From: git perforce import user
Date: Tue, 25 Oct 2016 12:29:14 -0600
Subject: Initial commit: PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @
21275617
[CL 21300167]
---
.../files/PxSimulationStatistics_8h-source.html | 263 +++++++++++++++++++++
1 file changed, 263 insertions(+)
create mode 100644 PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationStatistics_8h-source.html
(limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationStatistics_8h-source.html')
diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationStatistics_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationStatistics_8h-source.html
new file mode 100644
index 00000000..71643ae3
--- /dev/null
+++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxSimulationStatistics_8h-source.html
@@ -0,0 +1,263 @@
+
+
+ PxSimulationStatistics.h
Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you +00002 // under a form of NVIDIA software license agreement provided separately to you. +00003 // +00004 // Notice +00005 // NVIDIA Corporation and its licensors retain all intellectual property and +00006 // proprietary rights in and to this software and related documentation and +00007 // any modifications thereto. Any use, reproduction, disclosure, or +00008 // distribution of this software and related documentation without an express +00009 // license agreement from NVIDIA Corporation is strictly prohibited. +00010 // +00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +00015 // +00016 // Information and code furnished is believed to be accurate and reliable. +00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +00018 // information or for any infringement of patents or other rights of third parties that may +00019 // result from its use. No license is granted by implication or otherwise under any patent +00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice. +00021 // This code supersedes and replaces all information previously supplied. +00022 // NVIDIA Corporation products are not authorized for use as critical +00023 // components in life support devices or systems without express written approval of +00024 // NVIDIA Corporation. +00025 // +00026 // Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved. +00027 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. +00028 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. +00029 +00030 +00031 #ifndef PX_SIMULATION_STATISTICS +00032 #define PX_SIMULATION_STATISTICS +00033 +00037 #include "PxPhysXConfig.h" +00038 #include "foundation/PxAssert.h" +00039 #include "geometry/PxGeometry.h" +00040 +00041 #if !PX_DOXYGEN +00042 namespace physx +00043 { +00044 #endif +00045 +00051 class PxSimulationStatistics +00052 { +00053 public: +00058 enum VolumeType +00059 { +00064 eRIGID_BODY, +00065 +00071 ePARTICLE_SYSTEM PX_DEPRECATED, +00072 +00077 eCLOTH, +00078 +00079 eVOLUME_COUNT +00080 }; +00081 +00086 enum RbPairStatsType +00087 { +00091 eDISCRETE_CONTACT_PAIRS, +00092 +00101 eCCD_PAIRS, +00102 +00108 eMODIFIED_CONTACT_PAIRS, +00109 +00115 eTRIGGER_PAIRS +00116 }; +00117 +00118 +00119 //objects: +00123 PxU32 nbActiveConstraints; +00124 +00130 PxU32 nbActiveDynamicBodies; +00131 +00138 PxU32 nbActiveKinematicBodies; +00139 +00143 PxU32 nbStaticBodies; +00144 +00150 PxU32 nbDynamicBodies; +00151 +00156 PxU32 nbShapes[PxGeometryType::eGEOMETRY_COUNT]; +00157 +00161 PxU32 nbAggregates; +00162 +00166 PxU32 nbArticulations; +00167 +00168 //solver: +00172 PxU32 nbAxisSolverConstraints; +00173 +00177 PxU32 compressedContactSize; +00178 +00182 PxU32 requiredContactConstraintMemory; +00183 +00187 PxU32 peakConstraintMemory; +00188 +00189 //broadphase: +00198 PxU32 getNbBroadPhaseAdds(VolumeType type) const +00199 { +00200 if (type != eVOLUME_COUNT) +00201 return nbBroadPhaseAdds[type]; +00202 else +00203 { +00204 PX_ASSERT(false); +00205 return 0; +00206 } +00207 } +00208 +00217 PxU32 getNbBroadPhaseRemoves(VolumeType type) const +00218 { +00219 if (type != eVOLUME_COUNT) +00220 return nbBroadPhaseRemoves[type]; +00221 else +00222 { +00223 PX_ASSERT(false); +00224 return 0; +00225 } +00226 } +00227 +00228 //collisions: +00242 PxU32 getRbPairStats(RbPairStatsType pairType, PxGeometryType::Enum g0, PxGeometryType::Enum g1) const +00243 { +00244 PX_ASSERT_WITH_MESSAGE( (pairType >= eDISCRETE_CONTACT_PAIRS) && +00245 (pairType <= eTRIGGER_PAIRS), +00246 "Invalid pairType in PxSimulationStatistics::getRbPairStats"); +00247 +00248 if (g0 >= PxGeometryType::eGEOMETRY_COUNT || g1 >= PxGeometryType::eGEOMETRY_COUNT) +00249 { +00250 PX_ASSERT(false); +00251 return 0; +00252 } +00253 +00254 PxU32 nbPairs = 0; +00255 switch(pairType) +00256 { +00257 case eDISCRETE_CONTACT_PAIRS: +00258 nbPairs = nbDiscreteContactPairs[g0][g1]; +00259 break; +00260 case eCCD_PAIRS: +00261 nbPairs = nbCCDPairs[g0][g1]; +00262 break; +00263 case eMODIFIED_CONTACT_PAIRS: +00264 nbPairs = nbModifiedContactPairs[g0][g1]; +00265 break; +00266 case eTRIGGER_PAIRS: +00267 nbPairs = nbTriggerPairs[g0][g1]; +00268 break; +00269 } +00270 return nbPairs; +00271 } +00272 +00276 PxU32 nbDiscreteContactPairsTotal; +00277 +00282 PxU32 nbDiscreteContactPairsWithCacheHits; +00283 +00287 PxU32 nbDiscreteContactPairsWithContacts; +00288 +00292 PxU32 nbNewPairs; +00293 +00297 PxU32 nbLostPairs; +00298 +00302 PxU32 nbNewTouches; +00303 +00307 PxU32 nbLostTouches; +00308 +00312 PxU32 nbPartitions; +00313 +00314 PxSimulationStatistics() : +00315 nbActiveConstraints (0), +00316 nbActiveDynamicBodies (0), +00317 nbActiveKinematicBodies (0), +00318 nbStaticBodies (0), +00319 nbDynamicBodies (0), +00320 nbAggregates (0), +00321 nbArticulations (0), +00322 nbAxisSolverConstraints (0), +00323 compressedContactSize (0), +00324 requiredContactConstraintMemory (0), +00325 peakConstraintMemory (0), +00326 nbDiscreteContactPairsTotal (0), +00327 nbDiscreteContactPairsWithCacheHits (0), +00328 nbDiscreteContactPairsWithContacts (0), +00329 nbNewPairs (0), +00330 nbLostPairs (0), +00331 nbNewTouches (0), +00332 nbLostTouches (0), +00333 nbPartitions (0), +00334 particlesGpuMeshCacheSize (0), +00335 particlesGpuMeshCacheUsed (0), +00336 particlesGpuMeshCacheHitrate (0.0f) +00337 { +00338 for(PxU32 i=0; i < eVOLUME_COUNT; i++) +00339 { +00340 nbBroadPhaseAdds[i] = 0; +00341 nbBroadPhaseRemoves[i] = 0; +00342 } +00343 +00344 for(PxU32 i=0; i < PxGeometryType::eGEOMETRY_COUNT; i++) +00345 { +00346 for(PxU32 j=0; j < PxGeometryType::eGEOMETRY_COUNT; j++) +00347 { +00348 nbDiscreteContactPairs[i][j] = 0; +00349 nbModifiedContactPairs[i][j] = 0; +00350 nbCCDPairs[i][j] = 0; +00351 nbTriggerPairs[i][j] = 0; +00352 } +00353 } +00354 +00355 for(PxU32 i=0; i < PxGeometryType::eGEOMETRY_COUNT; i++) +00356 { +00357 nbShapes[i] = 0; +00358 } +00359 } +00360 +00361 +00362 // +00363 // We advise to not access these members directly. Use the provided accessor methods instead. +00364 // +00365 //broadphase: +00366 PxU32 nbBroadPhaseAdds[eVOLUME_COUNT]; +00367 PxU32 nbBroadPhaseRemoves[eVOLUME_COUNT]; +00368 +00369 //collisions: +00370 PxU32 nbDiscreteContactPairs[PxGeometryType::eGEOMETRY_COUNT][PxGeometryType::eGEOMETRY_COUNT]; +00371 PxU32 nbCCDPairs[PxGeometryType::eGEOMETRY_COUNT][PxGeometryType::eGEOMETRY_COUNT]; +00372 PxU32 nbModifiedContactPairs[PxGeometryType::eGEOMETRY_COUNT][PxGeometryType::eGEOMETRY_COUNT]; +00373 PxU32 nbTriggerPairs[PxGeometryType::eGEOMETRY_COUNT][PxGeometryType::eGEOMETRY_COUNT]; +00374 +00375 //triangle mesh cache statistics +00376 PxU32 particlesGpuMeshCacheSize; +00377 PxU32 particlesGpuMeshCacheUsed; +00378 PxReal particlesGpuMeshCacheHitrate; +00379 }; +00380 +00381 #if !PX_DOXYGEN +00382 } // namespace physx +00383 #endif +00384 +00386 #endif +