29 #ifndef NVBLASTTKFAMILYIMPL_H 30 #define NVBLASTTKFAMILYIMPL_H 72 virtual uint32_t getActorCount()
const override;
74 virtual uint32_t getActors(
TkActor** buffer, uint32_t bufferSize, uint32_t indexStart = 0)
const override;
76 virtual void addListener(
TkEventListener& l)
override { m_queue.addListener(l); }
78 virtual void removeListener(
TkEventListener& l)
override { m_queue.removeListener(l); }
80 virtual void applyFracture(
const NvBlastFractureBuffers* commands)
override { applyFractureInternal(commands); }
82 virtual const TkAsset* getAsset()
const override;
88 static TkFamilyImpl* create(
const TkAssetImpl* asset);
90 const TkAssetImpl* getAssetImpl()
const;
94 uint32_t getActorCountInternal()
const;
110 uint32_t getInternalJointCount()
const;
114 TkJointImpl** createExternalJointHandle(
const NvBlastID& otherFamilyID, uint32_t chunkIndex0, uint32_t chunkIndex1);
116 bool deleteExternalJointHandle(
TkJointImpl*& joint,
const NvBlastID& otherFamilyID, uint32_t chunkIndex0, uint32_t chunkIndex1);
122 typedef physx::shdfnd::Pair<uint32_t, uint32_t> ExternalJointKey;
124 TkJointImpl* findExternalJoint(
const TkFamilyImpl* otherFamily, ExternalJointKey key)
const;
139 uint32_t m_internalJointCount;
142 FamilyIDMap m_familyIDMap;
143 const TkAssetImpl* m_asset;
151 NV_INLINE const TkAssetImpl* TkFamilyImpl::getAssetImpl()
const 163 NV_INLINE uint32_t TkFamilyImpl::getActorCountInternal()
const 174 return &m_actors[index];
181 return getActorByIndex(index);
191 NV_INLINE uint32_t TkFamilyImpl::getInternalJointCount()
const 193 return m_internalJointCount;
206 NVBLAST_ASSERT(&joint >= getInternalJoints() && &joint < getInternalJoints() + getInternalJointCount() *
sizeof(
TkJointImpl));
208 joint.~TkJointImpl();
209 joint.m_owner =
nullptr;
217 return actor !=
nullptr ?
static_cast<const TkActorImpl*
>(actor)->getFamilyImpl().getIDInternal() : *
reinterpret_cast<const NvBlastID*
>(
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
222 return family !=
nullptr ? family->getIDInternal() : *
reinterpret_cast<const NvBlastID*
>(
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
229 #endif // ifndef NVBLASTTKFAMILYIMPL_H
Definition: NvBlastTkActorImpl.h:75
NV_INLINE const NvBlastID & getFamilyID(const TkActor *actor)
Definition: NvBlastTkFamilyImpl.h:215
physx::shdfnd::Array< T, Allocator > type
Definition: NvBlastArray.h:48
Definition: NvBlastTkActor.h:57
Definition: NvBlastTkAsset.h:59
NV_INLINE void logLL(int type, const char *msg, const char *file, int line)
Definition: NvBlastGlobals.h:195
NVBLAST_API uint32_t NvBlastActorGetIndex(const NvBlastActor *actor, NvBlastLog logFn)
physx::shdfnd::HashMap< Key, Value, HashFn, Allocator > type
Definition: NvBlastHashMap.h:48
#define NVBLAST_ASSERT(exp)
Definition: NvBlastAssert.h:37
Definition: NvBlastTkEvent.h:168
#define NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE(_id0, _id1, _id2, _id3)
Definition: NvBlastTkCommon.h:91
NVBLASTTK_IMPL_DECLARE(Asset)
Definition: NvBlastTkAssetImpl.h:52
NVBLAST_API uint32_t NvBlastFamilyGetActorCount(const NvBlastFamily *family, NvBlastLog logFn)
#define NV_INLINE
Definition: NvPreprocessor.h:350
Definition: NvBlastTypes.h:69
Definition: NvBlastTkEventQueue.h:61
Definition: NvBlastTypes.h:468
Definition: NvBlastTkJointImpl.h:67
Definition: NvBlastTkGroup.h:101
Definition: NvBlastArray.h:37
Definition: NvBlastTypes.h:387
Definition: NvBlastTypes.h:376