3#include <Core/Animation/Pose.hpp>
4#include <Core/CoreMacros.hpp>
5#include <Core/Utils/CircularIndex.hpp>
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 );
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;
71 inline void insertCurrent(
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.
hepler function to manage enum as underlying types in VariableSet