29#ifndef SC_OBJECT_ID_TRACKER_H
30#define SC_OBJECT_ID_TRACKER_H
33#include "foundation/PxBitMap.h"
34#include "foundation/PxUserAllocated.h"
47 PX_INLINE PxU32 createID() {
return mIDPool.getNewID(); }
53 PX_INLINE PxIntBool isDeletedID(PxU32
id)
const {
return mDeletedIDsMap.boundedTest(
id); }
55 PX_INLINE void clearDeletedIDMap() { mDeletedIDsMap.clear(); }
56 PX_INLINE void resizeDeletedIDMap(PxU32
id, PxU32 numIds)
58 mDeletedIDsMap.resize(
id);
59 mPendingReleasedIDs.
reserve(numIds);
63 for(PxU32 i=0; i < mPendingReleasedIDs.
size(); i++)
65 mIDPool.freeID(mPendingReleasedIDs[i]);
67 mPendingReleasedIDs.
clear();
71 processPendingReleases();
72 mPendingReleasedIDs.
reset();
81 return mIDPool.getMaxID();
84 PX_INLINE void markIDAsDeleted(PxU32
id) { PX_ASSERT(!isDeletedID(
id)); mDeletedIDsMap.growAndSet(
id); }
Definition CmIDPool.h:177
PX_FORCE_INLINE uint32_t size() const
Definition PxArray.h:242
PX_INLINE void reset()
Definition PxArray.h:460
PX_INLINE void clear()
Definition PxArray.h:250
PX_FORCE_INLINE T & pushBack(const T &a)
Definition PxArray.h:296
PX_INLINE void reserve(const uint32_t capacity)
Definition PxArray.h:486
Definition PxUserAllocated.h:43
Definition ScObjectIDTracker.h:42
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
#define PX_INLINE
Definition PxPreprocessor.h:320
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39