13 #ifndef OSG_ANIMATIONMATERIAL
14 #define OSG_ANIMATIONMATERIAL 1
16 #include <osg/Material>
17 #include <osg/Callback>
19 #include <osgPresentation/Export>
39 _timeControlPointMap(ap._timeControlPointMap),
40 _loopMode(ap._loopMode) {}
50 double getFirstTime()
const {
if (!_timeControlPointMap.empty())
return _timeControlPointMap.begin()->first;
else return 0.0;}
51 double getLastTime()
const {
if (!_timeControlPointMap.empty())
return _timeControlPointMap.rbegin()->first;
else return 0.0;}
52 double getPeriod()
const {
return getLastTime()-getFirstTime();}
73 void read(std::istream& in);
76 void write(std::ostream& out)
const;
78 bool requiresBlending()
const;
106 osg::NodeCallback(apc,copyop),
107 _animationMaterial(apc._animationMaterial),
108 _useInverseMatrix(apc._useInverseMatrix),
109 _timeOffset(apc._timeOffset),
110 _timeMultiplier(apc._timeMultiplier),
111 _firstTime(apc._firstTime),
112 _latestTime(apc._latestTime),
114 _pauseTime(apc._pauseTime) {}
120 _animationMaterial(ap),
121 _useInverseMatrix(false),
122 _timeOffset(timeOffset),
123 _timeMultiplier(timeMultiplier),
143 void setPause(
bool pause);
147 double getAnimationTime()
const;
void setTimeMultiplier(double multiplier)
TimeControlPointMap _timeControlPointMap
std::map< double, osg::ref_ptr< osg::Material > > TimeControlPointMap
#define OSGPRESENTATION_EXPORT
LoopMode getLoopMode() const
const AnimationMaterial * getAnimationMaterial() const
~AnimationMaterialCallback()
const TimeControlPointMap & getTimeControlPointMap() const
double getLastTime() const
AnimationMaterialCallback(AnimationMaterial *ap, double timeOffset=0.0f, double timeMultiplier=1.0f)
AnimationMaterialCallback()
AnimationMaterial * getAnimationMaterial()
#define META_Object(library, name)
double getFirstTime() const
virtual ~AnimationMaterial()
AnimationMaterial(const AnimationMaterial &ap, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
void setTimeOffset(double offset)
osg::ref_ptr< AnimationMaterial > _animationMaterial
TimeControlPointMap & getTimeControlPointMap()
double getTimeOffset() const
void setLoopMode(LoopMode lm)
AnimationMaterialCallback(const AnimationMaterialCallback &apc, const osg::CopyOp ©op)
double getTimeMultiplier() const
void setAnimationMaterial(AnimationMaterial *path)