XII Release 0.1.0
Loading...
Searching...
No Matches
xiiComponentManager< T, StorageType > Class Template Reference
Inheritance diagram for xiiComponentManager< T, StorageType >:
[legend]

Public Types

using ComponentType = T
using SUPER = xiiComponentManagerBase

Public Member Functions

 xiiComponentManager (xiiWorld *pWorld)
 Although the constructor is public always use xiiWorld::CreateComponentManager to create an instance.
bool TryGetComponent (const xiiComponentHandle &hComponent, ComponentType *&out_pComponent)
 Returns if a component with the given handle exists and if so writes out the corresponding pointer to out_pComponent.
bool TryGetComponent (const xiiComponentHandle &hComponent, const ComponentType *&out_pComponent) const
 Returns if a component with the given handle exists and if so writes out the corresponding pointer to out_pComponent.
xiiBlockStorage< ComponentType, xiiInternal::DEFAULT_BLOCK_SIZE, StorageType >::Iterator GetComponents (xiiUInt32 uiStartIndex=0)
 Returns an iterator over all components.
xiiBlockStorage< ComponentType, xiiInternal::DEFAULT_BLOCK_SIZE, StorageType >::ConstIterator GetComponents (xiiUInt32 uiStartIndex=0) const
 Returns an iterator over all components.
virtual void CollectAllComponents (xiiDynamicArray< xiiComponentHandle > &out_allComponents, bool bOnlyActive) override
virtual void CollectAllComponents (xiiDynamicArray< xiiComponent * > &out_allComponents, bool bOnlyActive) override
Public Member Functions inherited from xiiComponentManagerBase
bool IsValidComponent (const xiiComponentHandle &hComponent) const
 Checks whether the given handle references a valid component.
bool TryGetComponent (const xiiComponentHandle &hComponent, xiiComponent *&out_pComponent)
 Returns if a component with the given handle exists and if so writes out the corresponding pointer to out_pComponent.
bool TryGetComponent (const xiiComponentHandle &hComponent, const xiiComponent *&out_pComponent) const
 Returns if a component with the given handle exists and if so writes out the corresponding pointer to out_pComponent.
xiiUInt32 GetComponentCount () const
 Returns the number of components managed by this manager.
xiiComponentHandle CreateComponent (xiiGameObject *pOwnerObject)
 Create a new component instance and returns a handle to it.
template<typename ComponentType>
xiiTypedComponentHandle< ComponentType > CreateComponent (xiiGameObject *pOwnerObject, ComponentType *&out_pComponent)
 Create a new component instance and returns a handle to it.
void DeleteComponent (const xiiComponentHandle &hComponent)
 Deletes the given component. Note that the component will be invalidated first and the actual deletion is postponed.
void DeleteComponent (xiiComponent *pComponent)
 Deletes the given component. Note that the component will be invalidated first and the actual deletion is postponed.
template<typename ComponentType>
XII_ALWAYS_INLINE xiiTypedComponentHandle< ComponentType > CreateComponent (xiiGameObject *pOwnerObject, ComponentType *&out_pComponent)
Public Member Functions inherited from xiiWorldModule
xiiWorld * GetWorld ()
 Returns the corresponding world to this module.
const xiiWorld * GetWorld () const
 Returns the corresponding world to this module.
xiiUInt32 GetWorldIndex () const
 Same as GetWorld()->GetIndex(). Needed to break circular include dependencies.
Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTI * GetDynamicRTTI () const
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.

Static Public Member Functions

static xiiWorldModuleTypeId TypeId ()
 Returns the type id corresponding to the component type managed by this manager.
Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()

Protected Member Functions

virtual xiiComponent * CreateComponentStorage () override
virtual void DeleteComponentStorage (xiiComponent *pComponent, xiiComponent *&out_pMovedComponent) override
void RegisterUpdateFunction (UpdateFunctionDesc &desc)
Protected Member Functions inherited from xiiComponentManagerBase
 xiiComponentManagerBase (xiiWorld *pWorld)
Protected Member Functions inherited from xiiWorldModule
 xiiWorldModule (xiiWorld *pWorld)
void RegisterUpdateFunction (const UpdateFunctionDesc &desc)
 Registers the given update function at the world.
void DeregisterUpdateFunction (const UpdateFunctionDesc &desc)
xiiAllocator * GetAllocator ()
 Returns the allocator used by the world.
xiiInternal::WorldLargeBlockAllocator * GetBlockAllocator ()
 Returns the block allocator used by the world.
bool GetWorldSimulationEnabled () const
 Returns whether the world simulation is enabled.
virtual void Initialize ()
virtual void Deinitialize ()
 This method is called before the destructor. A derived type can override this method to do deinitialization work.
virtual void OnSimulationStarted ()
virtual void WorldClear ()
 Called by xiiWorld::Clear(). Can be used to clear cached data when a world is completely cleared of objects (but not deleted).

Protected Attributes

friend ComponentType
xiiBlockStorage< ComponentType, xiiInternal::DEFAULT_BLOCK_SIZE, StorageType > m_ComponentStorage
Protected Attributes inherited from xiiComponentManagerBase
xiiIdTable< xiiComponentId, xiiComponent * > m_Components
Protected Attributes inherited from xiiWorldModule
xiiWorld *const m_pWorld

Friends

class xiiComponentManagerFactory

Additional Inherited Members

Protected Types inherited from xiiWorldModule
using UpdateFunction = xiiDelegate<void(const UpdateContext&)>
 Update function delegate.

Member Function Documentation

◆ CollectAllComponents() [1/2]

template<typename T, xiiBlockStorageType::Enum StorageType>
void xiiComponentManager< T, StorageType >::CollectAllComponents ( xiiDynamicArray< xiiComponent * > & out_allComponents,
bool bOnlyActive )
overridevirtual

Adds all components that this manager handles to the given array (array is not cleared). Prefer to use more efficient methods on derived classes, only use this if you need to go through a xiiComponentManagerBase pointer.

Implements xiiComponentManagerBase.

◆ CollectAllComponents() [2/2]

template<typename T, xiiBlockStorageType::Enum StorageType>
void xiiComponentManager< T, StorageType >::CollectAllComponents ( xiiDynamicArray< xiiComponentHandle > & out_allComponents,
bool bOnlyActive )
overridevirtual

Adds all components that this manager handles to the given array (array is not cleared). Prefer to use more efficient methods on derived classes, only use this if you need to go through a xiiComponentManagerBase pointer.

Implements xiiComponentManagerBase.


The documentation for this class was generated from the following files: