OpenSceneGraph/include/osg/NodeCallback
Don BURNS 81f553aaee o Updated Metrowerks files for MacOS. They aren't 100% there yet,
but getting there.

  o First cut of osgcluster demo.  Very simple beginings.  Alas
    I only one PC here so I can't test it in its current guise.

  o New support for NodeCallbacks, via AppCallback attached to
    osg::Node's, and a default osgUtil::AppVisitor which calls them on
    each frame.

  o Support for traversal masks in osg::NodeVisitor, osg::Node
    which allows nodes to be switched on or off via a bit mask.

  o Suppport for traversal number (frame number) and reference time
    into osg::NodeVisitor to handle syncronization of app and cull
    traversals.  This also assist clustering as traversal number
    master to slaves.
2001-09-19 23:41:39 +00:00

47 lines
1.2 KiB
Plaintext

#ifndef OSG_NODECALLBACK
#define OSG_NODECALLBACK 1
#include <osg/Referenced>
namespace osg {
class Node;
class NodeVisitor;
class SG_EXPORT NodeCallback : public Referenced {
public :
/** The range of values which can be accumulated by the NodeVisitor. */
enum Requirements
{
NO_REQUIREMENTS = 0x0,
REQUIRES_TRAVERSAL = 0x1,
REQUIRES_PARENT_PATH = 0x2,
REQUIRES_ACCUMULATED_MATRIX = 0x4,
REQUIRES_ACCUMULATED_INVERSE = 0x8,
};
NodeCallback(const Requirements ncr=NO_REQUIREMENTS):_requirements(ncr) {}
virtual ~NodeCallback() {}
/** Set what values from traversal are required by this NodeCallback.*/
inline void setRequirements(const Requirements ncr) { _requirements=ncr; }
/** Get what values from traversal are required by this NodeCallback.*/
inline const Requirements getRequirements() const { return _requirements; }
/** Callback method call by the NodeVisitor when visiting a node.*/
virtual void operator()(Node*, NodeVisitor*) {}
public:
Requirements _requirements;
};
}; // namespace
#endif