aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp')
-rw-r--r--PhysX_3.4/Source/SimulationController/src/ScShapeInteraction.cpp17
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)
{