Fission FSN
Loading...
Searching...
No Matches
fsITransformationComponent.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 22/6/2015 14:05
4*
5* File: fsITransformationComponent.h
6*
7* Author: Martin P. Kind
8*
9* Purpose: Modify parent position / scale / rotation over time
10*
11*********************************************************************/
12
13#ifndef fsITransformationComponenthdr
14#define fsITransformationComponenthdr
15
16#include <functional>
17#include <fsCore/fsSColour.h>
19
21
22class fsINode;
24
26{
27 friend class fsCComponentFactory;
28
29public:
30
31 fsBool reverseGet() const;
32 void reverseSet(fsBool pState);
33 fsBool completeGet() const;
34
35 virtual void simpleTransformSet(fsSColour pStart, fsSColour pEnd, fsS32 pDuration, std::function<void ()> pCompletionAction = nullptr);
36 virtual void simpleTransformSet(fsF32 pStart, fsF32 pEnd, fsS32 pDuration, std::function<void()> pCompletionAction = nullptr);
37
38 static const fsStr mGraphKey;
39 static const fsCUniqueId mTypeId;
40
41protected:
42
43 fsS32 elapsedTimeGet() const;
44
45 virtual void updateTransform() = 0;
46 virtual void transformationCreateDo(const fsCVariableTable& pVars);
47
48 void resetDo() override;
49 void updateDo(fsS32 pDeltaMs) override;
50 void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
51
54
57
58private:
59
60 void transformationCreate(const fsCVariableTable& pVars);
61
62 fsBool childTransformationIncompleteGet() const;
63
64 fsCEntity* transformationParentGet();
65 fsBool entityHasTransformationComponentGet(const fsINode* pNode);
66
67 fsS32 mElapsedTime;
68 fsBool mReverse;
69
70 std::function<void()> mOnCompletionAction;
71};
72
73#endif
Definition fsCEntity.h:39
Definition fsCUniqueId.h:21
Definition fsCVariableTable.h:27
fsIComponent(fsCEntity *pParent)
Definition fsIComponent.cpp:86
Definition fsINode.h:30
virtual void transformationCreateDo(const fsCVariableTable &pVars)
Definition fsITransformationComponent.cpp:118
friend class fsCComponentFactory
Definition fsITransformationComponent.h:27
fsCEntity * mTransformationTarget
Definition fsITransformationComponent.h:55
virtual void simpleTransformSet(fsSColour pStart, fsSColour pEnd, fsS32 pDuration, std::function< void()> pCompletionAction=nullptr)
Definition fsITransformationComponent.cpp:37
fsBool reverseGet() const
Definition fsITransformationComponent.cpp:13
fsBool completeGet() const
Definition fsITransformationComponent.cpp:70
void reverseSet(fsBool pState)
Definition fsITransformationComponent.cpp:27
void resetDo() override
Definition fsITransformationComponent.cpp:32
static const fsStr mGraphKey
Definition fsITransformationComponent.h:38
fsITransformation * mTransformation
Definition fsITransformationComponent.h:56
fsS32 elapsedTimeGet() const
Definition fsITransformationComponent.cpp:18
void initialiseFromVariableTableDo(const fsCVariableTable &pVars) override
Definition fsITransformationComponent.cpp:124
void updateDo(fsS32 pDeltaMs) override
Definition fsITransformationComponent.cpp:77
static const fsCUniqueId mTypeId
Definition fsITransformationComponent.h:39
virtual void updateTransform()=0
virtual ~fsITransformationComponent()
Definition fsITransformationComponent.cpp:142
fsITransformationComponent(fsCEntity *pParent)
Definition fsITransformationComponent.cpp:133
Definition fsITransformation.h:23
Definition fsSColour.h:20
Definition fsStr.h:23
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28