Athena IO Library
SpriteFrame.hpp
1 #ifndef SSPRITEFRAME_HPP
2 #define SSPRITEFRAME_HPP
3 
4 
5 #include "athena/SakuraGlobal.hpp"
6 
7 #ifndef ATHENA_USE_QT
8 #include <vector>
9 #else
10 #include <QObject>
11 #include <QList>
12 #endif
13 
14 namespace athena
15 {
16 namespace Sakura
17 {
18 
19 class Sprite;
20 class SpritePart;
21 
22 #ifndef ATHENA_USE_QT
24 {
25 #else
26 class SpriteFrame : public QObject
27 {
28  Q_OBJECT
29  Q_PROPERTY(qreal frameTime READ frameTime WRITE setFrameTime)
30 #endif
31 public:
35  SpriteFrame();
36 
37  SpriteFrame(Sprite* root);
42  void setFrameTime(float frameTime);
43 
44 
49  float frameTime() const;
50 
51 #ifndef ATHENA_USE_QT
52  void setParts(std::vector<SpritePart*> parts);
53  std::vector<SpritePart*> parts() const;
54 #else
55  void setParts(QList<SpritePart*> parts);
56  QList<SpritePart*> parts() const;
57 #endif
58 
59  atUint32 partCount() const;
60 
61  void setRoot(Sprite* root);
62  Sprite* root() const;
63 #ifdef ATHENA_USE_QT
64 signals:
65  void frameTimeChanged(float);
66 #endif
67 private:
68  Sprite* m_root;
69  float m_frameTime;
70 #ifndef ATHENA_USE_QT
71  std::vector<SpritePart*> m_parts;
72 #else
73  QList<SpritePart*> m_parts;
74 #endif
75 };
76 
77 } // Sakura
78 } // zelda
79 
80 #ifdef ATHENA_USE_QT
81 Q_DECLARE_METATYPE(athena::Sakura::SpriteFrame*);
82 #endif
83 
84 #endif // SSPRITEFRAME_HPP
float frameTime() const
frameTime
SpriteFrame()
SSpriteFrame.
void setFrameTime(float frameTime)
setFrameTime