2 #ifndef _YI_SPRITE_SCENE_NODE_H_ 3 #define _YI_SPRITE_SCENE_NODE_H_ 61 std::vector<uint32_t> m_frameSequence;
80 virtual void OnSequenceIndexChanged(uint32_t uAnimationIndex, uint32_t uNewSequenceIndex) = 0;
112 uint32_t
AddSpriteSheet(std::unique_ptr<SpriteSheet> pSpriteSheet);
146 #ifdef YI_FUNCTION_SPECIALIZATION_FULLY_SUPPORTED 148 inline const CYISpriteSceneNode *YiDynamicCast<CYISpriteSceneNode>(
const CYISceneNode *pObject)
150 return pObject ? (pObject->CanCastTo<CYISpriteSceneNode>() ? static_cast<const CYISpriteSceneNode *>(pObject) :
nullptr) :
nullptr;
154 #endif // _YI_SPRITE_SCENE_NODE_H_ #define YI_DISALLOW_COPY_AND_ASSIGN(TypeName)
Delete the copy constructor and assignment operator (and consequently the move constructor as well) ...
Definition: YiPredef.h:114
const SpriteAnimation * m_pCurrentAnimation
Definition: YiSpriteSceneNode.h:135
std::vector< std::unique_ptr< SpriteSheet > > m_SpriteSheets
Definition: YiSpriteSceneNode.h:132
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
virtual void OnAnimationBegin(CYIAnimation *pAnim) override
uint32_t AddSpriteAnimation(std::unique_ptr< SpriteAnimation > pSpriteAnimation)
uint32_t GetLoops() const
DIRECTION
Definition: YiAnimation.h:51
Specialized CYISceneNode implementing a sprite.
Definition: YiSpriteSceneNode.h:21
Definition: YiSpriteSheet.h:21
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
uint32_t GetSequenceIndexAtPercentage(float fPercentage) const
virtual void OnAnimationEnd(CYIAnimation *pAnim) override
uint32_t AddSpriteSheet(std::unique_ptr< SpriteSheet > pSpriteSheet)
void SetListener(Listener *pListener)
Listener * m_pListener
Definition: YiSpriteSceneNode.h:136
virtual ~CYISpriteSceneNode()
uint32_t GetIndex() const
Definition: YiSpriteSceneNode.h:28
std::unique_ptr< CYIAnimation > m_pAnimationDriver
Definition: YiSpriteSceneNode.h:131
virtual ~Listener()
Definition: YiSpriteSceneNode.h:75
Listener()
Definition: YiSpriteSceneNode.h:74
void UpdateSpriteFrame(uint32_t uSequenceIndex) const
SpriteAnimation(SpriteSheet *pSpriteSheet, std::vector< uint32_t > &frameSequence, uint32_t uFPS, uint32_t uLoops)
uint32_t m_uCurrentSequenceIndex
Definition: YiSpriteSceneNode.h:134
A scene node is the base type for all nodes which are used by the scene manager; it is an integral pa...
Definition: YiSceneNode.h:114
virtual void OnAnimate(CYIAnimation *pAnim, float fDataPosition) override
const std::vector< uint32_t > & GetFrameSequence() const
void SetIndex(uint32_t uIndex)
Definition: YiSpriteSceneNode.h:71
std::vector< std::unique_ptr< SpriteAnimation > > m_SpriteAnimations
Definition: YiSpriteSceneNode.h:133
const SpriteAnimation * GetSpriteAnimation(uint32_t uIndex) const
CYIAnimation::DIRECTION GetDirection() const
SpriteSheet * GetSpriteSheet() const
Used to create animations programatically.
Definition: YiAnimation.h:32
STATUS
Definition: YiAnimation.h:42
Base class used to listen to one or more CYIAnimations as they update over time.
Definition: YiAnimation.h:65
void SetCurrentAnimation(uint32_t nAnimationIndex)
CYIAnimation::STATUS GetStatus() const