From Brede Johansen, added support for incrementing animation of DOFTransform

w.r.t. time rather than frame number.
This commit is contained in:
Robert Osfield
2004-03-02 16:53:21 +00:00
parent cfe376b644
commit 20252db7ff
2 changed files with 128 additions and 54 deletions

View File

@@ -29,25 +29,7 @@ class OSGSIM_EXPORT DOFTransform : public osg::Transform
DOFTransform();
/**copy constructor*/
DOFTransform(const DOFTransform& dof, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY):
osg::Transform(dof, copyop),
_minHPR(dof._minHPR),
_maxHPR(dof._maxHPR),
_currentHPR(dof._currentHPR),
_incrementHPR(dof._incrementHPR),
_minTranslate(dof._minTranslate),
_maxTranslate(dof._maxTranslate),
_currentTranslate(dof._currentTranslate),
_incrementTranslate(dof._incrementTranslate),
_minScale(dof._minScale),
_maxScale(dof._maxScale),
_currentScale(dof._currentScale),
_incrementScale(dof._incrementScale),
_Put(dof._Put),
_inversePut(dof._inversePut),
_limitationFlags(dof._limitationFlags),
_animationOn(dof._animationOn),
_increasingFlags(dof._increasingFlags) {}
DOFTransform(const DOFTransform& dof, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
META_Node(osgSim, DOFTransform);
@@ -111,7 +93,7 @@ class OSGSIM_EXPORT DOFTransform : public osg::Transform
inline void setAnimationOn(bool do_animate) {_animationOn = do_animate;}
inline bool getAnimationOn() const {return _animationOn;}
void animate();
void animate(float deltaTime);
virtual bool computeLocalToWorldMatrix(osg::Matrix& matrix,osg::NodeVisitor* nv) const;
@@ -121,6 +103,9 @@ class OSGSIM_EXPORT DOFTransform : public osg::Transform
virtual ~DOFTransform() {}
int _previousTraversalNumber;
double _previousTime;
osg::Vec3 _minHPR;
osg::Vec3 _maxHPR;
osg::Vec3 _currentHPR;