aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/SimulationController/src/ScScene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'PhysX_3.4/Source/SimulationController/src/ScScene.cpp')
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScScene.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/PhysX_3.4/Source/SimulationController/src/ScScene.cpp b/PhysX_3.4/Source/SimulationController/src/ScScene.cpp
index 28945a12..47869390 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-2016 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
@@ -2238,6 +2238,7 @@ private:
PX_NOCOPY(SpeculativeCCDContactDistanceArticulationUpdateTask)
};
+
void Sc::Scene::preRigidBodyNarrowPhase(PxBaseTask* continuation)
{
PX_PROFILE_ZONE("Scene.preNarrowPhase", getContextId());
@@ -5001,7 +5002,10 @@ void Sc::Scene::addBody(BodyCore& body, void*const *shapes, PxU32 nbShapes, size
if (sim->getLowLevelBody().mCore->mFlags & PxRigidBodyFlag::eENABLE_SPECULATIVE_CCD)
{
if (sim->isArticulationLink())
- mSpeculativeCDDArticulationBitMap.growAndSet(sim->getNodeIndex().index());
+ {
+ if (sim->getNodeIndex().isValid())
+ mSpeculativeCDDArticulationBitMap.growAndSet(sim->getNodeIndex().index());
+ }
else
mSpeculativeCCDRigidBodyBitMap.growAndSet(sim->getNodeIndex().index());
}