11 #ifndef hifi_AnimManipulator_h
12 #define hifi_AnimManipulator_h
18 class AnimManipulator :
public AnimNode {
20 friend class AnimTests;
22 AnimManipulator(
const QString&
id,
float alpha);
23 virtual ~AnimManipulator()
override;
25 virtual const AnimPoseVec& evaluate(
const AnimVariantMap& animVars,
const AnimContext& context,
float dt, AnimVariantMap& triggersOut)
override;
26 virtual const AnimPoseVec& overlay(
const AnimVariantMap& animVars,
const AnimContext& context,
float dt, AnimVariantMap& triggersOut,
const AnimPoseVec& underPoses)
override;
28 void setAlphaVar(
const QString& alphaVar) { _alphaVar = alphaVar; }
30 virtual void setSkeletonInternal(AnimSkeleton::ConstPointer skeleton)
override;
41 JointVar(
const QString& jointNameIn, Type rotationType, Type translationType,
const QString& rotationVarIn,
const QString& translationVarIn);
42 QString jointName =
"";
43 Type rotationType = Type::Absolute;
44 Type translationType = Type::Absolute;
45 QString rotationVar =
"";
46 QString translationVar =
"";
49 bool hasPerformedJointLookup =
false;
50 bool isRelative =
false;
53 void addJointVar(
const JointVar& jointVar);
54 void removeAllJointVars();
58 virtual const AnimPoseVec& getPosesInternal()
const override;
60 AnimPose computeRelativePoseFromJointVar(
const AnimVariantMap& animVars,
const JointVar& jointVar,
61 const AnimPose& defaultRelPose,
const AnimPoseVec& underPoses);
67 std::vector<JointVar> _jointVars;
70 AnimManipulator(
const AnimManipulator&) =
delete;
71 AnimManipulator& operator=(
const AnimManipulator&) =
delete;