Changed the setting of need to traverse during the update traverse so it is only enabled when animation is switched on.
This commit is contained in:
parent
e2d4581443
commit
958b8d74dd
@ -103,7 +103,7 @@ class OSGSIM_EXPORT DOFTransform : public osg::Transform
|
||||
void setHPRMultOrder(const MultOrder order) { _multOrder = order; }
|
||||
inline const MultOrder getHPRMultOrder() const { return _multOrder;}
|
||||
|
||||
inline void setAnimationOn(bool do_animate) {_animationOn = do_animate;}
|
||||
void setAnimationOn(bool do_animate);
|
||||
inline bool getAnimationOn() const { return _animationOn; }
|
||||
|
||||
void animate(float deltaTime);
|
||||
|
@ -34,7 +34,6 @@ DOFTransform::DOFTransform():
|
||||
_increasingFlags(0xffff),
|
||||
_multOrder(PRH)
|
||||
{
|
||||
setNumChildrenRequiringUpdateTraversal(1);
|
||||
}
|
||||
|
||||
DOFTransform::DOFTransform(const DOFTransform& dof, const osg::CopyOp& copyop):
|
||||
@ -60,7 +59,7 @@ DOFTransform::DOFTransform(const DOFTransform& dof, const osg::CopyOp& copyop):
|
||||
_increasingFlags(dof._increasingFlags),
|
||||
_multOrder(dof._multOrder)
|
||||
{
|
||||
setNumChildrenRequiringUpdateTraversal(getNumChildrenRequiringUpdateTraversal()+1);
|
||||
if (_animationOn) setNumChildrenRequiringUpdateTraversal(getNumChildrenRequiringUpdateTraversal()+1);
|
||||
}
|
||||
|
||||
void DOFTransform::traverse(osg::NodeVisitor& nv)
|
||||
@ -460,6 +459,20 @@ void DOFTransform::updateCurrentScale(const osg::Vec3& scale)
|
||||
dirtyBound();
|
||||
}
|
||||
|
||||
void DOFTransform::setAnimationOn(bool do_animate)
|
||||
{
|
||||
if (_animationOn == do_animate) return;
|
||||
|
||||
int delta = 0;
|
||||
|
||||
if (_animationOn) --delta;
|
||||
if (do_animate) ++delta;
|
||||
|
||||
_animationOn = do_animate;
|
||||
|
||||
if (_animationOn) setNumChildrenRequiringUpdateTraversal(getNumChildrenRequiringUpdateTraversal()+delta);
|
||||
}
|
||||
|
||||
void DOFTransform::animate(float deltaTime)
|
||||
{
|
||||
if(!_animationOn) return;
|
||||
|
Loading…
Reference in New Issue
Block a user