Fission FSN
Loading...
Searching...
No Matches
fsIAnimatingSprite.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsIAnimatingSprite.h
4*
5* Purpose: Interface for animating sprites
6*
7*********************************************************************/
8
9#ifndef fsIAnimatingSpritehdr
10#define fsIAnimatingSpritehdr
11
12#include <memory>
13
14#include <fsCore/fsBaseTypes.h>
15
16#include "fsAnimationEvent.h"
17#include "fsIRenderable.h"
19
20class fsCResourceName;
21class fsAffineMtx2d;
22class fsStr;
25class fsCSpriteFrame;
26struct fsPoint;
27class fsSColour;
28class fsCSprite;
29class fsCBrush;
30
31
33{
34 friend std::shared_ptr<fsIAnimatingSprite> const fsCAnimationDataManager::createAnimationInstance(
35 std::shared_ptr<fsIAnimationData>, fsCSprite* pAnimatingRootSprt);
36
37public:
38
39 void animationPlay(const fsStr& pAnimation);
40 void animationPlay(const fsStr& pAnimation, fsBool pLooping);
41 fsBool animationQueue(const fsStr& pAnimation, fsBool pLooping);
42 fsBool animationTrackPlay(fsS32 pTrackIndex, const fsStr& pAnimation, fsBool pLooping);
43 fsBool animationTrackQueue(fsS32 pTrackIndex, const fsStr& pAnimation, fsBool pLooping);
44 fsBool animationTrackClear(fsS32 pTrackIndex);
46 void animationMixDurationSet(fsS32 pDurationMs);
47 fsBool skinSet(const fsStr& pSkin);
48 fsBool attachmentSet(const fsStr& pSlot, const fsStr& pAttachment);
50
53
54 void stop();
55
56 std::shared_ptr<fsCBrush> brushGet() const;
57 fsBool hitTest(const fsPoint& pPoint, fsBool pRequireHitMap) const;
58 // fsBool pixelCollisionCheck( fsISpriteRef pTarget );
59
60 fsS32 currentFrameGet() const;
61
62 void update(fsS32 pDeltaMS);
63
64 fsBool animatingGet() const;
65 fsBool loopingGet() const;
66
67
68 void reset();
69
70 fsIAnimatingSprite(const fsCResourceName& pFileName, fsBool pHitMap, fsCSprite* pAnimatingSpriteRoot);
71 fsIAnimatingSprite(fsCSprite* pAnimatingRootSprt);
72 virtual ~fsIAnimatingSprite();
73
74protected:
75
76 void animationDataSet(std::shared_ptr<fsIAnimationData> pAnimData);
77 void animationEventDispatch(const fsSAnimationEvent& pEvent) const;
78 void colourSetDo(const fsSColour4B& pColour) override;
79
80 virtual void animationPlayDo(const fsStr& pAnimation)
81 {
82 };
83 // Providers whose runtimes choose looping at playback time can override this
84 // overload. Existing providers retain their authored looping behaviour.
85 virtual void animationPlayDo(const fsStr& pAnimation, fsBool)
86 {
87 animationPlayDo(pAnimation);
88 };
90 {
91 return false;
92 }
94 {
95 return false;
96 }
98 {
99 return false;
100 }
102 {
103 return false;
104 }
106 {
107 }
109 {
110 }
111 virtual fsBool skinSetDo(const fsStr&)
112 {
113 return false;
114 }
115 virtual fsBool attachmentSetDo(const fsStr&, const fsStr&)
116 {
117 return false;
118 }
119
120 virtual void activeSet(fsBool pVisibility) = 0;
121 virtual void colourApplyToSpriteFrames(const fsSColour4B& pColour) = 0;
122 virtual void animationDataSetDo(std::shared_ptr<fsIAnimationData> pAnimData) = 0;
123
124 virtual fsS32 currentFrameHeightGetDo() const = 0;
125 virtual fsPoint currentFramePosGetDo() const = 0;
126
127 virtual std::shared_ptr<fsCBrush> brushGetDo() const;
128 virtual fsBool hitTestDo(const fsPoint& pPoint, fsBool pRequireHitMap) const = 0;
129 // virtual fsBool pixelCollisionCheckDo( fsISpriteRef pTarget ) = 0;
130
131 virtual fsS32 currentFrameGetDo() const = 0;
132 virtual void updateDo(fsS32 pDeltaMS) = 0;
133
134 virtual fsBool loopingGetDo() const = 0;
135 virtual void resetDo() = 0;
136
139
140private:
141 fsTAnimationEventCallback mAnimationEventCallback;
142};
143
144#endif
Definition fsAffineMtx2d.h:27
std::shared_ptr< fsIAnimatingSprite > const createAnimationInstance(std::shared_ptr< fsIAnimationData >, fsCSprite *pAnimatingRootSprt)
Definition fsCAnimationDataManager.cpp:42
Definition fsCAnimationTimeline.h:25
Definition fsCBrush.h:26
Definition fsCResourceName.h:32
Definition fsCSpriteFrame.h:29
Definition fsCSprite.h:24
void reset()
Definition fsIAnimatingSprite.cpp:138
virtual fsBool animationTrackQueueDo(fsS32, const fsStr &, fsBool)
Definition fsIAnimatingSprite.h:97
virtual fsBool attachmentSetDo(const fsStr &, const fsStr &)
Definition fsIAnimatingSprite.h:115
fsBool animationQueue(const fsStr &pAnimation, fsBool pLooping)
Definition fsIAnimatingSprite.cpp:29
void update(fsS32 pDeltaMS)
Definition fsIAnimatingSprite.cpp:123
virtual void animationTracksClearDo()
Definition fsIAnimatingSprite.h:105
fsBool animationTrackQueue(fsS32 pTrackIndex, const fsStr &pAnimation, fsBool pLooping)
Definition fsIAnimatingSprite.cpp:39
virtual void colourApplyToSpriteFrames(const fsSColour4B &pColour)=0
virtual fsBool animationTrackClearDo(fsS32)
Definition fsIAnimatingSprite.h:101
virtual std::shared_ptr< fsCBrush > brushGetDo() const
Definition fsIAnimatingSprite.cpp:9
virtual void animationPlayDo(const fsStr &pAnimation, fsBool)
Definition fsIAnimatingSprite.h:85
fsBool animationTrackClear(fsS32 pTrackIndex)
Definition fsIAnimatingSprite.cpp:44
virtual void updateDo(fsS32 pDeltaMS)=0
void animationTracksClear()
Definition fsIAnimatingSprite.cpp:49
fsBool loopingGet() const
Definition fsIAnimatingSprite.cpp:133
virtual fsS32 currentFrameGetDo() const =0
void animationPlay(const fsStr &pAnimation)
Definition fsIAnimatingSprite.cpp:19
void stop()
Definition fsIAnimatingSprite.cpp:102
virtual fsPoint currentFramePosGetDo() const =0
virtual void animationPlayDo(const fsStr &pAnimation)
Definition fsIAnimatingSprite.h:80
virtual void activeSet(fsBool pVisibility)=0
fsBool animationTrackPlay(fsS32 pTrackIndex, const fsStr &pAnimation, fsBool pLooping)
Definition fsIAnimatingSprite.cpp:34
fsS32 currentFrameGet() const
Definition fsIAnimatingSprite.cpp:118
virtual fsBool animationQueueDo(const fsStr &, fsBool)
Definition fsIAnimatingSprite.h:89
virtual ~fsIAnimatingSprite()
Definition fsIAnimatingSprite.cpp:156
virtual fsS32 currentFrameHeightGetDo() const =0
virtual fsBool animationTrackPlayDo(fsS32, const fsStr &, fsBool)
Definition fsIAnimatingSprite.h:93
virtual void animationDataSetDo(std::shared_ptr< fsIAnimationData > pAnimData)=0
fsIAnimatingSprite(const fsCResourceName &pFileName, fsBool pHitMap, fsCSprite *pAnimatingSpriteRoot)
Definition fsIAnimatingSprite.cpp:143
virtual fsBool loopingGetDo() const =0
fsBool attachmentSet(const fsStr &pSlot, const fsStr &pAttachment)
Definition fsIAnimatingSprite.cpp:64
void animationEventCallbackSet(fsTAnimationEventCallback pCallback)
Definition fsIAnimatingSprite.cpp:69
std::shared_ptr< fsCBrush > brushGet() const
Definition fsIAnimatingSprite.cpp:14
virtual void animationMixDurationSetDo(fsS32)
Definition fsIAnimatingSprite.h:108
fsCSprite * mAnimationRootSprt
Definition fsIAnimatingSprite.h:138
virtual fsBool skinSetDo(const fsStr &)
Definition fsIAnimatingSprite.h:111
void colourSetDo(const fsSColour4B &pColour) override
Definition fsIAnimatingSprite.cpp:82
virtual void resetDo()=0
virtual fsBool hitTestDo(const fsPoint &pPoint, fsBool pRequireHitMap) const =0
void animationMixDurationSet(fsS32 pDurationMs)
Definition fsIAnimatingSprite.cpp:54
fsPoint currentFramePosGet() const
Definition fsIAnimatingSprite.cpp:97
fsBool animatingGet() const
Definition fsIAnimatingSprite.cpp:128
void animationEventDispatch(const fsSAnimationEvent &pEvent) const
Definition fsIAnimatingSprite.cpp:74
fsS32 currentFrameHeightGet() const
Definition fsIAnimatingSprite.cpp:92
fsBool skinSet(const fsStr &pSkin)
Definition fsIAnimatingSprite.cpp:59
fsBool hitTest(const fsPoint &pPoint, fsBool pRequireHitMap) const
Definition fsIAnimatingSprite.cpp:107
fsBool mActive
Definition fsIAnimatingSprite.h:137
void animationDataSet(std::shared_ptr< fsIAnimationData > pAnimData)
Definition fsIAnimatingSprite.cpp:87
Definition fsIAnimationData.h:18
fsIRenderable()=default
Definition fsSColour.h:20
Definition fsStr.h:23
std::function< void(const fsSAnimationEvent &)> fsTAnimationEventCallback
Definition fsAnimationEvent.h:34
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
Definition fsPoint.h:17
Definition fsAnimationEvent.h:11
Definition fsSColour.h:54