29 #ifndef NVBLASTEXTPXMANAGERIMPL_H 30 #define NVBLASTEXTPXMANAGERIMPL_H 38 #include "PxRigidDynamic.h" 41 using namespace physx;
61 : m_physics(physics), m_framework(framework), m_createJointFn(createFn), m_usePxUserData(usePxUserData), m_actorCountLimit(0)
69 virtual void release()
override;
76 virtual bool createJoint(
TkJoint& joint)
override;
78 virtual void destroyJoint(
TkJoint& joint)
override;
82 m_createJointFn = createFn;
87 return m_tkFamiliesMap.size();
93 for (
auto it = const_cast<ExtPxManagerImpl*>(
this)->m_tkFamiliesMap.getIterator(); !it.done() && index < bufferSize; ++it)
95 buffer[index++] = it->second;
102 auto entry = m_tkFamiliesMap.find(&family);
103 return entry !=
nullptr ? entry->second :
nullptr;
108 auto it = m_physXActorsMap.find(&pxActor);
109 return it !=
nullptr ? it->second :
nullptr;
124 return m_usePxUserData;
129 m_listeners.pushBack(&listener);
134 m_listeners.findAndReplaceWithLast(&listener);
139 m_actorCountLimit = limit;
144 return m_actorCountLimit;
149 return m_physXActorsMap.size();
159 pxActor->userData = actor;
161 m_physXActorsMap[pxActor] = actor;
168 pxActor->userData =
nullptr;
170 m_physXActorsMap.erase(pxActor);
183 void updateJoint(
TkJoint& joint);
191 listener->onActorCreated(family, actor);
197 listener->onActorDestroyed(family, actor);
205 PxPhysics& m_physics;
208 bool m_usePxUserData;
213 uint32_t m_actorCountLimit;
220 #endif // ifndef NVBLASTEXTPXMANAGERIMPL_H Definition: NvBlastExtApexSharedParts.h:34
Definition: NvBlastTkFamily.h:55
Definition: NvBlastExtPxManager.h:75
virtual uint32_t getPxActorCount() const override
Definition: NvBlastExtPxManagerImpl.h:147
physx::shdfnd::InlineArray< T, N, Allocator > type
Definition: NvBlastArray.h:60
virtual uint32_t getActorCountLimit() override
Definition: NvBlastExtPxManagerImpl.h:142
Definition: NvBlastTkJoint.h:63
Definition: NvBlastExtPxManagerImpl.h:52
Definition: NvBlastHashMap.h:46
~ExtPxManagerImpl()
Definition: NvBlastExtPxManagerImpl.h:65
void registerFamily(ExtPxFamily &family)
Definition: NvBlastExtPxManagerImpl.h:173
virtual bool isPxUserDataUsed() const override
Definition: NvBlastExtPxManagerImpl.h:122
physx::shdfnd::HashMap< Key, Value, HashFn, Allocator > type
Definition: NvBlastHashMap.h:48
virtual void setCreateJointFunction(ExtPxCreateJointFunction createFn) override
Definition: NvBlastExtPxManagerImpl.h:80
Definition: NvBlastExtPxListener.h:48
virtual TkFramework & getFramework() const override
Definition: NvBlastExtPxManagerImpl.h:117
void dispatchActorDestroyed(ExtPxFamily &family, ExtPxActor &actor)
Definition: NvBlastExtPxManagerImpl.h:194
ExtPxManagerImpl(PxPhysics &physics, TkFramework &framework, ExtPxCreateJointFunction createFn, bool usePxUserData)
Definition: NvBlastExtPxManagerImpl.h:60
virtual void setActorCountLimit(uint32_t limit) override
Definition: NvBlastExtPxManagerImpl.h:137
void unregisterFamily(ExtPxFamily &family)
Definition: NvBlastExtPxManagerImpl.h:178
Definition: NvBlastExtPxActor.h:57
virtual TkFamily & getTkFamily() const =0
Definition: NvBlastExtPxActorImpl.h:58
virtual ExtPxFamily * getFamilyFromTkFamily(TkFamily &family) const override
Definition: NvBlastExtPxManagerImpl.h:100
virtual PxPhysics & getPhysics() const override
Definition: NvBlastExtPxManagerImpl.h:112
Definition: NvBlastExtPxFamily.h:105
void unregisterActor(PxRigidDynamic *pxActor)
Definition: NvBlastExtPxManagerImpl.h:164
Definition: NvBlastTkFramework.h:160
void registerActor(PxRigidDynamic *pxActor, ExtPxActor *actor)
Definition: NvBlastExtPxManagerImpl.h:155
Definition: NvBlastExtPxManager.h:99
Definition: NvBlastExtPxFamilyImpl.h:53
#define NV_NOCOPY(Class)
Definition: NvPreprocessor.h:527
virtual uint32_t getFamilyCount() const override
Definition: NvBlastExtPxManagerImpl.h:85
Definition: NvBlastArray.h:37
virtual void subscribe(ExtPxListener &listener) override
Definition: NvBlastExtPxManagerImpl.h:127
void dispatchActorCreated(ExtPxFamily &family, ExtPxActor &actor)
Definition: NvBlastExtPxManagerImpl.h:188
virtual uint32_t getFamilies(ExtPxFamily **buffer, uint32_t bufferSize) const override
Definition: NvBlastExtPxManagerImpl.h:90
virtual ExtPxActor * getActorFromPhysXActor(const PxRigidDynamic &pxActor) const override
Definition: NvBlastExtPxManagerImpl.h:106
physx::PxJoint *(* ExtPxCreateJointFunction)(ExtPxActor *actor0, const physx::PxTransform &localFrame0, ExtPxActor *actor1, const physx::PxTransform &localFrame1, physx::PxPhysics &physics, TkJoint &joint)
Definition: NvBlastExtPxManager.h:89
virtual void unsubscribe(ExtPxListener &listener) override
Definition: NvBlastExtPxManagerImpl.h:132