11 #ifndef hifi_AnimClip_h
12 #define hifi_AnimClip_h
15 #include "AnimationCache.h"
24 class AnimClip :
public AnimNode {
26 friend class AnimTests;
28 AnimClip(
const QString&
id,
const QString& url,
float startFrame,
float endFrame,
float timeScale,
bool loopFlag,
bool mirrorFlag,
29 AnimBlendType blendType,
const QString& baseURL,
float baseFrame);
30 virtual ~AnimClip()
override;
32 virtual const AnimPoseVec& evaluate(
const AnimVariantMap& animVars,
const AnimContext& context,
float dt, AnimVariantMap& triggersOut)
override;
34 void setStartFrameVar(
const QString& startFrameVar) { _startFrameVar = startFrameVar; }
35 void setEndFrameVar(
const QString& endFrameVar) { _endFrameVar = endFrameVar; }
36 void setTimeScaleVar(
const QString& timeScaleVar) { _timeScaleVar = timeScaleVar; }
37 void setLoopFlagVar(
const QString& loopFlagVar) { _loopFlagVar = loopFlagVar; }
38 void setMirrorFlagVar(
const QString& mirrorFlagVar) { _mirrorFlagVar = mirrorFlagVar; }
39 void setFrameVar(
const QString& frameVar) { _frameVar = frameVar; }
41 float getStartFrame()
const {
return _startFrame; }
42 void setStartFrame(
float startFrame) { _startFrame = startFrame; }
43 float getEndFrame()
const {
return _endFrame; }
44 void setEndFrame(
float endFrame) { _endFrame = endFrame; }
46 void setTimeScale(
float timeScale) { _timeScale = timeScale; }
47 float getTimeScale()
const {
return _timeScale; }
49 bool getLoopFlag()
const {
return _loopFlag; }
50 void setLoopFlag(
bool loopFlag) { _loopFlag = loopFlag; }
52 bool getMirrorFlag()
const {
return _mirrorFlag; }
53 void setMirrorFlag(
bool mirrorFlag) { _mirrorFlag = mirrorFlag; }
55 float getFrame()
const {
return _frame; }
56 void loadURL(
const QString& url);
58 AnimBlendType getBlendType()
const {
return _blendType; };
62 virtual void setCurrentFrameInternal(
float frame)
override;
64 void buildMirrorAnim();
67 virtual const AnimPoseVec& getPosesInternal()
const override;
69 AnimationPointer _networkAnim;
70 AnimationPointer _baseNetworkAnim;
75 std::vector<AnimPoseVec> _anim;
76 std::vector<AnimPoseVec> _mirrorAnim;
85 AnimBlendType _blendType;
89 QString _startFrameVar;
91 QString _timeScaleVar;
93 QString _mirrorFlagVar;
97 AnimClip(
const AnimClip&) =
delete;
98 AnimClip& operator=(
const AnimClip&) =
delete;