EaseMotion
Go to the documentation of this file.
/* -*-c++-*-
* Copyright (C) 2008 Cedric Pinson <cedric.pinson@plopbyte.net>
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGANIMATION_EASE_MOTION
#define OSGANIMATION_EASE_MOTION 1
#include <osg/Referenced>
#include <osg/ref_ptr>
#include <osg/Notify>
#include <osg/Math>
#include <vector>
namespace osgAnimation
{
struct OutBounceFunction
{
inline static void getValueAt(float t, float& result)
{
if ((t) < (1/2.75))
{
result = 7.5625 * t * t;
}
else if (t < (2/2.75))
{
t = t - (1.5/2.75);
result = 7.5625* t * t + .75;
}
else if (t < (2.5/2.75))
{
t = t - (2.25/2.75);
result = 7.5625 * t * t + .9375;
}
else
{
t = t - (2.625/2.75);
result = 7.5625* t * t + .984375;
}
}
};
struct InBounceFunction
{
inline static void getValueAt(float t, float& result)
{
OutBounceFunction::getValueAt(1-t, result);
result = 1 - result;
}
};
struct InOutBounceFunction
{
inline static void getValueAt(float t, float& result)
{
if (t < 0.5)
{
InBounceFunction::getValueAt(t * 2, result);
result *= 0.5;
}
else
{
OutBounceFunction::getValueAt(t * 2 - 1 , result);
result = result * 0.5 + 0.5;
}
}
};
struct LinearFunction
{
inline static void getValueAt(float t, float& result) { result = t;}
};
struct OutQuadFunction
{
inline static void getValueAt(float t, float& result) { result = - (t * (t -2.0));}
};
struct InQuadFunction
{
inline static void getValueAt(float t, float& result) { result = t*t;}
};
struct InOutQuadFunction
{
inline static void getValueAt(float t, float& result)
{
t *= 2.0;
if (t < 1.0)
result = 0.5 * t * t;
else
{
t -= 1.0;
result = - 0.5 * (t * ( t - 2) - 1);
}
}
};
struct OutCubicFunction
{
inline static void getValueAt(float t, float& result) { t = t-1.0; result = t*t*t + 1;}
};
struct InCubicFunction
{
inline static void getValueAt(float t, float& result) { result = t*t*t;}
};
struct InOutCubicFunction
{
inline static void getValueAt(float t, float& result)
{
t *= 2.0f;
if (t < 1.0f)
result = 0.5f * t * t * t;
else {
t -= 2.0f;
result = 0.5 * (t * t * t + 2.0f);
}
}
};
struct InQuartFunction
{
inline static void getValueAt(float t, float& result) { result = t*t*t*t*t;}
};
struct OutQuartFunction
{
inline static void getValueAt(float t, float& result) { t = t - 1; result = - (t*t*t*t -1); }
};
struct InOutQuartFunction
{
inline static void getValueAt(float t, float& result)
{
t = t * 2.0;
if ( t < 1)
result = 0.5*t*t*t*t;
else
{
t -= 2.0;
result = -0.5 * (t*t*t*t -2);
}
}
};
struct OutElasticFunction
{
inline static void getValueAt(float t, float& result)
{
result = pow(2.0f, -10.0f * t) * sinf((t - 0.3f / 4.0f) * (2.0f * osg::PI) / 0.3f) + 1.0f;
}
};
struct InElasticFunction
{
inline static void getValueAt(float t, float& result)
{
OutElasticFunction::getValueAt(1.0f - t, result);
result = 1.0f - result;
}
};
struct InOutElasticFunction
{
inline static void getValueAt(float t, float& result)
{
t *= 2.0f;
if (t < 1.0f)
{
t -= 1.0f;
result = -0.5 * (1.0f * pow(2.0f, 10.0f * t) * sinf((t - 0.45f / 4.0f) * (2.0f * osg::PI) / 0.45f));
}
else
{
t -= 1.0f;
result = pow(2.0f, -10.0f * t) * sinf((t - 0.45f / 4.0f) * (2.0f * osg::PI) / 0.45f) * 0.5f + 1.0f;
}
}
};
// Sine function
struct OutSineFunction
{
inline static void getValueAt(float t, float& result)
{
result = sinf(t * (osg::PI / 2.0f));
}
};
struct InSineFunction
{
inline static void getValueAt(float t, float& result)
{
result = -cosf(t * (osg::PI / 2.0f)) + 1.0f;
}
};
struct InOutSineFunction
{
inline static void getValueAt(float t, float& result)
{
result = -0.5f * (cosf((osg::PI * t)) - 1.0f);
}
};
// Back function
struct OutBackFunction
{
inline static void getValueAt(float t, float& result)
{
t -= 1.0f;
result = t * t * ((1.70158 + 1.0f) * t + 1.70158) + 1.0f;
}
};
struct InBackFunction
{
inline static void getValueAt(float t, float& result)
{
result = t * t * ((1.70158 + 1.0f) * t - 1.70158);
}
};
struct InOutBackFunction
{
inline static void getValueAt(float t, float& result)
{
float s = 1.70158 * 1.525f;
t *= 2.0f;
if (t < 1.0f)
{
result = 0.5f * (t * t * ((s + 1.0f) * t - s));
}
else
{
float p = t -= 2.0f;
result = 0.5f * ((p) * t * ((s + 1.0f) * t + s) + 2.0f);
}
}
};
// Circ function
struct OutCircFunction
{
inline static void getValueAt(float t, float& result)
{
t -= 1.0f;
result = sqrt(1.0f - t * t);
}
};
struct InCircFunction
{
inline static void getValueAt(float t, float& result)
{
result = -(sqrt(1.0f - (t * t)) - 1.0f);
}
};
struct InOutCircFunction
{
inline static void getValueAt(float t, float& result)
{
t *= 2.0f;
if (t < 1.0f)
{
result = -0.5f * (sqrt(1.0f - t * t) - 1.0f);
}
else
{
t -= 2.0f;
result = 0.5f * (sqrt(1 - t * t) + 1.0f);
}
}
};
// Expo function
struct OutExpoFunction
{
inline static void getValueAt(float t, float& result)
{
if(t == 1.0f)
{
result = 0.0f;
}
else
{
result = -powf(2.0f, -10.0f * t) + 1.0f;
}
}
};
struct InExpoFunction
{
inline static void getValueAt(float t, float& result)
{
if(t == 0.0f)
{
result = 0.0f;
}
else
{
result = powf(2.0f, 10.0f * (t - 1.0f));
}
}
};
struct InOutExpoFunction
{
inline static void getValueAt(float t, float& result)
{
if(t == 0.0f || t == 1.0f)
{
result = 0.0f;
}
else
{
t *= 2.0f;
if(t < 1.0f)
{
result = 0.5f * powf(2.0f, 10.0f * (t - 1.0f));
}
else
{
result = 0.5f * (-powf(2.0f, -10.0f * (t - 1.0f)) + 2.0f);
}
}
}
};
class Motion : public osg::Referenced
{
public:
typedef float value_type;
enum TimeBehaviour
{
CLAMP,
LOOP
};
Motion(float startValue = 0, float duration = 1, float changeValue = 1, TimeBehaviour tb = CLAMP) : _time(0), _startValue(startValue), _changeValue(changeValue), _duration(duration), _behaviour(tb) {}
virtual ~Motion() {}
void reset() { setTime(0);}
float getTime() const { return _time; }
float evaluateTime(float time) const
{
switch (_behaviour)
{
case CLAMP:
if (time > _duration)
time = _duration;
else if (time < 0.0)
time = 0.0;
break;
case LOOP:
if (time <= 0)
time = 0;
else
time = fmodf(time, _duration);
break;
}
return time;
}
void update(float dt)
{
_time = evaluateTime(_time + dt);
}
void setTime(float time) { _time = evaluateTime(time);}
void getValue(value_type& result) const { getValueAt(_time, result); }
value_type getValue() const
{
value_type result;
getValueAt(_time, result);
return result;
}
void getValueAt(float time, value_type& result) const
{
getValueInNormalizedRange(evaluateTime(time)/_duration, result);
result = result * _changeValue + _startValue;
}
value_type getValueAt(float time) const
{
value_type result;
getValueAt(evaluateTime(time), result);
return result;
}
virtual void getValueInNormalizedRange(float t, value_type& result) const = 0;
float getDuration() const { return _duration;}
protected:
float _time;
float _startValue;
float _changeValue;
float _duration;
TimeBehaviour _behaviour;
};
template <typename T>
struct MathMotionTemplate : public Motion
{
MathMotionTemplate(float startValue = 0, float duration = 1, float changeValue = 1, TimeBehaviour tb = CLAMP) : Motion(startValue, duration, changeValue, tb) {}
virtual void getValueInNormalizedRange(float t, value_type& result) const { T::getValueAt(t, result); }
};
template <class T>
struct SamplerMotionTemplate : public Motion
{
T _sampler;
SamplerMotionTemplate(float startValue = 0, float duration = 1, float changeValue = 1, TimeBehaviour tb = CLAMP) : Motion(startValue, duration, changeValue, tb) {}
T& getSampler() { return _sampler;}
const T& getSampler() const { return _sampler;}
virtual void getValueInNormalizedRange(float t, value_type& result) const
{
if (!_sampler.getKeyframeContainer())
{
result = 0;
return;
}
float size = _sampler.getEndTime() - _sampler.getStartTime();
t = t * size + _sampler.getStartTime();
_sampler.getValueAt(t, result);
}
};
struct CompositeMotion : public Motion
{
typedef std::vector<osg::ref_ptr<Motion> > MotionList;
MotionList _motions;
MotionList& getMotionList() { return _motions; }
const MotionList& getMotionList() const { return _motions; }
CompositeMotion(float startValue = 0, float duration = 1, float changeValue = 1, TimeBehaviour tb = CLAMP) : Motion(startValue, duration, changeValue, tb) {}
virtual void getValueInNormalizedRange(float t, value_type& result) const
{
if (_motions.empty())
{
result = 0;
osg::notify(osg::WARN) << "CompositeMotion::getValueInNormalizedRange no Motion in the CompositeMotion, add motion to have result" << std::endl;
return;
}
for (MotionList::const_iterator it = _motions.begin(); it != _motions.end(); ++it)
{
const Motion* motion = static_cast<const Motion*>(it->get());
float durationInRange = motion->getDuration() / getDuration();
if (t < durationInRange)
{
float tInRange = t/durationInRange * motion->getDuration();
motion->getValueAt( tInRange, result);
return;
} else
t = t - durationInRange;
}
osg::notify(osg::WARN) << "CompositeMotion::getValueInNormalizedRange did find the value in range, something wrong" << std::endl;
result = 0;
}
};
// linear
typedef MathMotionTemplate<LinearFunction > LinearMotion;
// quad
typedef MathMotionTemplate<OutQuadFunction > OutQuadMotion;
typedef MathMotionTemplate<InQuadFunction> InQuadMotion;
typedef MathMotionTemplate<InOutQuadFunction> InOutQuadMotion;
// cubic
typedef MathMotionTemplate<OutCubicFunction > OutCubicMotion;
typedef MathMotionTemplate<InCubicFunction> InCubicMotion;
typedef MathMotionTemplate<InOutCubicFunction> InOutCubicMotion;
// quart
typedef MathMotionTemplate<OutQuartFunction > OutQuartMotion;
typedef MathMotionTemplate<InQuartFunction> InQuartMotion;
typedef MathMotionTemplate<InOutQuartFunction> InOutQuartMotion;
// bounce
typedef MathMotionTemplate<OutBounceFunction > OutBounceMotion;
typedef MathMotionTemplate<InBounceFunction> InBounceMotion;
typedef MathMotionTemplate<InOutBounceFunction> InOutBounceMotion;
// elastic
typedef MathMotionTemplate<OutElasticFunction > OutElasticMotion;
typedef MathMotionTemplate<InElasticFunction > InElasticMotion;
typedef MathMotionTemplate<InOutElasticFunction > InOutElasticMotion;
// sine
typedef MathMotionTemplate<OutSineFunction > OutSineMotion;
typedef MathMotionTemplate<InSineFunction > InSineMotion;
typedef MathMotionTemplate<InOutSineFunction > InOutSineMotion;
// back
typedef MathMotionTemplate<OutBackFunction > OutBackMotion;
typedef MathMotionTemplate<InBackFunction > InBackMotion;
typedef MathMotionTemplate<InOutBackFunction > InOutBackMotion;
// circ
typedef MathMotionTemplate<OutCircFunction > OutCircMotion;
typedef MathMotionTemplate<InCircFunction > InCircMotion;
typedef MathMotionTemplate<InOutCircFunction > InOutCircMotion;
// expo
typedef MathMotionTemplate<OutExpoFunction > OutExpoMotion;
typedef MathMotionTemplate<InExpoFunction > InExpoMotion;
typedef MathMotionTemplate<InOutExpoFunction > InOutExpoMotion;
}
#endif
Math
Notify
Referenced
osgAnimation::Motion::getValue
value_type getValue() const
Definition EaseMotion:387
osgAnimation::Motion::_changeValue
float _changeValue
Definition EaseMotion:412
osgAnimation::Motion::getDuration
float getDuration() const
Definition EaseMotion:408
osgAnimation::Motion::getValueAt
void getValueAt(float time, value_type &result) const
Definition EaseMotion:394
osgAnimation::Motion::evaluateTime
float evaluateTime(float time) const
Definition EaseMotion:360
osgAnimation::Motion::getValueAt
value_type getValueAt(float time) const
Definition EaseMotion:399
osgAnimation::Motion::reset
void reset()
Definition EaseMotion:358
osgAnimation::Motion::_behaviour
TimeBehaviour _behaviour
Definition EaseMotion:414
osgAnimation::Motion::_duration
float _duration
Definition EaseMotion:413
osgAnimation::Motion::update
void update(float dt)
Definition EaseMotion:380
osgAnimation::Motion::_time
float _time
Definition EaseMotion:410
osgAnimation::Motion::~Motion
virtual ~Motion()
Definition EaseMotion:357
osgAnimation::Motion::value_type
float value_type
Definition EaseMotion:350
osgAnimation::Motion::getValue
void getValue(value_type &result) const
Definition EaseMotion:386
osgAnimation::Motion::getValueInNormalizedRange
virtual void getValueInNormalizedRange(float t, value_type &result) const =0
osgAnimation::Motion::getTime
float getTime() const
Definition EaseMotion:359
osgAnimation::Motion::Motion
Motion(float startValue=0, float duration=1, float changeValue=1, TimeBehaviour tb=CLAMP)
Definition EaseMotion:356
osgAnimation::Motion::TimeBehaviour
TimeBehaviour
Definition EaseMotion:352
osgAnimation::Motion::LOOP
@ LOOP
Definition EaseMotion:354
osgAnimation::Motion::CLAMP
@ CLAMP
Definition EaseMotion:353
osgAnimation::Motion::setTime
void setTime(float time)
Definition EaseMotion:385
osgAnimation::Motion::_startValue
float _startValue
Definition EaseMotion:411
osg::Referenced
Definition Referenced:44
osgAnimation
Definition Action:34
osgAnimation::OutQuartMotion
MathMotionTemplate< OutQuartFunction > OutQuartMotion
Definition EaseMotion:495
osgAnimation::InQuadMotion
MathMotionTemplate< InQuadFunction > InQuadMotion
Definition EaseMotion:486
osgAnimation::InOutQuadMotion
MathMotionTemplate< InOutQuadFunction > InOutQuadMotion
Definition EaseMotion:487
osgAnimation::OutExpoMotion
MathMotionTemplate< OutExpoFunction > OutExpoMotion
Definition EaseMotion:525
osgAnimation::OutQuadMotion
MathMotionTemplate< OutQuadFunction > OutQuadMotion
Definition EaseMotion:485
osgAnimation::InQuartMotion
MathMotionTemplate< InQuartFunction > InQuartMotion
Definition EaseMotion:496
osgAnimation::InCircMotion
MathMotionTemplate< InCircFunction > InCircMotion
Definition EaseMotion:521
osgAnimation::InExpoMotion
MathMotionTemplate< InExpoFunction > InExpoMotion
Definition EaseMotion:526
osgAnimation::OutCubicMotion
MathMotionTemplate< OutCubicFunction > OutCubicMotion
Definition EaseMotion:490
osgAnimation::InOutBounceMotion
MathMotionTemplate< InOutBounceFunction > InOutBounceMotion
Definition EaseMotion:502
osgAnimation::LinearMotion
MathMotionTemplate< LinearFunction > LinearMotion
Definition EaseMotion:482
osgAnimation::InCubicMotion
MathMotionTemplate< InCubicFunction > InCubicMotion
Definition EaseMotion:491
osgAnimation::InBounceMotion
MathMotionTemplate< InBounceFunction > InBounceMotion
Definition EaseMotion:501
osgAnimation::InOutCubicMotion
MathMotionTemplate< InOutCubicFunction > InOutCubicMotion
Definition EaseMotion:492
osgAnimation::InOutCircMotion
MathMotionTemplate< InOutCircFunction > InOutCircMotion
Definition EaseMotion:522
osgAnimation::InSineMotion
MathMotionTemplate< InSineFunction > InSineMotion
Definition EaseMotion:511
osgAnimation::OutBounceMotion
MathMotionTemplate< OutBounceFunction > OutBounceMotion
Definition EaseMotion:500
osgAnimation::InOutElasticMotion
MathMotionTemplate< InOutElasticFunction > InOutElasticMotion
Definition EaseMotion:507
osgAnimation::InOutSineMotion
MathMotionTemplate< InOutSineFunction > InOutSineMotion
Definition EaseMotion:512
osgAnimation::InOutExpoMotion
MathMotionTemplate< InOutExpoFunction > InOutExpoMotion
Definition EaseMotion:527
osgAnimation::OutBackMotion
MathMotionTemplate< OutBackFunction > OutBackMotion
Definition EaseMotion:515
osgAnimation::InOutBackMotion
MathMotionTemplate< InOutBackFunction > InOutBackMotion
Definition EaseMotion:517
osgAnimation::OutSineMotion
MathMotionTemplate< OutSineFunction > OutSineMotion
Definition EaseMotion:510
osgAnimation::OutElasticMotion
MathMotionTemplate< OutElasticFunction > OutElasticMotion
Definition EaseMotion:505
osgAnimation::InElasticMotion
MathMotionTemplate< InElasticFunction > InElasticMotion
Definition EaseMotion:506
osgAnimation::InOutQuartMotion
MathMotionTemplate< InOutQuartFunction > InOutQuartMotion
Definition EaseMotion:497
osgAnimation::OutCircMotion
MathMotionTemplate< OutCircFunction > OutCircMotion
Definition EaseMotion:520
osgAnimation::InBackMotion
MathMotionTemplate< InBackFunction > InBackMotion
Definition EaseMotion:516
osg::WARN
@ WARN
Definition Notify:33
osg::PI
const double PI
Definition Math:30
osg::notify
std::ostream & notify(void)
Definition Notify:80
ref_ptr
osgAnimation::CompositeMotion::MotionList
std::vector< osg::ref_ptr< Motion > > MotionList
Definition EaseMotion:448
osgAnimation::CompositeMotion::getMotionList
MotionList & getMotionList()
Definition EaseMotion:451
osgAnimation::CompositeMotion::CompositeMotion
CompositeMotion(float startValue=0, float duration=1, float changeValue=1, TimeBehaviour tb=CLAMP)
Definition EaseMotion:453
osgAnimation::CompositeMotion::getValueInNormalizedRange
virtual void getValueInNormalizedRange(float t, value_type &result) const
Definition EaseMotion:455
osgAnimation::CompositeMotion::_motions
MotionList _motions
Definition EaseMotion:449
osgAnimation::CompositeMotion::getMotionList
const MotionList & getMotionList() const
Definition EaseMotion:452
osgAnimation::InBackFunction
Definition EaseMotion:233
osgAnimation::InBackFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:234
osgAnimation::InBounceFunction
Definition EaseMotion:53
osgAnimation::InBounceFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:54
osgAnimation::InCircFunction
Definition EaseMotion:269
osgAnimation::InCircFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:270
osgAnimation::InCubicFunction
Definition EaseMotion:117
osgAnimation::InCubicFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:118
osgAnimation::InElasticFunction
Definition EaseMotion:171
osgAnimation::InElasticFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:172
osgAnimation::InExpoFunction
Definition EaseMotion:310
osgAnimation::InExpoFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:311
osgAnimation::InOutBackFunction
Definition EaseMotion:241
osgAnimation::InOutBackFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:242
osgAnimation::InOutBounceFunction
Definition EaseMotion:62
osgAnimation::InOutBounceFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:63
osgAnimation::InOutCircFunction
Definition EaseMotion:277
osgAnimation::InOutCircFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:278
osgAnimation::InOutCubicFunction
Definition EaseMotion:122
osgAnimation::InOutCubicFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:123
osgAnimation::InOutElasticFunction
Definition EaseMotion:180
osgAnimation::InOutElasticFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:181
osgAnimation::InOutExpoFunction
Definition EaseMotion:325
osgAnimation::InOutExpoFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:326
osgAnimation::InOutQuadFunction
Definition EaseMotion:96
osgAnimation::InOutQuadFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:97
osgAnimation::InOutQuartFunction
Definition EaseMotion:147
osgAnimation::InOutQuartFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:148
osgAnimation::InOutSineFunction
Definition EaseMotion:215
osgAnimation::InOutSineFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:216
osgAnimation::InQuadFunction
Definition EaseMotion:91
osgAnimation::InQuadFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:92
osgAnimation::InQuartFunction
Quart function.
Definition EaseMotion:137
osgAnimation::InQuartFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:138
osgAnimation::InSineFunction
Definition EaseMotion:207
osgAnimation::InSineFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:208
osgAnimation::LinearFunction
Linear function.
Definition EaseMotion:80
osgAnimation::LinearFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:81
osgAnimation::MathMotionTemplate
Definition EaseMotion:421
osgAnimation::MathMotionTemplate::MathMotionTemplate
MathMotionTemplate(float startValue=0, float duration=1, float changeValue=1, TimeBehaviour tb=CLAMP)
Definition EaseMotion:422
osgAnimation::MathMotionTemplate::getValueInNormalizedRange
virtual void getValueInNormalizedRange(float t, value_type &result) const
Definition EaseMotion:423
osgAnimation::OutBackFunction
Definition EaseMotion:224
osgAnimation::OutBackFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:225
osgAnimation::OutBounceFunction
Definition EaseMotion:27
osgAnimation::OutBounceFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:28
osgAnimation::OutCircFunction
Definition EaseMotion:260
osgAnimation::OutCircFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:261
osgAnimation::OutCubicFunction
Cubic function.
Definition EaseMotion:112
osgAnimation::OutCubicFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:113
osgAnimation::OutElasticFunction
Elastic function.
Definition EaseMotion:163
osgAnimation::OutElasticFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:164
osgAnimation::OutExpoFunction
Definition EaseMotion:295
osgAnimation::OutExpoFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:296
osgAnimation::OutQuadFunction
Quad function.
Definition EaseMotion:86
osgAnimation::OutQuadFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:87
osgAnimation::OutQuartFunction
Definition EaseMotion:142
osgAnimation::OutQuartFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:143
osgAnimation::OutSineFunction
Definition EaseMotion:199
osgAnimation::OutSineFunction::getValueAt
static void getValueAt(float t, float &result)
Definition EaseMotion:200
osgAnimation::SamplerMotionTemplate::getSampler
T & getSampler()
Definition EaseMotion:431
osgAnimation::SamplerMotionTemplate::getSampler
const T & getSampler() const
Definition EaseMotion:432
osgAnimation::SamplerMotionTemplate::getValueInNormalizedRange
virtual void getValueInNormalizedRange(float t, value_type &result) const
Definition EaseMotion:433
osgAnimation::SamplerMotionTemplate::SamplerMotionTemplate
SamplerMotionTemplate(float startValue=0, float duration=1, float changeValue=1, TimeBehaviour tb=CLAMP)
Definition EaseMotion:430
osgAnimation::SamplerMotionTemplate::_sampler
T _sampler
Definition EaseMotion:429