aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/SimulationController
diff options
context:
space:
mode:
authorSheikh Dawood <[email protected]>2018-05-25 09:54:38 -0500
committerSheikh Dawood <[email protected]>2018-05-25 09:54:38 -0500
commitb99b3783cd7e3fb1bb0a07dc472b2fc000c4cdc1 (patch)
treede67d7adc7cc66d44c3e0a399d94d1db6bcebd0c /PhysX_3.4/Source/SimulationController
parentPhysX 3.4, APEX 1.4 patch release @23933511 (diff)
downloadphysx-3.4-b99b3783cd7e3fb1bb0a07dc472b2fc000c4cdc1.tar.xz
physx-3.4-b99b3783cd7e3fb1bb0a07dc472b2fc000c4cdc1.zip
PhysX 3.4, APEX 1.4 patch release @24214033v3.4.2
Diffstat (limited to 'PhysX_3.4/Source/SimulationController')
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScActorCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScArticulationCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScArticulationJointCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScBodyCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScClothCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScClothFabricCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScConstraintCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScIterators.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScMaterialCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScParticleSystemCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScPhysics.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScRigidCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScScene.h7
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScShapeCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/include/ScStaticCore.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScActorCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScActorElementPair.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScActorInteraction.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScActorPair.h42
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScActorSim.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScActorSim.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScArticulationCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScArticulationJointCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScArticulationSim.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScArticulationSim.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScBodyCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScBodyCoreKinematic.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScBodySim.cpp60
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScBodySim.h6
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScClient.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintSim.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScConstraintSim.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScContactReportBuffer.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScContactStream.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScElementSim.cpp4
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScElementSim.h4
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScElementSimInteraction.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScInteraction.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScInteraction.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScInteractionFlags.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScIterators.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScMaterialCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScMetaData.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.cpp62
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.h36
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScObjectIDTracker.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScPhysics.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScRbElementInteraction.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScRigidCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScRigidSim.cpp14
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScRigidSim.h11
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScScene.cpp46
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScShapeCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp9
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.h4
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScShapeIterator.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScShapeSim.cpp69
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScShapeSim.h6
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScSimStateData.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScSimStats.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScSimStats.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScSimulationController.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScSimulationController.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScStaticCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScStaticSim.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScStaticSim.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScTriggerPairs.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/cloth/ScClothCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/cloth/ScClothFabricCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.cpp8
-rw-r--r--PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.cpp8
-rw-r--r--PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.h2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemCore.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.cpp2
-rw-r--r--PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.h2
97 files changed, 267 insertions, 289 deletions
diff --git a/PhysX_3.4/Source/SimulationController/include/ScActorCore.h b/PhysX_3.4/Source/SimulationController/include/ScActorCore.h
index 52672e1a..38971e8f 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScActorCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScActorCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScArticulationCore.h b/PhysX_3.4/Source/SimulationController/include/ScArticulationCore.h
index a20fd810..c42cde67 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScArticulationCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScArticulationCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScArticulationJointCore.h b/PhysX_3.4/Source/SimulationController/include/ScArticulationJointCore.h
index 633a111d..f08ec930 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScArticulationJointCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScArticulationJointCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScBodyCore.h b/PhysX_3.4/Source/SimulationController/include/ScBodyCore.h
index 3c989930..8204d6a9 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScBodyCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScBodyCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScClothCore.h b/PhysX_3.4/Source/SimulationController/include/ScClothCore.h
index 962bea20..43ee0eac 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScClothCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScClothCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScClothFabricCore.h b/PhysX_3.4/Source/SimulationController/include/ScClothFabricCore.h
index 93135a30..46170c29 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScClothFabricCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScClothFabricCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScConstraintCore.h b/PhysX_3.4/Source/SimulationController/include/ScConstraintCore.h
index 7f415b1d..3ac2641d 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScConstraintCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScConstraintCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScIterators.h b/PhysX_3.4/Source/SimulationController/include/ScIterators.h
index 97115db6..fdea235e 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScIterators.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScIterators.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScMaterialCore.h b/PhysX_3.4/Source/SimulationController/include/ScMaterialCore.h
index a3f894ba..875765e6 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScMaterialCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScMaterialCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScParticleSystemCore.h b/PhysX_3.4/Source/SimulationController/include/ScParticleSystemCore.h
index 39597396..de8b62c3 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScParticleSystemCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScParticleSystemCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScPhysics.h b/PhysX_3.4/Source/SimulationController/include/ScPhysics.h
index aebf4ae5..385fc718 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScPhysics.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScPhysics.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScRigidCore.h b/PhysX_3.4/Source/SimulationController/include/ScRigidCore.h
index e324a24c..a804ea07 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScRigidCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScRigidCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScScene.h b/PhysX_3.4/Source/SimulationController/include/ScScene.h
index b4766fcd..30799b84 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScScene.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScScene.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -589,6 +589,8 @@ namespace Sc
PX_FORCE_INLINE PxU32 getFilterShaderDataSizeFast() const { return mFilterShaderDataSize; }
PX_FORCE_INLINE PxSimulationFilterShader getFilterShaderFast() const { return mFilterShader; }
PX_FORCE_INLINE PxSimulationFilterCallback* getFilterCallbackFast() const { return mFilterCallback; }
+ PX_FORCE_INLINE PxPairFilteringMode::Enum getKineKineFilteringMode() const { return mKineKineFilteringMode; }
+ PX_FORCE_INLINE PxPairFilteringMode::Enum getStaticKineFilteringMode() const { return mStaticKineFilteringMode; }
PX_FORCE_INLINE PxU32 getTimeStamp() const { return mTimeStamp; }
PX_FORCE_INLINE PxU32 getReportShapePairTimeStamp() const { return mReportShapePairTimeStamp; }
@@ -850,6 +852,9 @@ namespace Sc
PxSimulationFilterShader mFilterShader;
PxSimulationFilterCallback* mFilterCallback;
+ PxPairFilteringMode::Enum mKineKineFilteringMode;
+ PxPairFilteringMode::Enum mStaticKineFilteringMode;
+
Ps::CoalescedHashSet<BodyCore*> mSleepBodies;
Ps::CoalescedHashSet<BodyCore*> mWokeBodies;
bool mWokeBodyListValid;
diff --git a/PhysX_3.4/Source/SimulationController/include/ScShapeCore.h b/PhysX_3.4/Source/SimulationController/include/ScShapeCore.h
index d3e19ae6..682a087f 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScShapeCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScShapeCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/include/ScStaticCore.h b/PhysX_3.4/Source/SimulationController/include/ScStaticCore.h
index 3b9cdb11..f9eea5d2 100644
--- a/PhysX_3.4/Source/SimulationController/include/ScStaticCore.h
+++ b/PhysX_3.4/Source/SimulationController/include/ScStaticCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScActorCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScActorCore.cpp
index 8ab80698..eae0b0c7 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScActorCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScActorCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScActorElementPair.h b/PhysX_3.4/Source/SimulationController/src/ScActorElementPair.h
index a8a36b5b..aacf7da0 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScActorElementPair.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScActorElementPair.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScActorInteraction.h b/PhysX_3.4/Source/SimulationController/src/ScActorInteraction.h
index f37b1307..090a4188 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScActorInteraction.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScActorInteraction.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScActorPair.h b/PhysX_3.4/Source/SimulationController/src/ScActorPair.h
index 5491f302..fa0c7835 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScActorPair.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScActorPair.h
@@ -23,11 +23,10 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
-
#ifndef PX_COLLISION_ACTORPAIR
#define PX_COLLISION_ACTORPAIR
@@ -39,20 +38,19 @@ namespace physx
{
namespace Sc
{
-
class ActorPairContactReportData
{
public:
ActorPairContactReportData() :
- mStrmResetStamp (0xffffffff),
- mActorAID (0xffffffff),
- mActorBID (0xffffffff),
- mPxActorA (NULL),
- mPxActorB (NULL),
- mActorAClientID (0xff),
- mActorBClientID (0xff),
- mActorAClientBehavior (0),
- mActorBClientBehavior (0)
+ mStrmResetStamp (0xffffffff),
+ mActorAID (0xffffffff),
+ mActorBID (0xffffffff),
+ mPxActorA (NULL),
+ mPxActorB (NULL),
+ mActorAClientID (0xff),
+ mActorBClientID (0xff),
+ mActorAClientBehavior (0),
+ mActorBClientBehavior (0)
{}
ContactStreamManager mContactStreamManager;
@@ -67,7 +65,6 @@ namespace Sc
PxU8 mActorBClientBehavior;
};
-
/**
\brief Class shared by all shape interactions for a pair of actors.
@@ -76,11 +73,10 @@ namespace Sc
class ActorPair
{
public:
-
enum ActorPairFlags
{
- eIS_REPORT_PAIR = (1<<0),
- eNEXT_FREE = (1<<1)
+ eIS_REPORT_PAIR = (1<<0),
+ eNEXT_FREE = (1<<1)
};
PX_FORCE_INLINE ActorPair() : mInternalFlags(0), mTouchCount(0), mRefCount(0) {}
@@ -99,7 +95,6 @@ namespace Sc
private:
ActorPair& operator=(const ActorPair&);
-
protected:
PxU16 mInternalFlags;
PxU16 mTouchCount;
@@ -107,7 +102,6 @@ namespace Sc
PxU16 mPad; // instances of this class are stored in a pool which needs an item size of at least size_t
};
-
/**
\brief Class shared by all shape interactions for a pair of actors if contact reports are requested.
@@ -166,7 +160,6 @@ namespace Sc
} // namespace Sc
-
PX_FORCE_INLINE Sc::ActorPairReport::ActorPairReport(RigidSim& actor0, RigidSim& actor1) : ActorPair(),
mActorA (actor0),
mActorB (actor1),
@@ -176,19 +169,16 @@ mReportData (NULL)
mInternalFlags = ActorPair::eIS_REPORT_PAIR;
}
-
PX_FORCE_INLINE Sc::ActorPairReport::~ActorPairReport()
{
PX_ASSERT(mReportData == NULL);
}
-
PX_FORCE_INLINE bool Sc::ActorPairReport::streamResetNeeded(PxU32 cmpStamp) const
{
return (cmpStamp != mReportData->mStrmResetStamp);
}
-
PX_INLINE bool Sc::ActorPairReport::streamResetStamp(PxU32 cmpStamp)
{
PX_ASSERT(mReportData);
@@ -197,7 +187,6 @@ PX_INLINE bool Sc::ActorPairReport::streamResetStamp(PxU32 cmpStamp)
return ret;
}
-
PX_INLINE Sc::ContactStreamManager& Sc::ActorPairReport::createContactStreamManager(NPhaseCore& npCore)
{
// Lazy create report data
@@ -207,7 +196,6 @@ PX_INLINE Sc::ContactStreamManager& Sc::ActorPairReport::createContactStreamMana
return mReportData->mContactStreamManager;
}
-
PX_FORCE_INLINE void Sc::ActorPairReport::createContactReportData(NPhaseCore& npCore)
{
PX_ASSERT(!mReportData);
@@ -216,8 +204,8 @@ PX_FORCE_INLINE void Sc::ActorPairReport::createContactReportData(NPhaseCore& np
if(reportData)
{
- reportData->mActorAID = mActorA.getID();
- reportData->mActorBID = mActorB.getID();
+ reportData->mActorAID = mActorA.getRigidID();
+ reportData->mActorBID = mActorB.getRigidID();
reportData->mPxActorA = mActorA.getPxActor();
reportData->mPxActorB = mActorB.getPxActor();
@@ -233,7 +221,6 @@ PX_FORCE_INLINE void Sc::ActorPairReport::createContactReportData(NPhaseCore& np
}
}
-
PX_FORCE_INLINE void Sc::ActorPairReport::releaseContactReportData(NPhaseCore& npCore)
{
// Can't take the NPhaseCore (scene) reference from the actors since they're already gone on scene release
@@ -245,7 +232,6 @@ PX_FORCE_INLINE void Sc::ActorPairReport::releaseContactReportData(NPhaseCore& n
}
}
-
}
#endif
diff --git a/PhysX_3.4/Source/SimulationController/src/ScActorSim.cpp b/PhysX_3.4/Source/SimulationController/src/ScActorSim.cpp
index f4534e8f..f5f4d3fb 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScActorSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScActorSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScActorSim.h b/PhysX_3.4/Source/SimulationController/src/ScActorSim.h
index db30aba9..7739886c 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScActorSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScActorSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScArticulationCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScArticulationCore.cpp
index 707595c7..21cd643d 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScArticulationCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScArticulationCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScArticulationJointCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScArticulationJointCore.cpp
index 3688a902..0042a60a 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScArticulationJointCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScArticulationJointCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.cpp b/PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.cpp
index a53cf5d3..eae98540 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.h b/PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.h
index d93a0cd1..ff7ec8a3 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScArticulationJointSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScArticulationSim.cpp b/PhysX_3.4/Source/SimulationController/src/ScArticulationSim.cpp
index 62bb9dfc..6aae8bdc 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScArticulationSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScArticulationSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScArticulationSim.h b/PhysX_3.4/Source/SimulationController/src/ScArticulationSim.h
index d36bb851..156d2b32 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScArticulationSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScArticulationSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScBodyCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScBodyCore.cpp
index 7409eed0..0f728816 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScBodyCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScBodyCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScBodyCoreKinematic.cpp b/PhysX_3.4/Source/SimulationController/src/ScBodyCoreKinematic.cpp
index f5b059e5..79d2226d 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScBodyCoreKinematic.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScBodyCoreKinematic.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScBodySim.cpp b/PhysX_3.4/Source/SimulationController/src/ScBodySim.cpp
index 579c5438..a68719f1 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScBodySim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScBodySim.cpp
@@ -23,11 +23,10 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
-
#include "ScBodySim.h"
#include "ScScene.h"
#include "ScConstraintSim.h"
@@ -49,6 +48,7 @@
using namespace physx;
using namespace physx::Dy;
+using namespace Sc;
#define PX_FREEZE_INTERVAL 1.5f
#define PX_FREE_EXIT_THRESHOLD 4.f
@@ -121,7 +121,6 @@ Sc::BodySim::BodySim(Scene& scene, BodyCore& core) :
}
}
-
//If a user add force or torque before the body is inserted into the scene,
//this logic will make sure pre solver stage apply external force/torque to the body
if(hasPendingForce && !isArticulationLink())
@@ -164,7 +163,6 @@ Sc::BodySim::BodySim(Scene& scene, BodyCore& core) :
}
}
-
Sc::BodySim::~BodySim()
{
Sc::Scene &scene = getScene();
@@ -199,14 +197,12 @@ Sc::BodySim::~BodySim()
mCore.setSim(NULL);
}
-
//--------------------------------------------------------------
//
// Actor implementation
//
//--------------------------------------------------------------
-
void Sc::BodySim::onActivate()
{
PX_ASSERT((!isKinematic()) || notInScene() || readInternalFlag(BF_KINEMATIC_MOVED)); // kinematics should only get activated when a target is set.
@@ -264,7 +260,6 @@ void Sc::BodySim::updateContactDistance(PxReal* contactDistance, const PxReal dt
}
}
-
void Sc::BodySim::onDeactivate()
{
PX_ASSERT((!isKinematic()) || notInScene() || !readInternalFlag(BF_KINEMATIC_MOVED)); // kinematics should only get deactivated when no target is set.
@@ -291,17 +286,14 @@ void Sc::BodySim::onDeactivate()
getScene().removeFromPosePreviewList(*this);
}
destroySqBounds();
-
}
-
//--------------------------------------------------------------
//
// BodyCore interface implementation
//
//--------------------------------------------------------------
-
void Sc::BodySim::notifyAddSpatialAcceleration()
{
//The dirty flag is stored separately in the BodySim so that we query the dirty flag before going to
@@ -319,7 +311,6 @@ void Sc::BodySim::notifyClearSpatialAcceleration()
getScene().getVelocityModifyMap().growAndSet(getNodeIndex().index());
}
-
void Sc::BodySim::notifyAddSpatialVelocity()
{
//The dirty flag is stored separately in the BodySim so that we query the dirty flag before going to
@@ -336,7 +327,6 @@ void Sc::BodySim::notifyClearSpatialVelocity()
getScene().getVelocityModifyMap().growAndSet(getNodeIndex().index());
}
-
void Sc::BodySim::postActorFlagChange(PxU32 oldFlags, PxU32 newFlags)
{
// PT: don't convert to bool if not needed
@@ -354,7 +344,6 @@ void Sc::BodySim::postActorFlagChange(PxU32 oldFlags, PxU32 newFlags)
}
}
-
void Sc::BodySim::postBody2WorldChange()
{
mLLBody.saveLastCCDTransform();
@@ -367,7 +356,6 @@ void Sc::BodySim::postBody2WorldChange()
notifyShapesOfTransformChange();
}
-
void Sc::BodySim::postSetWakeCounter(PxReal t, bool forceWakeUp)
{
if ((t > 0.0f) || forceWakeUp)
@@ -380,7 +368,6 @@ void Sc::BodySim::postSetWakeCounter(PxReal t, bool forceWakeUp)
}
}
-
void Sc::BodySim::postSetKinematicTarget()
{
PX_ASSERT(getBodyCore().getSimStateData(true));
@@ -390,6 +377,14 @@ void Sc::BodySim::postSetKinematicTarget()
raiseInternalFlag(BF_KINEMATIC_MOVED); // Important to set this here already because trigger interactions need to have this information when being activated.
}
+static void updateBPGroup(ElementSim* current)
+{
+ while(current)
+ {
+ static_cast<ShapeSim*>(current)->updateBPGroup();
+ current = current->mNextInActor;
+ }
+}
void Sc::BodySim::postSwitchToKinematic()
{
@@ -402,8 +397,9 @@ void Sc::BodySim::postSwitchToKinematic()
setActorsInteractionsDirty(InteractionDirtyFlag::eBODY_KINEMATIC, NULL, InteractionFlag::eFILTERABLE);
getScene().getSimpleIslandManager()->setKinematic(mNodeIndex);
-}
+ updateBPGroup(getElements_());
+}
void Sc::BodySim::postSwitchToDynamic()
{
@@ -411,7 +407,7 @@ void Sc::BodySim::postSwitchToDynamic()
setForcesToDefaults(true);
- if (getConstraintGroup())
+ if(getConstraintGroup())
getConstraintGroup()->markForProjectionTreeRebuild(mScene.getProjectionManager());
// - interactions need to get refiltered to make sure that former kinematic-kinematic and kinematic-static pairs get enabled
@@ -423,10 +419,12 @@ void Sc::BodySim::postSwitchToDynamic()
clearInternalFlag(BF_KINEMATIC_MOVE_FLAGS);
- if (isActive())
+ if(isActive())
mScene.swapInActiveBodyList(*this);
-}
+ //
+ updateBPGroup(getElements_());
+}
void Sc::BodySim::postPosePreviewChange(const PxU32 posePreviewFlag)
{
@@ -441,14 +439,12 @@ void Sc::BodySim::postPosePreviewChange(const PxU32 posePreviewFlag)
PX_ASSERT(!getScene().isInPosePreviewList(*this));
}
-
//--------------------------------------------------------------
//
// Sleeping
//
//--------------------------------------------------------------
-
void Sc::BodySim::setActive(bool active, PxU32 infoFlag)
{
PX_ASSERT(!active || isDynamicRigid()); // Currently there should be no need to activate an actor that does not take part in island generation
@@ -489,7 +485,6 @@ void Sc::BodySim::setActive(bool active, PxU32 infoFlag)
}
}
-
void Sc::BodySim::activateInteractions(PxU32 /*infoFlag*/)
{
const PxU32 nbInteractions = getActorInteractionCount();
@@ -511,7 +506,6 @@ void Sc::BodySim::activateInteractions(PxU32 /*infoFlag*/)
}
}
-
void Sc::BodySim::deactivateInteractions(PxU32 infoFlag)
{
const PxU32 nbInteractions = getActorInteractionCount();
@@ -533,14 +527,12 @@ void Sc::BodySim::deactivateInteractions(PxU32 infoFlag)
}
}
-
void Sc::BodySim::wakeUp()
{
setActive(true);
notifyWakeUp(true);
}
-
void Sc::BodySim::putToSleep()
{
PX_ASSERT(getBodyCore().getWakeCounter() == 0.0f);
@@ -563,7 +555,6 @@ void Sc::BodySim::putToSleep()
// We can move this code when we look into the open task of making buffered re-insertion more consistent with the non-buffered case.
}
-
void Sc::BodySim::internalWakeUp(PxReal wakeCounterValue)
{
if(mArticulation)
@@ -572,14 +563,12 @@ void Sc::BodySim::internalWakeUp(PxReal wakeCounterValue)
internalWakeUpBase(wakeCounterValue);
}
-
void Sc::BodySim::internalWakeUpArticulationLink(PxReal wakeCounterValue)
{
PX_ASSERT(mArticulation);
internalWakeUpBase(wakeCounterValue);
}
-
void Sc::BodySim::internalWakeUpBase(PxReal wakeCounterValue) //this one can only increase the wake counter, not decrease it, so it can't be used to put things to sleep!
{
if ((!isKinematic()) && (getBodyCore().getWakeCounter() < wakeCounterValue))
@@ -595,26 +584,22 @@ void Sc::BodySim::internalWakeUpBase(PxReal wakeCounterValue) //this one can onl
}
}
-
void Sc::BodySim::notifyReadyForSleeping()
{
if(mArticulation == NULL)
getScene().getSimpleIslandManager()->deactivateNode(mNodeIndex);
}
-
void Sc::BodySim::notifyNotReadyForSleeping()
{
getScene().getSimpleIslandManager()->activateNode(mNodeIndex);
}
-
void Sc::BodySim::notifyWakeUp(bool /*wakeUpInIslandGen*/)
{
getScene().getSimpleIslandManager()->activateNode(mNodeIndex);
}
-
void Sc::BodySim::notifyPutToSleep()
{
getScene().getSimpleIslandManager()->putNodeToSleep(mNodeIndex);
@@ -692,7 +677,6 @@ PxReal Sc::BodySim::updateWakeCounter(PxReal dt, PxReal energyThreshold, const C
return wc;
}
-
//--------------------------------------------------------------
//
// Kinematics
@@ -714,7 +698,6 @@ PX_FORCE_INLINE void Sc::BodySim::initKinematicStateBase(BodyCore&, bool asPartO
getConstraintGroup()->markForProjectionTreeRebuild(getScene().getProjectionManager());
}
-
void Sc::BodySim::calculateKinematicVelocity(PxReal oneOverDt)
{
PX_ASSERT(isKinematic());
@@ -802,8 +785,6 @@ void Sc::BodySim::updateKinematicPose()
}
}
-
-
bool Sc::BodySim::deactivateKinematic()
{
BodyCore& core = getBodyCore();
@@ -829,15 +810,12 @@ bool Sc::BodySim::deactivateKinematic()
return false;
}
-
-
//--------------------------------------------------------------
//
// Miscellaneous
//
//--------------------------------------------------------------
-
void Sc::BodySim::updateForces(PxReal dt, PxsRigidBody** updatedBodySims, PxU32* updatedBodyNodeIndices, PxU32& index, Cm::SpatialVector* acceleration, bool simUsesAdaptiveForce)
{
PxVec3 linAcc(0.0f), angAcc(0.0f);
@@ -894,8 +872,6 @@ void Sc::BodySim::updateForces(PxReal dt, PxsRigidBody** updatedBodySims, PxU32*
setForcesToDefaults(readVelocityModFlag(VMF_ACC_DIRTY));
}
-
-
bool Sc::BodySim::isConnectedTo(const ActorSim& other, bool& collisionDisabled) const
{
const Sc::ActorSim* actorToMatch;
@@ -933,7 +909,6 @@ bool Sc::BodySim::isConnectedTo(const ActorSim& other, bool& collisionDisabled)
return false;
}
-
void Sc::BodySim::onConstraintDetach()
{
PX_ASSERT(readInternalFlag(BF_HAS_CONSTRAINTS));
@@ -952,7 +927,6 @@ void Sc::BodySim::onConstraintDetach()
clearInternalFlag(BF_HAS_CONSTRAINTS); // There are no other constraint interactions left
}
-
void Sc::BodySim::setArticulation(Sc::ArticulationSim* a, PxReal wakeCounter, bool asleep, PxU32 bodyIndex)
{
mArticulation = a;
diff --git a/PhysX_3.4/Source/SimulationController/src/ScBodySim.h b/PhysX_3.4/Source/SimulationController/src/ScBodySim.h
index 943cf3a0..a032a771 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScBodySim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScBodySim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -45,6 +45,10 @@
namespace physx
{
+namespace Bp
+{
+ class BoundsArray;
+}
class PxsTransformCache;
class PxsSimulationController;
namespace Sc
diff --git a/PhysX_3.4/Source/SimulationController/src/ScClient.h b/PhysX_3.4/Source/SimulationController/src/ScClient.h
index 5da63817..9ead6569 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScClient.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScClient.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScConstraintCore.cpp
index c618e6f2..d491fd8c 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.cpp b/PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.cpp
index b2f8d64f..0e6fcd27 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.h b/PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.h
index 4836c559..91c1b818 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintGroupNode.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.cpp b/PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.cpp
index 5087749b..9d800c4e 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.h b/PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.h
index 20b966d2..3c93e679 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintInteraction.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.cpp b/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.cpp
index 01802fe4..0541a6cf 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.h b/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.h
index b5ae67d4..00fa0b98 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionManager.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.cpp b/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.cpp
index 306f5deb..30a55e1d 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.h b/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.h
index 0e805f7a..eb2c3eca 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintProjectionTree.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintSim.cpp b/PhysX_3.4/Source/SimulationController/src/ScConstraintSim.cpp
index f55954a9..d4add601 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScConstraintSim.h b/PhysX_3.4/Source/SimulationController/src/ScConstraintSim.h
index 98e20256..24a49993 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScConstraintSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScConstraintSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScContactReportBuffer.h b/PhysX_3.4/Source/SimulationController/src/ScContactReportBuffer.h
index 251e5926..ecce4baf 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScContactReportBuffer.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScContactReportBuffer.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScContactStream.h b/PhysX_3.4/Source/SimulationController/src/ScContactStream.h
index 2481b454..2d753c0e 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScContactStream.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScContactStream.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.cpp b/PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.cpp
index d669aabc..e55be6cf 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.h b/PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.h
index 743de966..397a4f24 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScElementInteractionMarker.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScElementSim.cpp b/PhysX_3.4/Source/SimulationController/src/ScElementSim.cpp
index 9ff82819..b865ac6b 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScElementSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScElementSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -127,7 +127,7 @@ PX_COMPILE_TIME_ASSERT(PxU32(PxSimulationStatistics::eCLOTH) == PxU32(Sc::Elemen
PX_COMPILE_TIME_ASSERT(PxU32(PxSimulationStatistics::ePARTICLE_SYSTEM) == PxU32(Sc::ElementType::ePARTICLE_PACKET));
#endif
-void Sc::ElementSim::addToAABBMgr(PxReal contactDistance, PxU32 group, bool isTrigger)
+void Sc::ElementSim::addToAABBMgr(PxReal contactDistance, Bp::FilterGroup::Enum group, Ps::IntBool isTrigger)
{
Sc::Scene& scene = getScene();
bool success = scene.getAABBManager()->addBounds(mElementID, contactDistance, group, this, mActor.getActorCore().getAggregateID(), isTrigger ? PxU8(Sc::ElementType::eTRIGGER) : PxU8(mType) );
diff --git a/PhysX_3.4/Source/SimulationController/src/ScElementSim.h b/PhysX_3.4/Source/SimulationController/src/ScElementSim.h
index aace946b..d82bd9cb 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScElementSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScElementSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -115,7 +115,7 @@ namespace Sc
PX_FORCE_INLINE PxU32 getElementID() const { return mElementID; }
PX_FORCE_INLINE bool isInBroadPhase() const { return mInBroadPhase; }
- void addToAABBMgr(PxReal contactDistance, PxU32 group, bool isTrigger);
+ void addToAABBMgr(PxReal contactDistance, Bp::FilterGroup::Enum group, Ps::IntBool isTrigger);
void removeFromAABBMgr();
//---------- Filtering ----------
diff --git a/PhysX_3.4/Source/SimulationController/src/ScElementSimInteraction.h b/PhysX_3.4/Source/SimulationController/src/ScElementSimInteraction.h
index daa95c0f..fae9f063 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScElementSimInteraction.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScElementSimInteraction.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScInteraction.cpp b/PhysX_3.4/Source/SimulationController/src/ScInteraction.cpp
index fffc1bcc..17d8fdb5 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScInteraction.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScInteraction.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScInteraction.h b/PhysX_3.4/Source/SimulationController/src/ScInteraction.h
index 90cd83c4..82d4e6f0 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScInteraction.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScInteraction.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScInteractionFlags.h b/PhysX_3.4/Source/SimulationController/src/ScInteractionFlags.h
index d15a05a8..e0bfb7bc 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScInteractionFlags.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScInteractionFlags.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScIterators.cpp b/PhysX_3.4/Source/SimulationController/src/ScIterators.cpp
index 4ed8195f..3f6e1d04 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScIterators.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScIterators.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScMaterialCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScMaterialCore.cpp
index 63ebeb2a..ef604212 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScMaterialCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScMaterialCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScMetaData.cpp b/PhysX_3.4/Source/SimulationController/src/ScMetaData.cpp
index b484a6f6..32c2649f 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScMetaData.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScMetaData.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.cpp
index 24c6da5e..c3472b39 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -170,16 +170,10 @@ PxU32 Sc::NPhaseCore::getDefaultContactReportStreamBufferSize() const
return mContactReportBuffer.getDefaultBufferSize();
}
-// PT: function used only once, so safe to force inline
Sc::ElementSimInteraction* Sc::NPhaseCore::findInteraction(ElementSim* _element0, ElementSim* _element1)
{
- if (_element0 > _element1)
- Ps::swap(_element0, _element1);
-
const Ps::HashMap<ElementSimKey, ElementSimInteraction*>::Entry* pair = mElementSimMap.find(ElementSimKey(_element0, _element1));
- if (pair)
- return pair->second;
- return NULL;
+ return pair ? pair->second : NULL;
}
PxFilterInfo Sc::NPhaseCore::onOverlapFilter(ElementSim* volume0, ElementSim* volume1)
@@ -480,23 +474,12 @@ void Sc::NPhaseCore::onOverlapCreated(const Bp::AABBOverlap* PX_RESTRICT pairs,
void Sc::NPhaseCore::registerInteraction(ElementSimInteraction* interaction)
{
- ElementSim* sim0 = &interaction->getElement0();
- ElementSim* sim1 = &interaction->getElement1();
-
- if (sim0 > sim1)
- Ps::swap(sim0, sim1);
-
- mElementSimMap.insert(ElementSimKey(sim0, sim1), interaction);
+ mElementSimMap.insert(ElementSimKey(&interaction->getElement0(), &interaction->getElement1()), interaction);
}
void Sc::NPhaseCore::unregisterInteraction(ElementSimInteraction* interaction)
{
- ElementSim* sim0 = &interaction->getElement0();
- ElementSim* sim1 = &interaction->getElement1();
- if (sim0 > sim1)
- Ps::swap(sim0, sim1);
-
- mElementSimMap.erase(ElementSimKey(sim0, sim1));
+ mElementSimMap.erase(ElementSimKey(&interaction->getElement0(), &interaction->getElement1()));
}
ElementSimInteraction* Sc::NPhaseCore::onOverlapRemovedStage1(ElementSim* volume0, ElementSim* volume1)
@@ -797,7 +780,6 @@ Sc::ShapeInteraction* Sc::NPhaseCore::createShapeInteraction(ShapeSim& s0, Shape
If bodyA is in an earlier BP group than bodyB, swap
*/
{
- // PT: 'getRbSim()' is not inlined so call it only once here.
Sc::RigidSim& rs0 = s0.getRbSim();
Sc::RigidSim& rs1 = s1.getRbSim();
@@ -806,13 +788,12 @@ Sc::ShapeInteraction* Sc::NPhaseCore::createShapeInteraction(ShapeSim& s0, Shape
if( actorType0 == PxActorType::eRIGID_STATIC
|| (actorType0 == PxActorType::eRIGID_DYNAMIC && actorType1 == PxActorType::eARTICULATION_LINK)
|| ((actorType0 == PxActorType::eRIGID_DYNAMIC && actorType1 == PxActorType::eRIGID_DYNAMIC) && s0.getBodySim()->isKinematic())
- || (actorType0 == actorType1 && rs0.getBroadphaseGroupId() < rs1.getBroadphaseGroupId()))
+ || (actorType0 == actorType1 && rs0.getRigidID() < rs1.getRigidID()))
Ps::swap(_s0, _s1);
}
- ActorPair* aPair = NULL;
ShapeInteraction* si = shapeInteraction ? shapeInteraction : mShapeInteractionPool.allocate();
- PX_PLACEMENT_NEW(si, ShapeInteraction)(*_s0, *_s1, aPair, pairFlags, contactManager);
+ PX_PLACEMENT_NEW(si, ShapeInteraction)(*_s0, *_s1, pairFlags, contactManager);
PX_ASSERT(si->mReportPairIndex == INVALID_REPORT_PAIR_ID);
@@ -1311,7 +1292,18 @@ PxFilterInfo Sc::NPhaseCore::filterRbCollisionPair(const ShapeSim& s0, const Sha
const bool kinematicPair = isS0Kinematic | isS1Kinematic;
if(kinematicPair)
{
- const PxSceneFlags sceneFlags = mOwnerScene.getPublicFlags();
+ PxSceneFlags sceneFlags = mOwnerScene.getPublicFlags();
+ const PxPairFilteringMode::Enum kineKineFilteringMode = mOwnerScene.getKineKineFilteringMode();
+ if(kineKineFilteringMode==PxPairFilteringMode::eKEEP)
+ sceneFlags |= PxSceneFlag::eENABLE_KINEMATIC_PAIRS;
+ else if(kineKineFilteringMode==PxPairFilteringMode::eSUPPRESS)
+ sceneFlags &= ~PxSceneFlag::eENABLE_KINEMATIC_PAIRS;
+
+ const PxPairFilteringMode::Enum staticKineFilteringMode = mOwnerScene.getStaticKineFilteringMode();
+ if(staticKineFilteringMode==PxPairFilteringMode::eKEEP)
+ sceneFlags |= PxSceneFlag::eENABLE_KINEMATIC_STATIC_PAIRS;
+ else if(staticKineFilteringMode==PxPairFilteringMode::eSUPPRESS)
+ sceneFlags &= ~PxSceneFlag::eENABLE_KINEMATIC_STATIC_PAIRS;
// ...then ignore kinematic vs. static pairs
if(!(sceneFlags & PxSceneFlag::eENABLE_KINEMATIC_STATIC_PAIRS))
@@ -1406,11 +1398,11 @@ Sc::ActorPair* Sc::NPhaseCore::findActorPair(ShapeSim* s0, ShapeSim* s1, Ps::Int
RigidSim* aLess = &s0->getRbSim();
RigidSim* aMore = &s1->getRbSim();
- if (aLess->getID() > aMore->getID())
+ if (aLess->getRigidID() > aMore->getRigidID())
Ps::swap(aLess, aMore);
- key.mSim0 = aLess->getID();
- key.mSim1 = aMore->getID();
+ key.mSim0 = aLess->getRigidID();
+ key.mSim1 = aMore->getRigidID();
Sc::ActorPair*& actorPair = mActorPairMap[key];
@@ -2007,12 +1999,6 @@ void Sc::NPhaseCore::removeFromDirtyInteractionList(Interaction* pair)
mDirtyInteractions.erase(pair);
}
-void Sc::NPhaseCore::reserveSpaceInNphaseCore(const PxU32 nbContactManagers)
-{
- PX_UNUSED(nbContactManagers);
-}
-
-
void Sc::NPhaseCore::updateDirtyInteractions(PxsContactManagerOutputIterator& outputs, bool useAdaptiveForce)
{
// The sleeping SIs will be updated on activation
@@ -2159,11 +2145,11 @@ void Sc::NPhaseCore::lostTouchReports(ShapeInteraction* si, PxU32 flags, PxU32 c
BodyPairKey pair;
- if (sim0->getID() > sim1->getID())
+ if (sim0->getRigidID() > sim1->getRigidID())
Ps::swap(sim0, sim1);
- pair.mSim0 = sim0->getID();
- pair.mSim1 = sim1->getID();
+ pair.mSim0 = sim0->getRigidID();
+ pair.mSim1 = sim1->getRigidID();
mActorPairMap.erase(pair);
diff --git a/PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.h b/PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.h
index 1a9f9eec..1d506d50 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScNPhaseCore.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -46,10 +46,8 @@
#include "ScContactReportBuffer.h"
#include "PsHash.h"
-
namespace physx
{
-
namespace Bp
{
struct AABBOverlap;
@@ -94,7 +92,6 @@ namespace Sc
class RigidSim;
-
struct PairReleaseFlag
{
enum Enum
@@ -111,28 +108,22 @@ namespace Sc
The broadphase inserts shape pairs into the NPhaseCore, which are then processed into contact point streams.
Pairs can then be processed into AxisConstraints by the GroupSolveCore.
-
*/
-
-
-
struct BodyPairKey
{
PxU32 mSim0;
PxU32 mSim1;
- bool operator == (const BodyPairKey& pair) const { return mSim0 == pair.mSim0 && mSim1 == pair.mSim1; }
+ PX_FORCE_INLINE bool operator == (const BodyPairKey& pair) const { return mSim0 == pair.mSim0 && mSim1 == pair.mSim1; }
};
-
-
PX_INLINE PxU32 hash(const BodyPairKey& key)
{
- PxU32 add0 = key.mSim0;
- PxU32 add1 = key.mSim1;
+ const PxU32 add0 = key.mSim0;
+ const PxU32 add1 = key.mSim1;
- PxU32 base = PxU32((add0 & 0xFFFF) | (add1 << 16));
+ const PxU32 base = PxU32((add0 & 0xFFFF) | (add1 << 16));
return physx::shdfnd::hash(base);
}
@@ -141,11 +132,18 @@ namespace Sc
{
ElementSim* mSim0, *mSim1;
- ElementSimKey(ElementSim* sim0 = NULL, ElementSim* sim1 = NULL) : mSim0(sim0), mSim1(sim1)
+ ElementSimKey() : mSim0(NULL), mSim1(NULL)
{}
- bool operator == (const ElementSimKey& pair) const { return mSim0 == pair.mSim0 && mSim1 == pair.mSim1; }
+ ElementSimKey(ElementSim* sim0, ElementSim* sim1)
+ {
+ if(sim0 > sim1)
+ Ps::swap(sim0, sim1);
+ mSim0 = sim0;
+ mSim1 = sim1;
+ }
+ PX_FORCE_INLINE bool operator == (const ElementSimKey& pair) const { return mSim0 == pair.mSim0 && mSim1 == pair.mSim1; }
};
PX_INLINE PxU32 hash(const ElementSimKey& key)
@@ -157,12 +155,11 @@ namespace Sc
add0 = add0 >> 2;
add1 = add1 >> 2;
- PxU32 base = PxU32((add0 & 0xFFFF) | (add1 << 16));
+ const PxU32 base = PxU32((add0 & 0xFFFF) | (add1 << 16));
return physx::shdfnd::hash(base);
}
-
class NPhaseCore : public Ps::UserAllocated
{
PX_NOCOPY(NPhaseCore)
@@ -199,9 +196,6 @@ namespace Sc
void removeFromDirtyInteractionList(Interaction* interaction);
void updateDirtyInteractions(PxsContactManagerOutputIterator& outputs, bool useAdaptiveForce);
- void reserveSpaceInNphaseCore(const PxU32 nbContactManagers);
-
-
/*
Description: Perform trigger overlap tests.
*/
diff --git a/PhysX_3.4/Source/SimulationController/src/ScObjectIDTracker.h b/PhysX_3.4/Source/SimulationController/src/ScObjectIDTracker.h
index cb703db7..16b1ea74 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScObjectIDTracker.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScObjectIDTracker.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScPhysics.cpp b/PhysX_3.4/Source/SimulationController/src/ScPhysics.cpp
index 8f273fe8..62a7edee 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScPhysics.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScPhysics.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScRbElementInteraction.h b/PhysX_3.4/Source/SimulationController/src/ScRbElementInteraction.h
index cae25488..e1790d0b 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScRbElementInteraction.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScRbElementInteraction.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScRigidCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScRigidCore.cpp
index 824f2ce9..3c375dec 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScRigidCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScRigidCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScRigidSim.cpp b/PhysX_3.4/Source/SimulationController/src/ScRigidSim.cpp
index 573f7bb1..46fcdb21 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScRigidSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScRigidSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -53,13 +53,7 @@ using namespace physx;
Sc::RigidSim::RigidSim(Scene& scene, RigidCore& core) :
ActorSim(scene, core)
{
- mRigidId = scene.getRigidIDTracker().createID();
-
-#if PX_CHECKED
-#if PX_USE_16_BIT_HANDLES
- PX_CHECK_MSG(getBroadphaseGroupId() < BP_INVALID_BP_HANDLE, "The total of actors in the scene plus the number of adds cannot exceed 65535 between simulate()/fetchResult() calls. The sdk will can now proceed with unexpected outcomes. \n");
-#endif
-#endif
+ mRigidId = scene.getRigidIDTracker().createID();
}
Sc::RigidSim::~RigidSim()
@@ -110,7 +104,3 @@ Sc::ShapeSim& Sc::RigidSim::getSimForShape(Sc::ShapeCore& core) const
return *reinterpret_cast<Sc::ShapeSim*>(1);
}
-PxActor* Sc::RigidSim::getPxActor() const
-{
- return getRigidCore().getPxActor();
-}
diff --git a/PhysX_3.4/Source/SimulationController/src/ScRigidSim.h b/PhysX_3.4/Source/SimulationController/src/ScRigidSim.h
index 992e3f22..d6e91185 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScRigidSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScRigidSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -52,18 +52,15 @@ namespace Sc
RigidSim(Scene&, RigidCore&);
virtual ~RigidSim();
- PX_FORCE_INLINE RigidCore& getRigidCore() const { return static_cast<RigidCore&>(mCore); }
+ PX_FORCE_INLINE RigidCore& getRigidCore() const { return static_cast<RigidCore&>(mCore); }
- PX_FORCE_INLINE PxU32 getID() const { return mRigidId; }
-
- PX_FORCE_INLINE PxU32 getBroadphaseGroupId() const { return (getActorType()!=PxActorType::eRIGID_STATIC ? mRigidId + PxU32(Bp::FilterGroup::eDYNAMICS_BASE) : PxU32(Bp::FilterGroup::eSTATICS));}
+ PX_FORCE_INLINE PxU32 getRigidID() const { return mRigidId; }
void notifyShapesOfTransformChange();
Sc::ShapeSim& getSimForShape(Sc::ShapeCore& shape) const;
-
- PxActor* getPxActor() const;
+ PxActor* getPxActor() const { return getRigidCore().getPxActor(); }
private:
PxU32 mRigidId;
};
diff --git a/PhysX_3.4/Source/SimulationController/src/ScScene.cpp b/PhysX_3.4/Source/SimulationController/src/ScScene.cpp
index b19852e7..1cc84a0d 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScScene.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScScene.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -582,6 +582,8 @@ Sc::Scene::Scene(const PxSceneDesc& desc, PxU64 contextID) :
mMemBlock256Pool (PX_DEBUG_EXP("PxsContext ConstraintBlock256Pool")),
mMemBlock384Pool (PX_DEBUG_EXP("PxsContext ConstraintBlock384Pool")),
mNPhaseCore (NULL),
+ mKineKineFilteringMode (desc.kineKineFilteringMode),
+ mStaticKineFilteringMode (desc.staticKineFilteringMode),
mSleepBodies (PX_DEBUG_EXP("sceneSleepBodies")),
mWokeBodies (PX_DEBUG_EXP("sceneWokeBodies")),
mEnableStabilization (desc.flags & PxSceneFlag::eENABLE_STABILIZATION),
@@ -804,7 +806,9 @@ Sc::Scene::Scene(const PxSceneDesc& desc, PxU64 contextID) :
mSimulationControllerCallback = PX_PLACEMENT_NEW(PX_ALLOC(sizeof(ScSimulationControllerCallback), PX_DEBUG_EXP("ScSimulationControllerCallback")), ScSimulationControllerCallback(this));
mSimulationController = createSimulationController(mSimulationControllerCallback);
- mAABBManager = PX_NEW(Bp::SimpleAABBManager)(*mBP, *mBoundsArray, *mContactDistance, desc.limits.maxNbAggregates, desc.limits.maxNbStaticShapes + desc.limits.maxNbDynamicShapes, allocator, contextID);
+ mAABBManager = PX_NEW(Bp::SimpleAABBManager)( *mBP, *mBoundsArray, *mContactDistance,
+ desc.limits.maxNbAggregates, desc.limits.maxNbStaticShapes + desc.limits.maxNbDynamicShapes, allocator, contextID,
+ desc.kineKineFilteringMode, desc.staticKineFilteringMode);
}
else
{
@@ -841,7 +845,9 @@ Sc::Scene::Scene(const PxSceneDesc& desc, PxU64 contextID) :
Ps::VirtualAllocator tAllocator(mHeapMemoryAllocationManager->mMappedMemoryAllocators);
- mAABBManager = PX_NEW(Bp::SimpleAABBManager)(*mBP, *mBoundsArray, *mContactDistance, desc.limits.maxNbAggregates, desc.limits.maxNbStaticShapes + desc.limits.maxNbDynamicShapes, tAllocator, contextID);
+ mAABBManager = PX_NEW(Bp::SimpleAABBManager)( *mBP, *mBoundsArray, *mContactDistance,
+ desc.limits.maxNbAggregates, desc.limits.maxNbStaticShapes + desc.limits.maxNbDynamicShapes, tAllocator, contextID,
+ desc.kineKineFilteringMode, desc.staticKineFilteringMode);
#endif
}
@@ -1695,7 +1701,7 @@ void Sc::Scene::removeBody(BodySim& body) //this also notifies any connected joi
else
PX_ASSERT(!isInPosePreviewList(body));
- markReleasedBodyIDForLostTouch(body.getID());
+ markReleasedBodyIDForLostTouch(body.getRigidID());
}
void Sc::Scene::addConstraint(ConstraintCore& constraint, RigidCore* body0, RigidCore* body1)
@@ -3893,7 +3899,6 @@ public:
const PxReal mDt;
IG::SimpleIslandManager* mIslandManager;
PxsSimulationController* mSimulationController;
- PxU64 mContextID;
bool mSimUsesAdaptiveForce;
public:
@@ -3903,7 +3908,6 @@ public:
mDt (dt),
mIslandManager (islandManager),
mSimulationController (simulationController),
- mContextID (contextID),
mSimUsesAdaptiveForce (simUsesAdaptiveForce)
{
}
@@ -5824,7 +5828,7 @@ void Sc::Scene::addToLostTouchList(BodySim* body1, BodySim* body2)
{
PX_ASSERT(body1 != 0);
PX_ASSERT(body2 != 0);
- SimpleBodyPair p = { body1, body2, body1->getID(), body2->getID() };
+ SimpleBodyPair p = { body1, body2, body1->getRigidID(), body2->getRigidID() };
mLostTouchPairs.pushBack(p);
}
@@ -6036,13 +6040,35 @@ PxU32 Sc::Scene::createAggregate(void* userData, bool selfCollisions)
{
const physx::Bp::BoundsIndex index = getElementIDPool().createID();
mBoundsArray->initEntry(index);
- return mAABBManager->createAggregate(index, userData, selfCollisions);
+#ifdef BP_USE_AGGREGATE_GROUP_TAIL
+ return mAABBManager->createAggregate(index, Bp::FilterGroup::eINVALID, userData, selfCollisions);
+#else
+ // PT: TODO: ideally a static compound would have a static group
+ const PxU32 rigidId = getRigidIDTracker().createID();
+ const Bp::FilterGroup::Enum bpGroup = Bp::FilterGroup::Enum(rigidId + Bp::FilterGroup::eDYNAMICS_BASE);
+ return mAABBManager->createAggregate(index, bpGroup, userData, selfCollisions);
+#endif
}
void Sc::Scene::deleteAggregate(PxU32 id)
{
- const physx::Bp::BoundsIndex index = mAABBManager->destroyAggregate(id);
- getElementIDPool().releaseID(index);
+ Bp::BoundsIndex index;
+ Bp::FilterGroup::Enum bpGroup;
+#ifdef BP_USE_AGGREGATE_GROUP_TAIL
+ if(mAABBManager->destroyAggregate(index, bpGroup, id))
+ {
+ getElementIDPool().releaseID(index);
+ }
+#else
+ if(mAABBManager->destroyAggregate(index, bpGroup, id))
+ {
+ getElementIDPool().releaseID(index);
+
+ // PT: this is clumsy....
+ const PxU32 rigidId = PxU32(bpGroup) - Bp::FilterGroup::eDYNAMICS_BASE;
+ getRigidIDTracker().releaseID(rigidId);
+ }
+#endif
}
//~PX_AGGREGATE
diff --git a/PhysX_3.4/Source/SimulationController/src/ScShapeCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScShapeCore.cpp
index 58963ade..9979f5dd 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScShapeCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScShapeCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp b/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp
index 0760d911..6ee9218d 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -40,11 +40,11 @@
using namespace physx;
-Sc::ShapeInteraction::ShapeInteraction(ShapeSim& s1, ShapeSim& s2, ActorPair* aPair, PxPairFlags pairFlags, PxsContactManager* contactManager) :
+Sc::ShapeInteraction::ShapeInteraction(ShapeSim& s1, ShapeSim& s2, PxPairFlags pairFlags, PxsContactManager* contactManager) :
RbElementInteraction (s1, s2, InteractionType::eOVERLAP, InteractionFlag::eRB_ELEMENT|InteractionFlag::eFILTERABLE),
mContactReportStamp (PX_INVALID_U32),
mFlags (0),
- mActorPair (aPair),
+ mActorPair (NULL),
mReportPairIndex (INVALID_REPORT_PAIR_ID),
mManager (NULL),
mEdgeIndex (IG_INVALID_EDGE),
@@ -110,9 +110,6 @@ Sc::ShapeInteraction::ShapeInteraction(ShapeSim& s1, ShapeSim& s2, ActorPair* aP
{
onActivate(contactManager);
}
-
- if(aPair)
- aPair->incRefCount();
}
diff --git a/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.h b/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.h
index 6ae2d777..c628ea2f 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -85,7 +85,7 @@ namespace Sc
LL_MANAGER_RECREATE_EVENT = CONTACT_REPORT_EVENTS | CONTACTS_COLLECT_POINTS |
CONTACTS_RESPONSE_DISABLED | PxU32(PxPairFlag::eMODIFY_CONTACTS)
};
- ShapeInteraction(ShapeSim& s1, ShapeSim& s2, ActorPair* aPair, PxPairFlags pairFlags, PxsContactManager* contactManager);
+ ShapeInteraction(ShapeSim& s1, ShapeSim& s2, PxPairFlags pairFlags, PxsContactManager* contactManager);
virtual ~ShapeInteraction();
// Submits to contact stream
diff --git a/PhysX_3.4/Source/SimulationController/src/ScShapeIterator.h b/PhysX_3.4/Source/SimulationController/src/ScShapeIterator.h
index 0b8d46f9..f2304a64 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScShapeIterator.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScShapeIterator.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScShapeSim.cpp b/PhysX_3.4/Source/SimulationController/src/ScShapeSim.cpp
index 42bd5e88..d4e10a93 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScShapeSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScShapeSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -60,6 +60,7 @@
using namespace physx;
using namespace Gu;
+using namespace Sc;
// PT: keep local functions in cpp, no need to pollute the header. Don't force conversions to bool if not necessary.
static PX_FORCE_INLINE PxU32 hasTriggerFlags(PxShapeFlags flags) { return PxU32(flags) & PxU32(PxShapeFlag::eTRIGGER_SHAPE); }
@@ -99,13 +100,9 @@ void Sc::ShapeSim::initSubsystemsDependingOnElementID()
{
PX_PROFILE_ZONE("API.simAddShapeToBroadPhase", scScene.getContextId());
if(isBroadPhase(mCore.getFlags()))
- {
internalAddToBroadPhase();
- }
else
- {
scScene.getAABBManager()->reserveSpaceForBounds(index);
- }
scScene.updateContactDistance(index, getContactOffset());
}
@@ -155,32 +152,37 @@ Sc::ShapeSim::~ShapeSim()
scScene.getShapeIDTracker().releaseID(mId);
}
+Bp::FilterGroup::Enum ShapeSim::getBPGroup() const
+{
+ bool isKinematic = false;
+ BodySim* bs = getBodySim();
+ if(bs)
+ isKinematic = bs->isKinematic();
+
+ RigidSim& rbSim = getRbSim();
+ return Bp::getFilterGroup(rbSim.getActorType()==PxActorType::eRIGID_STATIC, rbSim.getRigidID(), isKinematic);
+}
+
PX_FORCE_INLINE void Sc::ShapeSim::internalAddToBroadPhase()
{
PX_ASSERT(!isInBroadPhase());
- addToAABBMgr(mCore.getContactOffset(), getRbSim().getBroadphaseGroupId(), !!(mCore.getCore().mShapeFlags & PxShapeFlag::eTRIGGER_SHAPE));
+ addToAABBMgr(mCore.getContactOffset(), getBPGroup(), Ps::IntBool(mCore.getCore().mShapeFlags & PxShapeFlag::eTRIGGER_SHAPE));
}
-PX_FORCE_INLINE void Sc::ShapeSim::internalRemoveFromBroadPhase()
+PX_FORCE_INLINE void Sc::ShapeSim::internalRemoveFromBroadPhase(bool wakeOnLostTouch)
{
PX_ASSERT(isInBroadPhase());
removeFromAABBMgr();
- Sc::Scene& scene = getScene();
+ Scene& scene = getScene();
PxsContactManagerOutputIterator outputs = scene.getLowLevelContext()->getNphaseImplementationContext()->getContactManagerOutputs();
- scene.getNPhaseCore()->onVolumeRemoved(this, PxU32(PairReleaseFlag::eWAKE_ON_LOST_TOUCH), outputs, scene.getPublicFlags() & PxSceneFlag::eADAPTIVE_FORCE);
+ scene.getNPhaseCore()->onVolumeRemoved(this, wakeOnLostTouch ? PxU32(PairReleaseFlag::eWAKE_ON_LOST_TOUCH) : 0, outputs, scene.getPublicFlags() & PxSceneFlag::eADAPTIVE_FORCE);
}
void Sc::ShapeSim::removeFromBroadPhase(bool wakeOnLostTouch)
{
if(isInBroadPhase())
- {
- // PT: TODO: refactor with internalRemoveFromBroadPhase()
- removeFromAABBMgr();
- Sc::Scene& scene = getScene();
- PxsContactManagerOutputIterator outputs = scene.getLowLevelContext()->getNphaseImplementationContext()->getContactManagerOutputs();
- scene.getNPhaseCore()->onVolumeRemoved(this, wakeOnLostTouch ? PxU32(PairReleaseFlag::eWAKE_ON_LOST_TOUCH) : 0, outputs, scene.getPublicFlags() & PxSceneFlag::eADAPTIVE_FORCE);
- }
+ internalRemoveFromBroadPhase(wakeOnLostTouch);
}
void Sc::ShapeSim::reinsertBroadPhase()
@@ -258,8 +260,6 @@ void Sc::ShapeSim::onFlagChange(PxShapeFlags oldFlags)
{
PxShapeFlags newFlags = mCore.getFlags();
- const PxSceneFlags sceneFlags = getScene().getPublicFlags();
-
const bool oldBp = isBroadPhase(oldFlags)!=0;
const bool newBp = isBroadPhase(newFlags)!=0;
@@ -267,17 +267,14 @@ void Sc::ShapeSim::onFlagChange(PxShapeFlags oldFlags)
if(oldBp != newBp)
{
if(!oldBp && newBp)
- {
- PX_ASSERT(!isInBroadPhase());
internalAddToBroadPhase();
- }
else
- {
internalRemoveFromBroadPhase();
- }
}
else
{
+ Scene& scene = getScene();
+ const PxSceneFlags sceneFlags = scene.getPublicFlags();
const bool wasTrigger = hasTriggerFlags(oldFlags)!=0;
const bool isTrigger = hasTriggerFlags(newFlags)!=0;
if(!(sceneFlags & PxSceneFlag::eDEPRECATED_TRIGGER_TRIGGER_REPORTS))
@@ -287,7 +284,7 @@ void Sc::ShapeSim::onFlagChange(PxShapeFlags oldFlags)
}
else
{
- getScene().getAABBManager()->setVolumeType(this->getElementID(), PxU8((isTrigger ? Sc::ElementType::eTRIGGER : getElementType())));
+ scene.getAABBManager()->setVolumeType(this->getElementID(), PxU8((isTrigger ? Sc::ElementType::eTRIGGER : getElementType())));
if (wasTrigger != isTrigger)
setElementInteractionsDirty(InteractionDirtyFlag::eFILTER_STATE, InteractionFlag::eFILTERABLE);
}
@@ -296,7 +293,8 @@ void Sc::ShapeSim::onFlagChange(PxShapeFlags oldFlags)
PxShapeFlags hadSq = oldFlags&PxShapeFlag::eSCENE_QUERY_SHAPE, hasSq = newFlags&PxShapeFlag::eSCENE_QUERY_SHAPE;
if(hasSq && !hadSq)
{
- if(getBodySim() && getBodySim()->isActive())
+ BodySim* body = getBodySim();
+ if(body && body->isActive())
createSqBounds();
}
else if(hadSq && !hasSq)
@@ -354,7 +352,7 @@ void Sc::ShapeSim::getAbsPoseAligned(PxTransform* PX_RESTRICT globalPose) const
Cm::getStaticGlobalPoseAligned(*actor2World, shape2Actor, *globalPose);
}
-Sc::BodySim* Sc::ShapeSim::getBodySim() const
+Sc::BodySim* Sc::ShapeSim::getBodySim() const
{
ActorSim& a = getActor();
return a.isDynamicRigid() ? static_cast<BodySim*>(&a) : NULL;
@@ -424,8 +422,9 @@ Ps::IntBool Sc::ShapeSim::updateSweptBounds()
PxBounds3 bounds = PxBounds3::centerExtents(endOrigin, endExtent);
- PxcRigidBody& rigidBody = getBodySim()->getLowLevelBody();
- PxsBodyCore& bodyCore = getBodySim()->getBodyCore().getCore();
+ BodySim* body = getBodySim();
+ PxcRigidBody& rigidBody = body->getLowLevelBody();
+ PxsBodyCore& bodyCore = body->getBodyCore().getCore();
PX_ALIGN(16, PxTransform shape2World);
Cm::getDynamicGlobalPoseAligned(rigidBody.mLastTransform, shapeCore.getShape2Actor(), bodyCore.getBody2Actor(), shape2World);
PxBounds3 startBounds = computeBounds(shapeCore.getGeometry(), shape2World, !physx::gUnifiedHeightfieldCollision);
@@ -444,18 +443,25 @@ Ps::IntBool Sc::ShapeSim::updateSweptBounds()
return isFastMoving;
}
+void ShapeSim::updateBPGroup()
+{
+ if(isInBroadPhase())
+ {
+ Sc::Scene& scene = getScene();
+ scene.getAABBManager()->setBPGroup(getElementID(), getBPGroup());
+ }
+}
+
void Sc::ShapeSim::markBoundsForUpdate(bool forceBoundsUpdate, bool isDynamic)
{
PX_UNUSED(isDynamic);
Sc::Scene& scene = getScene();
- const PxU32 elementID = getElementID();
-
if(forceBoundsUpdate)
updateCached(0, &scene.getAABBManager()->getChangedAABBMgActorHandleMap());
else if(isInBroadPhase())
- scene.getDirtyShapeSimMap().growAndSet(elementID);
+ scene.getDirtyShapeSimMap().growAndSet(getElementID());
#if PX_USE_PARTICLE_SYSTEM_API
#if PX_SUPPORT_GPU_PHYSX
@@ -535,7 +541,6 @@ void Sc::ShapeSim::createSqBounds()
return;
Sc::BodySim* bodySim = getBodySim();
-
PX_ASSERT(bodySim);
if(bodySim->usingSqKinematicTarget() || bodySim->isFrozen() || !bodySim->isActive())
diff --git a/PhysX_3.4/Source/SimulationController/src/ScShapeSim.h b/PhysX_3.4/Source/SimulationController/src/ScShapeSim.h
index e185703f..5d4277db 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScShapeSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScShapeSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -128,6 +128,7 @@ namespace Sc
void updateCached(PxsTransformCache& transformCache, Bp::BoundsArray& boundsArray);
void updateContactDistance(PxReal* contactDistance, const PxReal inflation, const PxVec3 angVel, const PxReal dt, Bp::BoundsArray& boundsArray);
Ps::IntBool updateSweptBounds();
+ void updateBPGroup();
PX_FORCE_INLINE PxsShapeSim& getLLShapeSim() { return mLLShape; }
private:
@@ -137,8 +138,9 @@ namespace Sc
PxU32 mSqBoundsId;
PX_FORCE_INLINE void internalAddToBroadPhase();
- PX_FORCE_INLINE void internalRemoveFromBroadPhase();
+ PX_FORCE_INLINE void internalRemoveFromBroadPhase(bool wakeOnLostTouch=true);
void initSubsystemsDependingOnElementID();
+ Bp::FilterGroup::Enum getBPGroup() const;
}
PX_ALIGN_SUFFIX(16);
diff --git a/PhysX_3.4/Source/SimulationController/src/ScSimStateData.h b/PhysX_3.4/Source/SimulationController/src/ScSimStateData.h
index 7211c45e..1f743d46 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScSimStateData.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScSimStateData.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScSimStats.cpp b/PhysX_3.4/Source/SimulationController/src/ScSimStats.cpp
index 382d9381..1e210bc1 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScSimStats.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScSimStats.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScSimStats.h b/PhysX_3.4/Source/SimulationController/src/ScSimStats.h
index 3960c4be..faed1b7b 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScSimStats.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScSimStats.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScSimulationController.cpp b/PhysX_3.4/Source/SimulationController/src/ScSimulationController.cpp
index e907e837..dafec5ba 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScSimulationController.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScSimulationController.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScSimulationController.h b/PhysX_3.4/Source/SimulationController/src/ScSimulationController.h
index b370745d..1cc07a55 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScSimulationController.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScSimulationController.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.cpp b/PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.cpp
index 7d2d692c..70443b4b 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.h b/PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.h
index a1b80b4b..75342847 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScSqBoundsManager.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScStaticCore.cpp b/PhysX_3.4/Source/SimulationController/src/ScStaticCore.cpp
index 7b0ad933..67ad840a 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScStaticCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScStaticCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScStaticSim.cpp b/PhysX_3.4/Source/SimulationController/src/ScStaticSim.cpp
index 83546e83..fef59468 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScStaticSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScStaticSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScStaticSim.h b/PhysX_3.4/Source/SimulationController/src/ScStaticSim.h
index 118c442c..13cca69a 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScStaticSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScStaticSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.cpp b/PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.cpp
index 03c5362f..80cce5cf 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.h b/PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.h
index 028229c7..8c1c9e9d 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScTriggerInteraction.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/ScTriggerPairs.h b/PhysX_3.4/Source/SimulationController/src/ScTriggerPairs.h
index ff5a72d0..12b13dfe 100644
--- a/PhysX_3.4/Source/SimulationController/src/ScTriggerPairs.h
+++ b/PhysX_3.4/Source/SimulationController/src/ScTriggerPairs.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothCore.cpp b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothCore.cpp
index dfd6760d..a67b0200 100644
--- a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothFabricCore.cpp b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothFabricCore.cpp
index 46f06366..be2226ca 100644
--- a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothFabricCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothFabricCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.cpp b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.cpp
index f06c9f04..fa078320 100644
--- a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -105,7 +105,13 @@ void Sc::ClothShape::createLowLevelVolume()
{
PX_ASSERT(getWorldBounds().isFinite());
getScene().getBoundsArray().setBounds(getWorldBounds(), getElementID());
+#ifdef BP_FILTERING_USES_TYPE_IN_GROUP
+ const PxU32 group = Bp::FilterGroup::eCLOTH_NO_PARTICLE_INTERACTION;
+ const PxU32 type = Bp::FilterType::DYNAMIC;
+ addToAABBMgr(0, Bp::FilterGroup::Enum((group<<2)|type), false);
+#else
addToAABBMgr(0, Bp::FilterGroup::eCLOTH_NO_PARTICLE_INTERACTION, false);
+#endif
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.h b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.h
index 32453f16..6e0da37c 100644
--- a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.h
+++ b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothShape.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.cpp b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.cpp
index 9edabed1..95e65eea 100644
--- a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.h b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.h
index df0ca5ed..6fc824e6 100644
--- a/PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/cloth/ScClothSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.cpp b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.cpp
index 98612cb8..031fd6e6 100644
--- a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.h b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.h
index 112aa74a..de7cba67 100644
--- a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.h
+++ b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleBodyInteraction.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.cpp b/PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.cpp
index fde841d5..de7bc0b4 100644
--- a/PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -171,7 +171,13 @@ void Sc::ParticlePacketShape::createLowLevelVolume()
PX_ASSERT(getBounds().isFinite());
getScene().getBoundsArray().setBounds(getBounds(), getElementID());
+#ifdef BP_FILTERING_USES_TYPE_IN_GROUP
+ const PxU32 group = Bp::FilterGroup::ePARTICLES;
+ const PxU32 type = Bp::FilterType::DYNAMIC;
+ addToAABBMgr(0, Bp::FilterGroup::Enum((group<<2)|type), false);
+#else
addToAABBMgr(0, Bp::FilterGroup::ePARTICLES, false);
+#endif
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.h b/PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.h
index 71db35ff..4826e1c9 100644
--- a/PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.h
+++ b/PhysX_3.4/Source/SimulationController/src/particles/ScParticlePacketShape.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemCore.cpp b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemCore.cpp
index 9eba9bf5..0ed2fc08 100644
--- a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemCore.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemCore.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.cpp b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.cpp
index c0ba7cd8..233cad43 100644
--- a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.cpp
+++ b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.cpp
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
diff --git a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.h b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.h
index 03ddee0e..d3d29373 100644
--- a/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.h
+++ b/PhysX_3.4/Source/SimulationController/src/particles/ScParticleSystemSim.h
@@ -23,7 +23,7 @@
// components in life support devices or systems without express written approval of
// NVIDIA Corporation.
//
-// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.