aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/LowLevel
diff options
context:
space:
mode:
Diffstat (limited to 'PhysX_3.4/Source/LowLevel')
-rw-r--r--PhysX_3.4/Source/LowLevel/API/include/PxvDynamics.h4
-rw-r--r--PhysX_3.4/Source/LowLevel/common/include/pipeline/PxcNpThreadContext.h5
-rw-r--r--PhysX_3.4/Source/LowLevel/software/include/PxsContext.h5
-rw-r--r--PhysX_3.4/Source/LowLevel/software/src/PxsCCD.cpp23
4 files changed, 4 insertions, 33 deletions
diff --git a/PhysX_3.4/Source/LowLevel/API/include/PxvDynamics.h b/PhysX_3.4/Source/LowLevel/API/include/PxvDynamics.h
index b5fb6918..afad09d3 100644
--- a/PhysX_3.4/Source/LowLevel/API/include/PxvDynamics.h
+++ b/PhysX_3.4/Source/LowLevel/API/include/PxvDynamics.h
@@ -66,8 +66,8 @@ struct PxsRigidCore
// accordingly.
//==================================================================================================
- PxsRigidCore() : mFlags(0), mIdtBody2Actor(0) {}
- PxsRigidCore(const PxEMPTY) : mFlags(PxEmpty) {}
+ PxsRigidCore() : mFlags(0), mIdtBody2Actor(0), solverIterationCounts(0) {}
+ PxsRigidCore(const PxEMPTY) : mFlags(PxEmpty) {}
PX_ALIGN_PREFIX(16)
PxTransform body2World PX_ALIGN_SUFFIX(16);
diff --git a/PhysX_3.4/Source/LowLevel/common/include/pipeline/PxcNpThreadContext.h b/PhysX_3.4/Source/LowLevel/common/include/pipeline/PxcNpThreadContext.h
index a6eb2cf3..8453ca48 100644
--- a/PhysX_3.4/Source/LowLevel/common/include/pipeline/PxcNpThreadContext.h
+++ b/PhysX_3.4/Source/LowLevel/common/include/pipeline/PxcNpThreadContext.h
@@ -48,11 +48,6 @@ namespace physx
class PxsTransformCache;
class PxsMaterialManager;
-namespace Bp
-{
- class AABBManagerImpl;
-}
-
namespace Sc
{
class BodySim;
diff --git a/PhysX_3.4/Source/LowLevel/software/include/PxsContext.h b/PhysX_3.4/Source/LowLevel/software/include/PxsContext.h
index bfa86ec3..e196323e 100644
--- a/PhysX_3.4/Source/LowLevel/software/include/PxsContext.h
+++ b/PhysX_3.4/Source/LowLevel/software/include/PxsContext.h
@@ -74,11 +74,6 @@ namespace Cm
class FlushPool;
}
-namespace Bp
-{
- class AABBManagerImpl;
-}
-
namespace IG
{
class SimpleIslandManager;
diff --git a/PhysX_3.4/Source/LowLevel/software/src/PxsCCD.cpp b/PhysX_3.4/Source/LowLevel/software/src/PxsCCD.cpp
index 61d2b9d6..8d1b1220 100644
--- a/PhysX_3.4/Source/LowLevel/software/src/PxsCCD.cpp
+++ b/PhysX_3.4/Source/LowLevel/software/src/PxsCCD.cpp
@@ -555,19 +555,8 @@ bool PxsCCDPair::sweepAdvanceToToi(PxReal dt, bool clipTrajectoryToToi)
//If the TOI < 1.f. If not, this hit happens after this frame or at the very end of the frame. Either way, next frame can handle it
if (thisPair->mMinToi < 1.0f)
{
- if(thisPair->mCm->getWorkUnit().flags & PxcNpWorkUnitFlag::eDISABLE_RESPONSE)
+ if(thisPair->mCm->getWorkUnit().flags & PxcNpWorkUnitFlag::eDISABLE_RESPONSE || thisPair->mMaxImpulse == 0.f)
{
- //This is a contact which has response disabled. We just step the bodies and return true but don't respond.
- if(atom0)
- {
- atom0->advancePrevPoseToToi(thisPair->mMinToi);
- atom0->advanceToToi(thisPair->mMinToi, dt, false);
- }
- if(atom1)
- {
- atom1->advancePrevPoseToToi(thisPair->mMinToi);
- atom1->advanceToToi(thisPair->mMinToi, dt, false);
- }
//Don't mark pass as done on either body
return true;
}
@@ -1059,14 +1048,6 @@ public:
mCCDContext->runCCDModifiableContact(point, 1, pair.mCCDShape0->mShapeCore, pair.mCCDShape1->mShapeCore,
pair.mCCDShape0->mRigidCore, pair.mCCDShape1->mRigidCore, pair.mBa0, pair.mBa1);
- //If the maxImpulse is 0, we return to the beginning of the loop, knowing that the application did not want an interaction
- //between the pair.
- if(point->maxImpulse == 0.f)
- {
- pair.mMinToi = PX_MAX_REAL;
- continue;
- }
-
if ((patch->internalFlags & PxContactPatch::eHAS_MAX_IMPULSE))
pair.mMaxImpulse = point->maxImpulse;
@@ -1128,7 +1109,7 @@ public:
}
//If we disabled response, we don't need to resweep at all
- if(!mDisableResweep && !(pair.mCm->getWorkUnit().flags & PxcNpWorkUnitFlag::eDISABLE_RESPONSE))
+ if(!mDisableResweep && !(pair.mCm->getWorkUnit().flags & PxcNpWorkUnitFlag::eDISABLE_RESPONSE) && pair.mMaxImpulse != 0.f)
{
void* a0 = pair.mBa0 == NULL ? NULL : reinterpret_cast<void*>(pair.mBa0);
void* a1 = pair.mBa1 == NULL ? NULL : reinterpret_cast<void*>(pair.mBa1);