Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::ECSSystem< T, U > Class Template Reference

#include <ECSSystem.h>

+ Inheritance diagram for Divide::ECSSystem< T, U >:

Public Member Functions

 ECSSystem (ECS::ECSEngine &engine)
 
virtual ~ECSSystem () override=default
 
virtual bool saveCache (const SceneGraphNode *sgn, ByteBuffer &outputBuffer)
 
virtual bool loadCache (SceneGraphNode *sgn, ByteBuffer &inputBuffer)
 
void PreUpdate (F32 dt) override
 
void Update (F32 dt) override
 
void PostUpdate (F32 dt) override
 
void OnFrameStart () override
 
void OnFrameEnd () override
 
ECS::ISystemSerializerGetSerializer () noexcept override
 
const ECS::ISystemSerializerGetSerializer () const noexcept override
 
- Public Member Functions inherited from ECS::System< T >
virtual ~System () override
 
virtual SystemTypeId GetStaticSystemTypeID () const override
 
virtual const char * GetSystemTypeName () const override
 
template<class... Dependencies>
void AddDependencies (Dependencies &&... dependencies)
 
virtual void PreUpdate (f32 dt) override
 
virtual void Update (f32 dt) override
 
virtual void PostUpdate (f32 dt) override
 
virtual void OnFrameStart () override
 
virtual void OnFrameEnd () override
 
- Public Member Functions inherited from ECS::ISystem
virtual ~ISystem ()
 
virtual SystemTypeId GetStaticSystemTypeID () const =0
 
virtual const char * GetSystemTypeName () const =0
 
virtual void PreUpdate (f32 dt)=0
 
virtual void Update (f32 dt)=0
 
virtual void PostUpdate (f32 dt)=0
 
virtual void OnFrameStart ()=0
 
virtual void OnFrameEnd ()=0
 
virtual ISystemSerializerGetSerializer ()=0
 
virtual const ISystemSerializerGetSerializer () const =0
 

Protected Attributes

ECS::ECSEngine_engine
 
ECSSerializer< T, U > _serializer
 
vector< U * > _componentCache
 

Additional Inherited Members

- Static Public Attributes inherited from ECS::System< T >
static const SystemTypeId STATIC_SYSTEM_TYPE_ID = util::Internal::FamilyTypeID<ISystem>::Get<T>()
 
- Protected Member Functions inherited from ECS::System< T >
 System ()
 
- Protected Member Functions inherited from ECS::ISystem
 ISystem (SystemPriority priority=NORMAL_SYSTEM_PRIORITY, f32 updateInterval_ms=-1.0f)
 

Detailed Description

template<class T, class U>
class Divide::ECSSystem< T, U >

Definition at line 70 of file ECSSystem.h.

Constructor & Destructor Documentation

◆ ECSSystem()

template<class T , class U >
Divide::ECSSystem< T, U >::ECSSystem ( ECS::ECSEngine engine)
explicit

Definition at line 42 of file ECSSystem.inl.

◆ ~ECSSystem()

template<class T , class U >
virtual Divide::ECSSystem< T, U >::~ECSSystem ( )
overridevirtualdefault

Member Function Documentation

◆ GetSerializer() [1/2]

template<class T , class U >
const ECS::ISystemSerializer & Divide::ECSSystem< T, U >::GetSerializer ( ) const
inlineoverridevirtualnoexcept

Implements ECS::ISystem.

Definition at line 86 of file ECSSystem.h.

◆ GetSerializer() [2/2]

template<class T , class U >
ECS::ISystemSerializer & Divide::ECSSystem< T, U >::GetSerializer ( )
inlineoverridevirtualnoexcept

Implements ECS::ISystem.

Definition at line 85 of file ECSSystem.h.

◆ loadCache()

template<class T , class U >
bool Divide::ECSSystem< T, U >::loadCache ( SceneGraphNode sgn,
ByteBuffer inputBuffer 
)
virtual

◆ OnFrameEnd()

template<class T , class U >
void Divide::ECSSystem< T, U >::OnFrameEnd
overridevirtual

Reimplemented from ECS::System< T >.

Definition at line 103 of file ECSSystem.inl.

◆ OnFrameStart()

template<class T , class U >
void Divide::ECSSystem< T, U >::OnFrameStart
overridevirtual

Reimplemented from ECS::System< T >.

Definition at line 82 of file ECSSystem.inl.

◆ PostUpdate()

template<class T , class U >
void Divide::ECSSystem< T, U >::PostUpdate ( F32  dt)
override

Definition at line 76 of file ECSSystem.inl.

◆ PreUpdate()

template<class T , class U >
void Divide::ECSSystem< T, U >::PreUpdate ( F32  dt)
override

Definition at line 65 of file ECSSystem.inl.

◆ saveCache()

template<class T , class U >
bool Divide::ECSSystem< T, U >::saveCache ( const SceneGraphNode sgn,
ByteBuffer outputBuffer 
)
virtual

◆ Update()

template<class T , class U >
void Divide::ECSSystem< T, U >::Update ( F32  dt)
override

Definition at line 70 of file ECSSystem.inl.

Member Data Documentation

◆ _componentCache

template<class T , class U >
vector<U*> Divide::ECSSystem< T, U >::_componentCache
protected

Definition at line 92 of file ECSSystem.h.

◆ _engine

template<class T , class U >
ECS::ECSEngine& Divide::ECSSystem< T, U >::_engine
protected

Definition at line 89 of file ECSSystem.h.

◆ _serializer

template<class T , class U >
ECSSerializer<T, U> Divide::ECSSystem< T, U >::_serializer
protected

Definition at line 91 of file ECSSystem.h.


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