diff options
Diffstat (limited to 'PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp')
| -rw-r--r-- | PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp b/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp index 6ee9218d..edea6734 100644 --- a/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp +++ b/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp @@ -844,6 +844,23 @@ void Sc::ShapeInteraction::updateState(const PxU8 externalDirtyFlags) mManager->setDominance1(cdom.dominance1); } + if (dirtyFlags & InteractionDirtyFlag::eBODY_KINEMATIC) + { + //Kinematic flags changed - clear flag for kinematic on the pair + Sc::BodySim* bs1 = shapeSim1.getBodySim(); + if (bs1 != NULL) + { + if (bs1->isKinematic()) + { + mManager->getWorkUnit().flags |= PxcNpWorkUnitFlag::eHAS_KINEMATIC_ACTOR; + } + else + { + mManager->getWorkUnit().flags &= (~PxcNpWorkUnitFlag::eHAS_KINEMATIC_ACTOR); + } + } + } + // Update skin width if (dirtyFlags & InteractionDirtyFlag::eREST_OFFSET) { |