igor::iEntitySystem Class Referenceabstract

#include <iEntitySystem.h>

Inherited by igor::iAnimationSystem, igor::iBehaviourSystem, igor::iCameraSystem, igor::iLightSystem, igor::iMeshRenderSystem, igor::iSpriteRenderSystem, igor::iTransformSystem, and igor::iVelocitySystem.

Public Member Functions

 iEntitySystem ()=default
 
virtual ~iEntitySystem ()=default
 
virtual void onUpdate (const iEntitySceneUpdateContext &context)=0
 
virtual iEntitySystemStage getStage () const =0
 
iEntityScenePtr getScene () const
 

Protected Member Functions

virtual void onComponentAdded (iEntityPtr entity, const std::type_index &typeID)
 
virtual void onComponentRemoved (iEntityPtr entity, const std::type_index &typeID)
 
virtual void onComponentToRemove (iEntityPtr entity, const std::type_index &typeID)
 
void onEntityStructureChanged (iEntityPtr entity)
 
template<typename... Args>
iEntityViewPtr createView (const iaString &name="")
 

Friends

class iEntity
 
class iEntityScene
 

Detailed Description

entity system base class

Constructor & Destructor Documentation

◆ iEntitySystem()

igor::iEntitySystem::iEntitySystem ( )
default

does nothing

◆ ~iEntitySystem()

virtual igor::iEntitySystem::~iEntitySystem ( )
virtualdefault

does nothing

Member Function Documentation

◆ createView()

template<typename... Args>
iEntityViewPtr igor::iEntitySystem::createView ( const iaString name = "")
inlineprotected

create an entity view for given component types

Returns
entity view

◆ getScene()

iEntityScenePtr igor::iEntitySystem::getScene ( ) const
Returns
scene this system operates in

◆ getStage()

virtual iEntitySystemStage igor::iEntitySystem::getStage ( ) const
pure virtual

◆ onComponentAdded()

void igor::iEntitySystem::onComponentAdded ( iEntityPtr  entity,
const std::type_index &  typeID 
)
protectedvirtual

callback to handle added component on entity

Parameters
entitypointer of entity
typeIDtype of component that has been added

◆ onComponentRemoved()

void igor::iEntitySystem::onComponentRemoved ( iEntityPtr  entity,
const std::type_index &  typeID 
)
protectedvirtual

callback to handle removed component on entity

Parameters
entitypointer of entity
typeIDtype of component that has been removed

◆ onComponentToRemove()

void igor::iEntitySystem::onComponentToRemove ( iEntityPtr  entity,
const std::type_index &  typeID 
)
protectedvirtual

callback to handle component to be removed

Parameters
entitypointer of entity
typeIDtype of component to be removed

◆ onEntityStructureChanged()

void igor::iEntitySystem::onEntityStructureChanged ( iEntityPtr  entity)
protected

update when entity changed in a way that is relevant to views

Parameters
entitythe entity to update with this system

◆ onUpdate()

void igor::iEntitySystem::onUpdate ( const iEntitySceneUpdateContext context)
pure virtual

Friends And Related Function Documentation

◆ iEntity

friend class iEntity
friend

◆ iEntityScene

friend class iEntityScene
friend

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