450 lines
23 KiB
HTML
450 lines
23 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>class SG_EXPORT osg::NodeVisitor</TITLE>
|
|
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#ffffff">
|
|
|
|
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::NodeVisitor</A></H2></H2><BLOCKQUOTE>Visitor for type safe operations on osg::Node's.</BLOCKQUOTE>
|
|
<HR>
|
|
|
|
<H2>Inheritance:</H2>
|
|
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
|
|
<param name=classes value="CReferenced,MReferenced.html,CNodeVisitor,MNodeVisitor.html">
|
|
<param name=before value="M,M">
|
|
<param name=after value="Md_,M">
|
|
<param name=indent value="0,1">
|
|
<param name=arrowdir value="down">
|
|
</APPLET>
|
|
<HR>
|
|
|
|
<DL>
|
|
<P><DL>
|
|
<DT><H3>Public Methods</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.66.2">NodeVisitor</A></B>(<!1><A HREF="NodeVisitor.html#DOC.2.66.1">TraversalMode</A> tm=<!1><A HREF="NodeVisitor.html#DOC.2.66.1.1">TRAVERSE_NONE</A>)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.66.3">~NodeVisitor</A></B>()
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.4">reset</A></B>()
|
|
<DD><I>Method to call to reset visitor.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.66.5">setTraversalNumber</A></B>(const int fn)
|
|
<DD><I>Set the traversal number.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const int <B><A HREF="#DOC.2.66.6">getTraversalNumber</A></B>() const
|
|
<DD><I>Get the traversal number.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.66.7">setFrameStamp</A></B>(<!1><A HREF="FrameStamp.html">FrameStamp</A>* fs)
|
|
<DD><I>Set the FrameStamp that this traversal is assoicated with</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="FrameStamp.html">FrameStamp</A>* <B><A HREF="#DOC.2.66.8">getFrameStamp</A></B>() const
|
|
<DD><I>Get the FrameStamp that this traversal is assoicated with</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.66.9">setTraversalMask</A></B>(const Node::NodeMask mask)
|
|
<DD><I>Set the TraversalMask of this NodeVisitor.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const Node::NodeMask <B><A HREF="#DOC.2.66.10">getTraversalMask</A></B>() const
|
|
<DD><I>Get the TraversalMask</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.66.11">setNodeMaskOverride</A></B>(const Node::NodeMask mask)
|
|
<DD><I>Set the NodeMaskOverride mask.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const Node::NodeMask <B><A HREF="#DOC.2.66.12">getNodeMaskOverride</A></B>() const
|
|
<DD><I>Get the NodeMaskOverride mask</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const bool <B><A HREF="#DOC.2.66.13">validNodeMask</A></B>(const osg::Node& node) const
|
|
<DD><I>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.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.66.14">setTraversalMode</A></B>(const <!1><A HREF="NodeVisitor.html#DOC.2.66.1">TraversalMode</A> mode)
|
|
<DD><I>Set the traversal mode for Node::traverse() to use when deciding which children of a node to traverse.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="NodeVisitor.html#DOC.2.66.1">TraversalMode</A> <B><A HREF="#DOC.2.66.15">getTraversalMode</A></B>() const
|
|
<DD><I>Get the traversal mode</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.66.16">setTraversalVisitor</A></B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>* nv)
|
|
<DD><I>Set a visitor to handle traversal.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="NodeVisitor.html">NodeVisitor</A>* <B><A HREF="#DOC.2.66.17">getTraversalVisitor</A></B>()
|
|
<DD><I>Get the traversal visitor, returns NULL if none is attached</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.66.18">traverse</A></B>(Node& node)
|
|
<DD><I>Method for handling traversal of a nodes.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.66.19">pushOntoNodePath</A></B>(Node* node)
|
|
<DD><I>Method called by osg::Node::accept() method before a call the NodeVisitor::apply().</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.66.20">popFromNodePath</A></B>()
|
|
<DD><I>Method callby osg::Node::accept() method after a call the NodeVisitor::apply().</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>NodePath& <B><A HREF="#DOC.2.66.21">getNodePath</A></B>()
|
|
<DD><I>Get the non const NodePath from the top most node applied down to the current Node being visited</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const NodePath& <B><A HREF="#DOC.2.66.22">getNodePath</A></B>() const
|
|
<DD><I>Get the const NodePath from the top most node applied down to the current Node being visited</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const bool <B><A HREF="#DOC.2.66.23">getLocalToWorldMatrix</A></B>(<!1><A HREF="Matrix.html">Matrix</A>& matrix, Node* node)
|
|
<DD><I>Get the Local To World Matrix from the NodePath for specified Transform::Mode, and u</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const bool <B><A HREF="#DOC.2.66.24">getWorldToLocalMatrix</A></B>(<!1><A HREF="Matrix.html">Matrix</A>& matrix, Node* node)
|
|
<DD><I>Get the World To Local Matrix from the NodePath for specified Transform::Mode</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.25">apply</A></B>(Node& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.26">apply</A></B>(<!1><A HREF="Geode.html">Geode</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.27">apply</A></B>(<!1><A HREF="Billboard.html">Billboard</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.28">apply</A></B>(<!1><A HREF="LightSource.html">LightSource</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.29">apply</A></B>(<!1><A HREF="ClipNode.html">ClipNode</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.30">apply</A></B>(<!1><A HREF="Group.html">Group</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.31">apply</A></B>(<!1><A HREF="Projection.html">Projection</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.32">apply</A></B>(<!1><A HREF="Transform.html">Transform</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.33">apply</A></B>(<!1><A HREF="Switch.html">Switch</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.34">apply</A></B>(<!1><A HREF="LOD.html">LOD</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.35">apply</A></B>(<!1><A HREF="Impostor.html">Impostor</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.36">apply</A></B>(<!1><A HREF="EarthSky.html">EarthSky</A>& node)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.66.37">apply</A></B>(<!1><A HREF="OccluderNode.html">OccluderNode</A>& node)
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Public Members</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.66.1">TraversalMode</A></B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.66.38">_traversalNumber</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="FrameStamp.html">FrameStamp</A>> <B><A HREF="#DOC.2.66.39">_frameStamp</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="NodeVisitor.html">NodeVisitor</A>> <B><A HREF="#DOC.2.66.40">_traversalVisitor</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="NodeVisitor.html#DOC.2.66.1">TraversalMode</A> <B><A HREF="#DOC.2.66.41">_traversalMode</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>Node::NodeMask <B><A HREF="#DOC.2.66.42">_traversalMask</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>Node::NodeMask <B><A HREF="#DOC.2.66.43">_nodeMaskOverride</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>NodePath <B><A HREF="#DOC.2.66.44">_nodePath</A></B>
|
|
</DL></P>
|
|
|
|
</DL>
|
|
<HR><H3>Inherited from <A HREF="Referenced.html">Referenced</A>:</H3>
|
|
<DL>
|
|
<P><DL>
|
|
<DT><H3>Public Methods</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Referenced.html">Referenced</A>& <B>operator = </B>(<!1><A HREF="Referenced.html">Referenced</A>&)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>ref</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref_nodelete</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const int <B>referenceCount</B>() const
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>mutable int <B>_refCount</B>
|
|
</DL></P>
|
|
|
|
</DL>
|
|
|
|
<A NAME="DOC.DOCU"></A>
|
|
<HR>
|
|
<H2>Documentation</H2>
|
|
<BLOCKQUOTE>Visitor for type safe operations on osg::Node's.
|
|
Based on GOF's Visitor pattern. The NodeVisitor
|
|
is useful for developing type safe operations to nodes
|
|
in the scene graph (as per Visitor pattern), and adds to this
|
|
support for optional scene graph traversal to allow
|
|
operations to be applied to whole scenes at once. The Visitor
|
|
pattern uses a technique of double dispatch as a mechanism to
|
|
called the appropriate apply(..) method of the NodeVisitor. To
|
|
use this feature one must use the Node::accept(NodeVisitor) which
|
|
is extended in each Node subclass, rather than the NodeVisitor
|
|
apply directly. So use root->accept(myVisitor); instead of
|
|
myVisitor.apply(*root). The later method will bypass the double
|
|
dispatch and the appropriate NodeVisitor::apply(..) method will
|
|
not be called. </BLOCKQUOTE>
|
|
<DL>
|
|
|
|
<A NAME="TraversalMode"></A>
|
|
<A NAME="DOC.2.66.1"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum TraversalMode</B></TT>
|
|
<DL><DT><DD></DL><P><DL>
|
|
|
|
<A NAME="TRAVERSE_NONE"></A>
|
|
<A NAME="DOC.2.66.1.1"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> TRAVERSE_NONE</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="TRAVERSE_PARENTS"></A>
|
|
<A NAME="DOC.2.66.1.2"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> TRAVERSE_PARENTS</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="TRAVERSE_ALL_CHILDREN"></A>
|
|
<A NAME="DOC.2.66.1.3"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> TRAVERSE_ALL_CHILDREN</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="TRAVERSE_ACTIVE_CHILDREN"></A>
|
|
<A NAME="DOC.2.66.1.4"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> TRAVERSE_ACTIVE_CHILDREN</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="TRAVERSE_VISITOR"></A>
|
|
<A NAME="DOC.2.66.1.5"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> TRAVERSE_VISITOR</B></TT>
|
|
<DL><DT><DD></DL><P></DL>
|
|
|
|
<A NAME="NodeVisitor"></A>
|
|
<A NAME="DOC.2.66.2"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> NodeVisitor(<!1><A HREF="NodeVisitor.html#DOC.2.66.1">TraversalMode</A> tm=<!1><A HREF="NodeVisitor.html#DOC.2.66.1.1">TRAVERSE_NONE</A>)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="~NodeVisitor"></A>
|
|
<A NAME="DOC.2.66.3"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~NodeVisitor()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="reset"></A>
|
|
<A NAME="DOC.2.66.4"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void reset()</B></TT>
|
|
<DD>Method to call to reset visitor. Useful for your visitor accumulates
|
|
state during a traversal, and you plan to reuse the visitor.
|
|
To flush that state for the next traversal than call reset() prior
|
|
to each traversal.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setTraversalNumber"></A>
|
|
<A NAME="DOC.2.66.5"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setTraversalNumber(const int fn)</B></TT>
|
|
<DD>Set the traversal number. Typically used to denote the frame count.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getTraversalNumber"></A>
|
|
<A NAME="DOC.2.66.6"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const int getTraversalNumber() const </B></TT>
|
|
<DD>Get the traversal number. Typically used to denote the frame count.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setFrameStamp"></A>
|
|
<A NAME="DOC.2.66.7"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setFrameStamp(<!1><A HREF="FrameStamp.html">FrameStamp</A>* fs)</B></TT>
|
|
<DD>Set the FrameStamp that this traversal is assoicated with
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getFrameStamp"></A>
|
|
<A NAME="DOC.2.66.8"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="FrameStamp.html">FrameStamp</A>* getFrameStamp() const </B></TT>
|
|
<DD>Get the FrameStamp that this traversal is assoicated with
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setTraversalMask"></A>
|
|
<A NAME="DOC.2.66.9"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setTraversalMask(const Node::NodeMask mask)</B></TT>
|
|
<DD>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.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getTraversalMask"></A>
|
|
<A NAME="DOC.2.66.10"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const Node::NodeMask getTraversalMask() const </B></TT>
|
|
<DD>Get the TraversalMask
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setNodeMaskOverride"></A>
|
|
<A NAME="DOC.2.66.11"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setNodeMaskOverride(const Node::NodeMask mask)</B></TT>
|
|
<DD>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.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getNodeMaskOverride"></A>
|
|
<A NAME="DOC.2.66.12"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const Node::NodeMask getNodeMaskOverride() const </B></TT>
|
|
<DD>Get the NodeMaskOverride mask
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="validNodeMask"></A>
|
|
<A NAME="DOC.2.66.13"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const bool validNodeMask(const osg::Node& node) const </B></TT>
|
|
<DD>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.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setTraversalMode"></A>
|
|
<A NAME="DOC.2.66.14"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setTraversalMode(const <!1><A HREF="NodeVisitor.html#DOC.2.66.1">TraversalMode</A> mode)</B></TT>
|
|
<DD>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.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getTraversalMode"></A>
|
|
<A NAME="DOC.2.66.15"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="NodeVisitor.html#DOC.2.66.1">TraversalMode</A> getTraversalMode() const </B></TT>
|
|
<DD>Get the traversal mode
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setTraversalVisitor"></A>
|
|
<A NAME="DOC.2.66.16"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setTraversalVisitor(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>* nv)</B></TT>
|
|
<DD>Set a visitor to handle traversal.
|
|
Overrides the traverse mode setting it to TRAVERSAL_VISITOR.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getTraversalVisitor"></A>
|
|
<A NAME="DOC.2.66.17"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="NodeVisitor.html">NodeVisitor</A>* getTraversalVisitor()</B></TT>
|
|
<DD>Get the traversal visitor, returns NULL if none is attached
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="traverse"></A>
|
|
<A NAME="DOC.2.66.18"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void traverse(Node& node)</B></TT>
|
|
<DD>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.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="pushOntoNodePath"></A>
|
|
<A NAME="DOC.2.66.19"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void pushOntoNodePath(Node* node)</B></TT>
|
|
<DD>Method called by osg::Node::accept() method before
|
|
a call the NodeVisitor::apply(). The back of the list will,
|
|
therefore, be the current node being visited inside the apply(..),
|
|
and the rest of the list will be the parental sequence of nodes
|
|
from the top most node applied down the graph to the current node.
|
|
Note, the user does not typically call pushNodeOnPath() as it
|
|
will be called automatically by the Node::accept() method.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="popFromNodePath"></A>
|
|
<A NAME="DOC.2.66.20"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void popFromNodePath()</B></TT>
|
|
<DD>Method callby osg::Node::accept() method after
|
|
a call the NodeVisitor::apply().
|
|
Note, the user does not typically call pushNodeOnPath() as it
|
|
will be called automatically by the Node::accept() method.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getNodePath"></A>
|
|
<A NAME="DOC.2.66.21"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>NodePath& getNodePath()</B></TT>
|
|
<DD>Get the non const NodePath from the top most node applied down
|
|
to the current Node being visited
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getNodePath"></A>
|
|
<A NAME="DOC.2.66.22"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const NodePath& getNodePath() const </B></TT>
|
|
<DD>Get the const NodePath from the top most node applied down
|
|
to the current Node being visited
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getLocalToWorldMatrix"></A>
|
|
<A NAME="DOC.2.66.23"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const bool getLocalToWorldMatrix(<!1><A HREF="Matrix.html">Matrix</A>& matrix, Node* node)</B></TT>
|
|
<DD>Get the Local To World Matrix from the NodePath for specified Transform::Mode, and u
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getWorldToLocalMatrix"></A>
|
|
<A NAME="DOC.2.66.24"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const bool getWorldToLocalMatrix(<!1><A HREF="Matrix.html">Matrix</A>& matrix, Node* node)</B></TT>
|
|
<DD>Get the World To Local Matrix from the NodePath for specified Transform::Mode
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.25"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(Node& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.26"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Geode.html">Geode</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.27"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Billboard.html">Billboard</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.28"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="LightSource.html">LightSource</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.29"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="ClipNode.html">ClipNode</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.30"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Group.html">Group</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.31"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Projection.html">Projection</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.32"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Transform.html">Transform</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.33"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Switch.html">Switch</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.34"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="LOD.html">LOD</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.35"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Impostor.html">Impostor</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.36"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="EarthSky.html">EarthSky</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="apply"></A>
|
|
<A NAME="DOC.2.66.37"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="OccluderNode.html">OccluderNode</A>& node)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_traversalNumber"></A>
|
|
<A NAME="DOC.2.66.38"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int _traversalNumber</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_frameStamp"></A>
|
|
<A NAME="DOC.2.66.39"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="FrameStamp.html">FrameStamp</A>> _frameStamp</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_traversalVisitor"></A>
|
|
<A NAME="DOC.2.66.40"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="NodeVisitor.html">NodeVisitor</A>> _traversalVisitor</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_traversalMode"></A>
|
|
<A NAME="DOC.2.66.41"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="NodeVisitor.html#DOC.2.66.1">TraversalMode</A> _traversalMode</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_traversalMask"></A>
|
|
<A NAME="DOC.2.66.42"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>Node::NodeMask _traversalMask</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_nodeMaskOverride"></A>
|
|
<A NAME="DOC.2.66.43"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>Node::NodeMask _nodeMaskOverride</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_nodePath"></A>
|
|
<A NAME="DOC.2.66.44"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>NodePath _nodePath</B></TT>
|
|
<DL><DT><DD></DL><P></DL>
|
|
|
|
<HR><DL><DT><B>This class has no child classes.</B></DL>
|
|
|
|
<DL><DT><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
|
|
<BR>
|
|
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
|
|
</BODY>
|
|
</HTML>
|