82 mNarrowPhasePairs (index, callback),
83 mNewNarrowPhasePairs (index, callback),
84 mModifyCallback (NULL),
85 mIslandSim(islandSim) {}
87 virtual void destroy();
88 virtual void updateContactManager(PxReal dt,
bool hasBoundsArrayChanged,
bool hasContactDistanceChanged,
PxBaseTask* continuation,
90 virtual void postBroadPhaseUpdateContactManager(
PxBaseTask*) {}
91 virtual void secondPassUpdateContactManager(PxReal dt,
PxBaseTask* continuation);
96 virtual void unregisterContactManagerFallback(
PxsContactManager* cm, PxsContactManagerOutput* cmOutputs);
99 virtual void refreshContactManagerFallback(
PxsContactManager* cm, PxsContactManagerOutput* cmOutputs);
102 virtual void unregisterShape(
const PxsShapeCore& ,
const PxU32 ,
const bool ) {}
104 virtual void registerAggregate(
const PxU32 ) {}
106 virtual void updateShapeMaterial(
const PxsShapeCore&) {}
107 virtual void updateShapeContactOffset(
const PxsShapeCore&) {}
137 virtual void appendContactManagers();
138 virtual void appendContactManagersFallback(PxsContactManagerOutput* cmOutputs);
140 virtual void removeContactManagersFallback(PxsContactManagerOutput* cmOutputs);
146 virtual PxsContactManagerOutput& getNewContactManagerOutput(PxU32 npIndex);
148 virtual void acquireContext(){}
149 virtual void releaseContext(){}
150 virtual void preallocateNewBuffers(PxU32 , PxU32 ) { }
152 virtual PxsContactManagerOutputCounts* getFoundPatchOutputCounts() {
return mCmFoundLostOutputCounts.
begin(); }
153 virtual PxsContactManager** getFoundPatchManagers() {
return mCmFoundLost.begin(); }
154 virtual PxU32 getNbFoundPatchManagers() {
return mCmFoundLost.size(); }
156 void processContactManager(PxReal dt, PxsContactManagerOutput* cmOutputs,
PxBaseTask* continuation);
157 void processContactManagerSecondPass(PxReal dt,
PxBaseTask* continuation);
158 void fetchUpdateContactManager() {}
160 void appendNewLostPairs();
162 void startNarrowPhaseTasks() {}
164 virtual void lock() { mContactManagerMutex.
lock(); }
165 virtual void unlock() { mContactManagerMutex.
unlock(); }
167 virtual Sc::ShapeInteraction** getShapeInteractions() {
return mNarrowPhasePairs.mShapeInteractions.begin(); }
168 virtual PxReal* getRestDistances() {
return mNarrowPhasePairs.mRestDistances.
begin(); }
169 virtual PxsTorsionalFrictionData* getTorsionalData() {
return mNarrowPhasePairs.mTorsionalProperties.begin(); }
171 virtual PxsContactManagerOutput* getGPUContactManagerOutputBase() {
return NULL; }
172 virtual PxReal* getGPURestDistances() {
return NULL; }
174 virtual PxsTorsionalFrictionData* getGPUTorsionalData() {
return NULL; }
191 void unregisterContactManagerInternal(PxU32 npIndex,
PxsContactManagers& managers, PxsContactManagerOutput* cmOutputs);
195 unregisterContactManagerInternal(index, cms, cms.mOutputContactManagers.
begin());
PX_FORCE_INLINE void unlock() const
Definition PxMutex.h:149
PX_FORCE_INLINE void lock() const
Definition PxMutex.h:130
Definition PxsContext.h:92
Definition PxsNphaseImplementationContext.h:76
Definition PxvNphaseImplementationContext.h:249