15#include <vsg/animation/Animation.h>
16#include <vsg/animation/time_value.h>
17#include <vsg/app/ViewMatrix.h>
18#include <vsg/maths/transform.h>
23 using VectorKey = time_dvec3;
24 using QuatKey = time_dquat;
26 class VSG_DECLSPEC TransformKeyframes :
public Inherit<Object, TransformKeyframes>
50 void add(
double time,
const dvec3& position,
const dquat& rotation)
52 positions.push_back(VectorKey{time, position});
53 rotations.push_back(QuatKey{time, rotation});
56 void add(
double time,
const dvec3& position,
const dquat& rotation,
const dvec3& scale)
58 positions.push_back(VectorKey{time, position});
59 rotations.push_back(QuatKey{time, rotation});
60 scales.push_back(VectorKey{time, scale});
63 void read(Input& input)
override;
64 void write(Output& output)
const override;
66 VSG_type_name(vsg::TransformKeyframes);
69 class VSG_DECLSPEC TransformSampler :
public Inherit<AnimationSampler, TransformSampler>
73 TransformSampler(
const TransformSampler& rhs,
const CopyOp& copyop = {});
83 void update(
double time)
override;
84 double maxTime()
const override;
86 inline dmat4 transform()
const {
return translate(position) * vsg::rotate(rotation) * vsg::scale(scale); }
92 void read(
Input& input)
override;
93 void write(
Output& output)
const override;
95 void apply(mat4Value& mat)
override;
96 void apply(dmat4Value& mat)
override;
98 void apply(
Joint& joint)
override;
99 void apply(
LookAt& lookAt)
override;
100 void apply(
Camera& camera)
override;
LookAt is a ViewMatrix that implements the gluLookAt model for specifying the view matrix.
Definition ViewMatrix.h:53