by adding a ComputeTransformCallback to osg::Transform, and have now removed the recently added AutoTransform since it is nolonger required. Have also updated CullVisitor to account for the new ways for tracking transformation matrices in the scene.
56 lines
1.1 KiB
C++
56 lines
1.1 KiB
C++
#include <osg/NodeVisitor>
|
|
#include <stdlib.h>
|
|
|
|
using namespace osg;
|
|
|
|
NodeVisitor::NodeVisitor(TraversalMode tm)
|
|
{
|
|
_traversalNumber = -1;
|
|
|
|
_traversalVisitor = NULL;
|
|
_traversalMode = tm;
|
|
_traversalMask = 0xffffffff;
|
|
_nodeMaskOverride = 0x0;
|
|
}
|
|
|
|
|
|
NodeVisitor::~NodeVisitor()
|
|
{
|
|
// if (_traversalVisitor) detach from _traversalVisitor;
|
|
}
|
|
|
|
|
|
void NodeVisitor::setTraversalMode(const TraversalMode mode)
|
|
{
|
|
if (_traversalMode==mode) return;
|
|
if (mode==TRAVERSE_VISITOR)
|
|
{
|
|
if (_traversalVisitor==NULL) _traversalMode = TRAVERSE_NONE;
|
|
else _traversalMode = TRAVERSE_VISITOR;
|
|
}
|
|
else
|
|
{
|
|
if (_traversalVisitor.valid()) _traversalVisitor=NULL;
|
|
_traversalMode = mode;
|
|
}
|
|
}
|
|
|
|
|
|
void NodeVisitor::setTraversalVisitor(NodeVisitor* nv)
|
|
{
|
|
if (_traversalVisitor==nv) return;
|
|
_traversalVisitor = nv;
|
|
if (_traversalVisitor.valid()) _traversalMode = TRAVERSE_VISITOR;
|
|
else _traversalMode = TRAVERSE_NONE;
|
|
}
|
|
|
|
const bool getLocalToWorldMatrix(Matrix& matrix, MatrixMode mode)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
const bool getWorldToLocalMatrix(Matrix& matrix, MatrixMode mode)
|
|
{
|
|
return false;
|
|
}
|