From Alberto Jaspe, added double precision interpolation method

This commit is contained in:
Robert Osfield 2005-10-10 09:17:22 +00:00
parent 34dd065d66
commit 290e0b6eed

View File

@ -81,6 +81,14 @@ class OSG_EXPORT AnimationPath : public virtual osg::Object
_scale = first._scale*one_minus_ratio + second._scale*ratio; _scale = first._scale*one_minus_ratio + second._scale*ratio;
} }
inline void interpolate(double ratio,const ControlPoint& first, const ControlPoint& second)
{
double one_minus_ratio = 1.0f-ratio;
_position = first._position*one_minus_ratio + second._position*ratio;
_rotation.slerp(ratio,first._rotation,second._rotation);
_scale = first._scale*one_minus_ratio + second._scale*ratio;
}
inline void getMatrix(Matrixf& matrix) const inline void getMatrix(Matrixf& matrix) const
{ {
matrix.makeScale(_scale); matrix.makeScale(_scale);