15#ifndef OSGANIMATION_KEYFRAME_H
16#define OSGANIMATION_KEYFRAME_H
70 virtual unsigned int size()
const = 0;
95 std::vector<unsigned int> intervalSizes;
96 unsigned int intervalSize = 1;
97 for(++ keyframe ; keyframe !=
VectorType::end() ; ++ keyframe, ++ previous, ++ intervalSize) {
98 if(!(previous->getValue() == keyframe->getValue())) {
99 intervalSizes.push_back(intervalSize);
103 intervalSizes.push_back(intervalSize);
106 unsigned int cumul = 0;
108 for(std::vector<unsigned int>::iterator
iterator = intervalSizes.begin() ;
iterator != intervalSizes.end() ; ++
iterator) {
116 unsigned int count =
size() - deduplicated.
size();
117 this->
swap(deduplicated);
123 class TemplateKeyframeContainer<Vec3Packed> :
public osg::MixinVector<TemplateKeyframe<Vec3Packed> >,
public KeyframeContainer
126 typedef TemplateKeyframe<Vec3Packed>
KeyType;
129 const char* getKeyframeType() {
return "Vec3Packed" ;}
130 void init(
const osg::Vec3f& min,
const osg::Vec3f& scale) { _min = min; _scale = scale; }
The osgAnimation library provides general purpose utility classes for animation.
Definition Action:34
TemplateKeyframeContainer< DoubleCubicBezier > DoubleCubicBezierKeyframeContainer
Definition Keyframe:171
TemplateKeyframe< DoubleCubicBezier > DoubleCubicBezierKeyframe
Definition Keyframe:170
TemplateKeyframeContainer< osg::Vec3us > Vec3usKeyframeContainer
Definition Keyframe:150
TemplateKeyframeContainer< Vec3Packed > Vec3PackedKeyframeContainer
Definition Keyframe:165
TemplateKeyframeContainer< FloatCubicBezier > FloatCubicBezierKeyframeContainer
Definition Keyframe:168
TemplateKeyframeContainer< double > DoubleKeyframeContainer
Definition Keyframe:141
TemplateKeyframe< FloatCubicBezier > FloatCubicBezierKeyframe
Definition Keyframe:167
TemplateKeyframeContainer< float > FloatKeyframeContainer
Definition Keyframe:138
TemplateKeyframe< osg::Vec4 > Vec4Keyframe
Definition Keyframe:152
TemplateKeyframeContainer< osg::Vec4 > Vec4KeyframeContainer
Definition Keyframe:153
TemplateKeyframe< osg::Vec3us > Vec3usKeyframe
Definition Keyframe:149
TemplateKeyframe< Vec3Packed > Vec3PackedKeyframe
Definition Keyframe:164
TemplateKeyframe< Vec2CubicBezier > Vec2CubicBezierKeyframe
Definition Keyframe:173
TemplateKeyframeContainer< Vec3CubicBezier > Vec3CubicBezierKeyframeContainer
Definition Keyframe:177
TemplateKeyframe< osg::Matrixf > MatrixKeyframe
Definition Keyframe:161
TemplateKeyframe< osg::Vec2 > Vec2Keyframe
Definition Keyframe:143
TemplateKeyframeContainer< osg::Matrixf > MatrixKeyframeContainer
Definition Keyframe:162
TemplateKeyframe< double > DoubleKeyframe
Definition Keyframe:140
TemplateKeyframe< osg::Quat > QuatKeyframe
Definition Keyframe:155
TemplateKeyframeContainer< Vec4CubicBezier > Vec4CubicBezierKeyframeContainer
Definition Keyframe:180
TemplateKeyframe< float > FloatKeyframe
Definition Keyframe:137
TemplateKeyframe< Vec3CubicBezier > Vec3CubicBezierKeyframe
Definition Keyframe:176
TemplateKeyframeContainer< osg::Vec3 > Vec3KeyframeContainer
Definition Keyframe:147
TemplateKeyframeContainer< Vec2CubicBezier > Vec2CubicBezierKeyframeContainer
Definition Keyframe:174
TemplateKeyframeContainer< osg::Quat > QuatKeyframeContainer
Definition Keyframe:156
TemplateKeyframe< Vec4CubicBezier > Vec4CubicBezierKeyframe
Definition Keyframe:179
TemplateKeyframeContainer< osg::Vec2 > Vec2KeyframeContainer
Definition Keyframe:144
TemplateKeyframe< osg::Vec3 > Vec3Keyframe
Definition Keyframe:146
MixinVector is a base class that allows inheritance to be used to easily emulate derivation from std:...
Definition MixinVector:29
size_type size() const
Definition MixinVector:92
const_iterator end() const
Definition MixinVector:99
const_iterator begin() const
Definition MixinVector:97
void push_back(const value_type &value)
Definition MixinVector:117
void swap(vector_type &other)
Definition MixinVector:88
vector_type::iterator iterator
Definition MixinVector:39
Base class for providing reference counted objects.
Definition Referenced:44
double getTime() const
Definition Keyframe:36
double _time
Definition Keyframe:40
void setTime(double time)
Definition Keyframe:37
TemplateKeyframe(double time, const T &value)
Definition Keyframe:55
void setValue(const T &value)
Definition Keyframe:61
~TemplateKeyframe()
Definition Keyframe:53
TemplateKeyframe()
Definition Keyframe:52
T value_type
Definition Keyframe:50
const T & getValue() const
Definition Keyframe:62
Vec3Packed _value
Definition Keyframe:48
~KeyframeContainer()
Definition Keyframe:73
std::string _name
Definition Keyframe:74
virtual unsigned int linearInterpolationDeduplicate()=0
virtual unsigned int size() const =0
KeyframeContainer()
Definition Keyframe:69
osg::MixinVector< TemplateKeyframe< typename SamplerType::KeyframeType > > VectorType
Definition Keyframe:85
virtual unsigned int linearInterpolationDeduplicate()
Definition Keyframe:87
TemplateKeyframeContainer()
Definition Keyframe:83
virtual unsigned int size() const
Definition Keyframe:86
TemplateKeyframe< typename SamplerType::KeyframeType > KeyType
Definition Keyframe:84