Fission FSN
Loading...
Searching...
No Matches
fsIComponent.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 25/2/2014 11:48
4*
5* File: fsIComponent.h
6*
7* Author: Mick Waites
8*
9* Purpose: Component base. Components get added to Entities.
10*
11*********************************************************************/
12
13#ifndef fsIComponenthdr
14#define fsIComponenthdr
15
16#include <fsCore/fsBaseTypes.h>
17
19#include "../../fsIScene.h"
20
21class fsCEntity;
23
24
26{
27 friend class fsCComponentFactory;
28
29public:
30
31 template <typename TInterface>
32 std::vector<fsCEntity*> appSceneEntitiesWithComponentOfFamilyType() const;
33
34 template <typename TInterface>
36
37 fsCEntity* appSceneEntityNamed(const fsStr& pName) const;
38
39 void reset();
40 void update(fsS32 pDeltaMs);
41 void render();
42 void matrixApply();
43 void postLoad();
44 void deserialise();
45 void serialise();
46 void initialiseFromVariableTable(const fsCVariableTable& pVars); // mainly gui components using layout info file, but also some minigame logic components
47 void initialise(); // all components when constructed in factory after all components are created
48 void finalise(); // called after childAdd run - when the parent entity is linked in
49
50 fsCEntity* parentGet() const;
52
53protected:
54
55 virtual void resetDo() {}
56
57 virtual void updateDo(fsS32 pDeltaMs) {}
58
59 virtual void renderDo() {}
60
61 virtual void matrixApplyDo() {}
62
63 virtual void postLoadDo() {}
64
65 virtual void deserialiseDo() {}
66
67 virtual void serialiseDo() {}
68
69 virtual void initialiseFromVariableTableDo(const fsCVariableTable& pVars);
70
71 virtual void initialiseDo() {};
72
73 virtual void finaliseDo() {};
74
75 virtual ~fsIComponent();
76 fsIComponent(fsCEntity* pParent);
77
78private:
79
80 fsCEntity* const mParent;
81
82#if !defined fsRELEASE
83 fsBool mHierarchyCheckSuccess;
84#endif
85};
86
87
88template <typename TInterface>
93
94template <typename TInterface>
99#endif
static fsCAppCoreMain * instanceGet()
Definition fsCAppCoreMain.cpp:604
fsIScene * sceneGet() const
Definition fsCAppCoreMain.cpp:278
Definition fsCEntity.h:39
Definition fsCVariableTable.h:27
virtual void serialiseDo()
Definition fsIComponent.h:67
std::vector< fsCEntity * > appSceneEntitiesWithComponentOfFamilyType() const
Definition fsIComponent.h:89
void serialise()
Definition fsIComponent.cpp:41
virtual void resetDo()
Definition fsIComponent.h:55
virtual ~fsIComponent()
Definition fsIComponent.cpp:94
fsCEntity * appSceneEntityNamed(const fsStr &pName) const
Definition fsIComponent.cpp:6
virtual void finaliseDo()
Definition fsIComponent.h:73
friend class fsCComponentFactory
Definition fsIComponent.h:27
virtual void renderDo()
Definition fsIComponent.h:59
virtual void matrixApplyDo()
Definition fsIComponent.h:61
void initialiseFromVariableTable(const fsCVariableTable &pVars)
Definition fsIComponent.cpp:56
fsCEntity * grandparentGet() const
Definition fsIComponent.cpp:81
void matrixApply()
Definition fsIComponent.cpp:26
virtual void initialiseDo()
Definition fsIComponent.h:71
void initialise()
Definition fsIComponent.cpp:51
void deserialise()
Definition fsIComponent.cpp:46
void postLoad()
Definition fsIComponent.cpp:36
void update(fsS32 pDeltaMs)
Definition fsIComponent.cpp:21
void render()
Definition fsIComponent.cpp:31
fsIComponent(fsCEntity *pParent)
Definition fsIComponent.cpp:86
virtual void updateDo(fsS32 pDeltaMs)
Definition fsIComponent.h:57
void finalise()
Definition fsIComponent.cpp:11
void reset()
Definition fsIComponent.cpp:16
virtual void deserialiseDo()
Definition fsIComponent.h:65
fsCEntity * appSceneFirstEntityWithComponentOfFamilyType() const
Definition fsIComponent.h:95
fsCEntity * parentGet() const
Definition fsIComponent.cpp:76
virtual void initialiseFromVariableTableDo(const fsCVariableTable &pVars)
Definition fsIComponent.cpp:69
virtual void postLoadDo()
Definition fsIComponent.h:63
fsCEntity * firstEntityWithComponentsOfFamilyType() const
Definition fsIScene.h:65
std::vector< fsCEntity * > entitiesWithComponentsOfFamilyType() const
Definition fsIScene.h:49
Definition fsStr.h:23
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20