3 #include <Core/Animation/Pose.hpp>
4 #include <Core/CoreMacros.hpp>
5 #include <Core/Utils/CircularIndex.hpp>
13 using FrameSet = std::vector<Frame>;
25 enum class PoseType { Pose_RELATIVE, Pose_ABSOLUTE };
35 virtual uint
size()
const = 0;
43 inline void setPoseType(
const PoseType& type );
47 virtual void setSequence(
const FrameSet& set );
50 virtual Frame
frame(
const int i )
const = 0;
51 virtual void setFrame(
const int i,
const Frame&
frame );
53 inline Frame nextFrame()
const;
54 inline Frame prevFrame()
const;
55 inline Frame currentFrame()
const;
56 inline Frame firstFrame()
const;
57 inline Frame lastFrame()
const;
61 inline uint prevFrameIndex()
const;
62 inline uint currentFrameIndex()
const;
63 inline uint firstFrameIndex()
const;
64 inline uint lastFrameIndex()
const;
69 inline void insertNext(
const Frame&
frame );
70 inline void insertPrev(
const Frame&
frame );
71 inline void insertCurrent(
const Frame&
frame );
72 inline void insertFirst(
const Frame&
frame );
73 inline void insertLast(
const Frame&
frame );
77 inline void removeNext();
78 inline void removePrev();
79 inline void removeCurrent();
80 inline void removeFirst();
81 inline void removeLast();
85 inline void moveToNextFrame();
86 inline void moveToPrevFrame();
87 inline void moveToFirstFrame();
88 inline void moveToLastFrame();
93 Utils::CircularIndex m_idx;
virtual FrameSet getSequence() const =0
SEQUENCE INTERFACE.
virtual uint size() const =0
SIZE INTERFACE.
bool isEmpty() const
QUERY.
virtual void clear()
INTERFACE.
virtual ~Sequence()
DESTRUCTOR.
virtual void insertFrame(const Frame &frame, const int i)
INSERT POSE.
virtual Frame frame(const int i) const =0
POSE INTERFACE.
PoseType getPoseType() const
POSE TYPE.
virtual void removeFrame(const int i)
REMOVE POSE.
void moveToFrame(const int i)
SEQUENCE FLOW.
uint nextFrameIndex() const
INDEX.