Visitor for type safe operations on osg::Node's.
Inheritance:
Public Methods
-
NodeVisitor(TraversalMode tm=TRAVERSE_NONE)
-
virtual ~NodeVisitor()
-
virtual void reset()
- Method to call to reset visitor.
-
inline void setTraversalNumber(const int fn)
- Set the traversal number.
-
inline const int getTraversalNumber() const
- Get the traversal number.
-
inline void setFrameStamp(FrameStamp* fs)
- Set the FrameStamp that this traversal is assoicated with
-
inline const FrameStamp* getFrameStamp() const
- Get the FrameStamp that this traversal is assoicated with
-
inline void setTraversalMask(const Node::NodeMask mask)
- Set the TraversalMask of this NodeVisitor.
-
inline const Node::NodeMask getTraversalMask() const
- Get the TraversalMask
-
inline void setNodeMaskOverride(const Node::NodeMask mask)
- Set the NodeMaskOverride mask.
-
inline const Node::NodeMask getNodeMaskOverride() const
- Get the NodeMaskOverride mask
-
inline const bool validNodeMask(const osg::Node& node) const
- Method to called by Node and its subclass' Node::accept() method, if the result is true to be used to cull operations of nodes and their subgraphs.
-
void setTraversalMode(const TraversalMode mode)
- Set the traversal mode for Node::traverse() to use when deciding which children of a node to traverse.
-
inline const TraversalMode getTraversalMode() const
- Get the traversal mode
-
void setTraversalVisitor(NodeVisitor* nv)
- Set a visitor to handle traversal.
-
NodeVisitor* getTraversalVisitor()
- Get the traversal visitor, returns NULL if none is attached
-
void traverse(Node& node)
- Inline method for handling traversal of a nodes.
-
virtual void apply(Node& node)
-
virtual void apply(Geode& node)
-
virtual void apply(Billboard& node)
-
virtual void apply(LightSource& node)
-
virtual void apply(Group& node)
-
virtual void apply(Transform& node)
-
virtual void apply(Switch& node)
-
virtual void apply(Sequence& node)
-
virtual void apply(LOD& node)
-
virtual void apply(Impostor& node)
Public Members
-
enum TraversalMode
Protected Fields
-
int _traversalNumber
-
ref_ptr<FrameStamp> _frameStamp
-
ref_ptr<NodeVisitor> _traversalVisitor
-
TraversalMode _traversalMode
-
Node::NodeMask _traversalMask
-
Node::NodeMask _nodeMaskOverride
Public Methods
-
inline Referenced& operator = (Referenced&)
-
inline void ref() const
-
inline void unref() const
-
inline const int referenceCount() const
Protected Fields
-
mutable int _refCount
Documentation
Visitor for type safe operations on osg::Node's.
Based on GOF's Visitor pattern.
- enum TraversalMode
- TRAVERSE_NONE
- TRAVERSE_PARENTS
- TRAVERSE_ALL_CHILDREN
- TRAVERSE_ACTIVE_CHILDREN
- TRAVERSE_VISITOR
- NodeVisitor(TraversalMode tm=TRAVERSE_NONE)
- virtual ~NodeVisitor()
- virtual void reset()
- Method to call to reset visitor. Useful for your visitor accumulates
state during a traversal, and you plan to resuse the visitor.
To flush that state for the next traversal than call reset() prior
to each traversal.
- inline void setTraversalNumber(const int fn)
- Set the traversal number. Typically used to denote the frame count.
- inline const int getTraversalNumber() const
- Get the traversal number. Typically used to denote the frame count.
- inline void setFrameStamp(FrameStamp* fs)
- Set the FrameStamp that this traversal is assoicated with
- inline const FrameStamp* getFrameStamp() const
- Get the FrameStamp that this traversal is assoicated with
- inline void setTraversalMask(const Node::NodeMask mask)
- Set the TraversalMask of this NodeVisitor.
The TraversalMask is used by the NodeVisitor::validNodeMask() method
to determine whether to operate on a node and its subgraph.
validNodeMask() is called automaticaly in the Node::accept() method before
any call to NodeVisitor::apply(), apply() is only ever called if validNodeMask
returns true. Note, if NodeVisitor::_traversalMask is 0 then all operations
will be swithced off for all nodes. Whereas setting both _traversalMask and
_nodeMaskOverride to 0xffffffff will allow a visitor to work on all nodes
regardless of their own Node::_nodeMask state.
- inline const Node::NodeMask getTraversalMask() const
- Get the TraversalMask
- inline void setNodeMaskOverride(const Node::NodeMask mask)
- Set the NodeMaskOverride mask.
Used in validNodeMask() to determine whether to operate on a node or its
subgraph, by OR'ing NodeVisitor::_nodeMaskOverride with the Node's own Node::_nodeMask.
Typically used to force on nodes which may have
been switched off by their own Node::_nodeMask.
- inline const Node::NodeMask getNodeMaskOverride() const
- Get the NodeMaskOverride mask
- inline const bool validNodeMask(const osg::Node& node) const
- Method to called by Node and its subclass' Node::accept() method, if the result is true
to be used to cull operations of nodes and their subgraphs.
Return true if the result of a bit wise and of the NodeVisitor::_traversalMask
with the bit or between NodeVistor::_nodeMaskOverride and the Node::_nodeMask.
default values for _traversalMask is 0xffffffff, _nodeMaskOverride is 0x0,
and osg::Node::_nodeMask is 0xffffffff.
- void setTraversalMode(const TraversalMode mode)
- Set the traversal mode for Node::traverse() to use when
deciding which children of a node to traverse. If a
NodeVisitor has been attached via setTraverseVisitor()
and the new mode is not TRAVERSE_VISITOR then the attached
visitor is detached. Default mode is TRAVERSE_NONE.
- inline const TraversalMode getTraversalMode() const
- Get the traversal mode
- void setTraversalVisitor(NodeVisitor* nv)
- Set a visitor to handle traversal.
Overides the traverse mode setting it to TRAVERSAL_VISITOR.
- NodeVisitor* getTraversalVisitor()
- Get the traversal visitor, returns NULL if none is attached
- void traverse(Node& node)
- Inline method for handling traversal of a nodes.
If you intend to use the visitor for actively traversing
the scene graph then make sure the accept() methods call
this method unless they handle traversal directly.
- virtual void apply(Node& node)
- virtual void apply(Geode& node)
- virtual void apply(Billboard& node)
- virtual void apply(LightSource& node)
- virtual void apply(Group& node)
- virtual void apply(Transform& node)
- virtual void apply(Switch& node)
- virtual void apply(Sequence& node)
- virtual void apply(LOD& node)
- virtual void apply(Impostor& node)
- int _traversalNumber
- ref_ptr<FrameStamp> _frameStamp
- ref_ptr<NodeVisitor> _traversalVisitor
- TraversalMode _traversalMode
- Node::NodeMask _traversalMask
- Node::NodeMask _nodeMaskOverride
- This class has no child classes.
Alphabetic index HTML hierarchy of classes or Java
This page was generated with the help of DOC++.