aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/LowLevelDynamics/src/DyArticulationHelper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'PhysX_3.4/Source/LowLevelDynamics/src/DyArticulationHelper.cpp')
-rw-r--r--PhysX_3.4/Source/LowLevelDynamics/src/DyArticulationHelper.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/PhysX_3.4/Source/LowLevelDynamics/src/DyArticulationHelper.cpp b/PhysX_3.4/Source/LowLevelDynamics/src/DyArticulationHelper.cpp
index 3ec7de2d..2e8ee768 100644
--- a/PhysX_3.4/Source/LowLevelDynamics/src/DyArticulationHelper.cpp
+++ b/PhysX_3.4/Source/LowLevelDynamics/src/DyArticulationHelper.cpp
@@ -844,7 +844,7 @@ PxU32 ArticulationHelper::computeUnconstrainedVelocities( const ArticulationSolv
FloatV h = FLoad(dt);
- const Cm::SpatialVector* acceleration = desc.acceleration;
+ Cm::SpatialVector* acceleration = desc.acceleration;
const Vec3V vGravity = V3LoadU(gravity);
@@ -856,6 +856,8 @@ PxU32 ArticulationHelper::computeUnconstrainedVelocities( const ArticulationSolv
linearAccel = V3Add(linearAccel, vGravity);
Cm::SpatialVectorV a(linearAccel, V3LoadA(acceleration[i].angular));
Z[i] = -ArticulationFnsSimd<ArticulationFnsSimdBase>::multiply(baseInertia[i], a) * h;
+ //KS - zero accelerations to ensure they don't get re-applied next frame if nothing touches them again.
+ acceleration[i].linear = PxVec3(0.f); acceleration[i].angular = PxVec3(0.f);
}
applyImpulses(fsData, Z, getVelocity(fsData));