536 lines
29 KiB
HTML
536 lines
29 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.10">
|
||
|
</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=95>
|
||
|
<param name=classes value="CReferenced,MReferenced.html,CNodeVisitor,MNodeVisitor.html,CCollectOccludersVisitor,MCollectOccludersVisitor.html">
|
||
|
<param name=before value="M,M,M^_">
|
||
|
<param name=after value="Md_,M,M">
|
||
|
<param name=indent value="0,1,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.103.3">NodeVisitor</A></B>(<!1><A HREF="NodeVisitor.html#DOC.2.103.1">TraversalMode</A> tm=<!1><A HREF="NodeVisitor.html#DOC.2.103.1.1">TRAVERSE_NONE</A>)
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.103.4">NodeVisitor</A></B>(<!1><A HREF="NodeVisitor.html#DOC.2.103.2">VisitorType</A> type, <!1><A HREF="NodeVisitor.html#DOC.2.103.1">TraversalMode</A> tm=<!1><A HREF="NodeVisitor.html#DOC.2.103.1.1">TRAVERSE_NONE</A>)
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.103.5">~NodeVisitor</A></B>()
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.103.6">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.103.7">setVisitorType</A></B>(<!1><A HREF="NodeVisitor.html#DOC.2.103.2">VisitorType</A> type)
|
||
|
<DD><I>Set the VisitorType, used to distingush different visitors during traversal of the scene, typically used in the Node::traverse() method to select which behaviour to use for different types of traversal/visitors</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="NodeVisitor.html#DOC.2.103.2">VisitorType</A> <B><A HREF="#DOC.2.103.8">getVisitorType</A></B>() const
|
||
|
<DD><I>Get the VisitorType</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.103.9">setTraversalNumber</A></B>(int fn)
|
||
|
<DD><I>Set the traversal number.</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.103.10">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.103.11">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.103.12">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.103.13">setTraversalMask</A></B>(Node::NodeMask mask)
|
||
|
<DD><I>Set the TraversalMask of this NodeVisitor.</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline Node::NodeMask <B><A HREF="#DOC.2.103.14">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.103.15">setNodeMaskOverride</A></B>(Node::NodeMask mask)
|
||
|
<DD><I>Set the NodeMaskOverride mask.</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline Node::NodeMask <B><A HREF="#DOC.2.103.16">getNodeMaskOverride</A></B>() const
|
||
|
<DD><I>Get the NodeMaskOverride mask</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.103.17">validNodeMask</A></B>(const <!1><A HREF="Node.html">osg::Node</A>& 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>inline void <B><A HREF="#DOC.2.103.18">setTraversalMode</A></B>(<!1><A HREF="NodeVisitor.html#DOC.2.103.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 <!1><A HREF="NodeVisitor.html#DOC.2.103.1">TraversalMode</A> <B><A HREF="#DOC.2.103.19">getTraversalMode</A></B>() const
|
||
|
<DD><I>Get the traversal mode</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.103.20">traverse</A></B>(<!1><A HREF="Node.html">Node</A>& 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.103.21">pushOntoNodePath</A></B>(<!1><A HREF="Node.html">Node</A>* 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.103.22">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><!1><A HREF="NodePath.html">NodePath</A>& <B><A HREF="#DOC.2.103.23">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 <!1><A HREF="NodePath.html">NodePath</A>& <B><A HREF="#DOC.2.103.24">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>virtual bool <B><A HREF="#DOC.2.103.25">getLocalToWorldMatrix</A></B>(<!1><A HREF="Matrix.html">Matrix</A>& matrix, <!1><A HREF="Node.html">Node</A>* 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>virtual bool <B><A HREF="#DOC.2.103.26">getWorldToLocalMatrix</A></B>(<!1><A HREF="Matrix.html">Matrix</A>& matrix, <!1><A HREF="Node.html">Node</A>* 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 <!1><A HREF="Vec3.html">osg::Vec3</A> <B><A HREF="#DOC.2.103.27">getEyePoint</A></B>() const
|
||
|
<DD><I>Get the eye point in local coordinates.</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual float <B><A HREF="#DOC.2.103.28">getDistanceToEyePoint</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>& , bool ) const
|
||
|
<DD><I>Get the distance from a point to the eye point, distance value in local coordinate system.</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual float <B><A HREF="#DOC.2.103.29">getDistanceFromEyePoint</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>& , bool ) const
|
||
|
<DD><I>Get the distance of a point from the eye point, distance value in the eye coordinate system.</I>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.103.30">apply</A></B>(<!1><A HREF="Node.html">Node</A>& node)
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.103.31">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.103.32">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.103.33">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.103.34">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.103.35">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.103.36">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.103.37">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.103.38">apply</A></B>(<!1><A HREF="DOFTransform.html">DOFTransform</A>& node)
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.103.39">apply</A></B>(<!1><A HREF="MatrixTransform.html">MatrixTransform</A>& node)
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.103.40">apply</A></B>(<!1><A HREF="PositionAttitudeTransform.html">PositionAttitudeTransform</A>& node)
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.103.41">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.103.42">apply</A></B>(<!1><A HREF="Sequence.html">Sequence</A>& node)
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.103.43">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.103.44">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.103.45">apply</A></B>(<!1><A HREF="ClearNode.html">ClearNode</A>& node)
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.103.46">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.103.1">TraversalMode</A></B>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.103.2">VisitorType</A></B>
|
||
|
</DL></P>
|
||
|
|
||
|
<P><DL>
|
||
|
<DT><H3>Protected Fields</H3><DD><DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="NodeVisitor.html#DOC.2.103.2">VisitorType</A> <B><A HREF="#DOC.2.103.47">_visitorType</A></B>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.103.48">_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.103.49">_frameStamp</A></B>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="NodeVisitor.html#DOC.2.103.1">TraversalMode</A> <B><A HREF="#DOC.2.103.50">_traversalMode</A></B>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>Node::NodeMask <B><A HREF="#DOC.2.103.51">_traversalMask</A></B>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>Node::NodeMask <B><A HREF="#DOC.2.103.52">_nodeMaskOverride</A></B>
|
||
|
<DT>
|
||
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="NodePath.html">NodePath</A> <B><A HREF="#DOC.2.103.53">_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>static void <B>setDeleteHandler</B>(<!1><A HREF="DeleteHandler.html">DeleteHandler</A>* handler)
|
||
|
<DT>
|
||
|
<IMG ALT="o" SRC=icon2.gif>static <!1><A HREF="DeleteHandler.html">DeleteHandler</A>* <B>getDeleteHandler</B>()
|
||
|
<DT>
|
||
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>ref</B>() const
|
||
|
<DT>
|
||
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref_nodelete</B>() const
|
||
|
<DT>
|
||
|
<IMG ALT="o" SRC=icon2.gif>inline int <B>referenceCount</B>() const
|
||
|
<DT>
|
||
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref</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.103.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.103.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.103.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.103.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.103.1.4"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> TRAVERSE_ACTIVE_CHILDREN</B></TT>
|
||
|
<DL><DT><DD></DL><P></DL>
|
||
|
|
||
|
<A NAME="VisitorType"></A>
|
||
|
<A NAME="DOC.2.103.2"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum VisitorType</B></TT>
|
||
|
<DL><DT><DD></DL><P><DL>
|
||
|
|
||
|
<A NAME="NODE_VISITOR"></A>
|
||
|
<A NAME="DOC.2.103.2.1"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> NODE_VISITOR</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="UPDATE_VISITOR"></A>
|
||
|
<A NAME="DOC.2.103.2.2"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> UPDATE_VISITOR</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="COLLECT_OCCLUDER_VISITOR"></A>
|
||
|
<A NAME="DOC.2.103.2.3"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> COLLECT_OCCLUDER_VISITOR</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="CULL_VISITOR"></A>
|
||
|
<A NAME="DOC.2.103.2.4"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> CULL_VISITOR</B></TT>
|
||
|
<DL><DT><DD></DL><P></DL>
|
||
|
|
||
|
<A NAME="NodeVisitor"></A>
|
||
|
<A NAME="DOC.2.103.3"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> NodeVisitor(<!1><A HREF="NodeVisitor.html#DOC.2.103.1">TraversalMode</A> tm=<!1><A HREF="NodeVisitor.html#DOC.2.103.1.1">TRAVERSE_NONE</A>)</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="NodeVisitor"></A>
|
||
|
<A NAME="DOC.2.103.4"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> NodeVisitor(<!1><A HREF="NodeVisitor.html#DOC.2.103.2">VisitorType</A> type, <!1><A HREF="NodeVisitor.html#DOC.2.103.1">TraversalMode</A> tm=<!1><A HREF="NodeVisitor.html#DOC.2.103.1.1">TRAVERSE_NONE</A>)</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="~NodeVisitor"></A>
|
||
|
<A NAME="DOC.2.103.5"></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.103.6"></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="setVisitorType"></A>
|
||
|
<A NAME="DOC.2.103.7"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setVisitorType(<!1><A HREF="NodeVisitor.html#DOC.2.103.2">VisitorType</A> type)</B></TT>
|
||
|
<DD>Set the VisitorType, used to distingush different visitors during
|
||
|
traversal of the scene, typically used in the Node::traverse() method
|
||
|
to select which behaviour to use for different types of traversal/visitors
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="getVisitorType"></A>
|
||
|
<A NAME="DOC.2.103.8"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="NodeVisitor.html#DOC.2.103.2">VisitorType</A> getVisitorType() const </B></TT>
|
||
|
<DD>Get the VisitorType
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="setTraversalNumber"></A>
|
||
|
<A NAME="DOC.2.103.9"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setTraversalNumber(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.103.10"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline 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.103.11"></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.103.12"></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.103.13"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setTraversalMask(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.103.14"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Node::NodeMask getTraversalMask() const </B></TT>
|
||
|
<DD>Get the TraversalMask
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="setNodeMaskOverride"></A>
|
||
|
<A NAME="DOC.2.103.15"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setNodeMaskOverride(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.103.16"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Node::NodeMask getNodeMaskOverride() const </B></TT>
|
||
|
<DD>Get the NodeMaskOverride mask
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="validNodeMask"></A>
|
||
|
<A NAME="DOC.2.103.17"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool validNodeMask(const <!1><A HREF="Node.html">osg::Node</A>& 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.103.18"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setTraversalMode(<!1><A HREF="NodeVisitor.html#DOC.2.103.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.103.19"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="NodeVisitor.html#DOC.2.103.1">TraversalMode</A> getTraversalMode() const </B></TT>
|
||
|
<DD>Get the traversal mode
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="traverse"></A>
|
||
|
<A NAME="DOC.2.103.20"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void traverse(<!1><A HREF="Node.html">Node</A>& 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.103.21"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void pushOntoNodePath(<!1><A HREF="Node.html">Node</A>* 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.103.22"></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.103.23"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="NodePath.html">NodePath</A>& 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.103.24"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="NodePath.html">NodePath</A>& 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.103.25"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool getLocalToWorldMatrix(<!1><A HREF="Matrix.html">Matrix</A>& matrix, <!1><A HREF="Node.html">Node</A>* 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.103.26"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool getWorldToLocalMatrix(<!1><A HREF="Matrix.html">Matrix</A>& matrix, <!1><A HREF="Node.html">Node</A>* node)</B></TT>
|
||
|
<DD>Get the World To Local Matrix from the NodePath for specified Transform::Mode
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="getEyePoint"></A>
|
||
|
<A NAME="DOC.2.103.27"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual <!1><A HREF="Vec3.html">osg::Vec3</A> getEyePoint() const </B></TT>
|
||
|
<DD>Get the eye point in local coordinates.
|
||
|
Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement.
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="getDistanceToEyePoint"></A>
|
||
|
<A NAME="DOC.2.103.28"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual float getDistanceToEyePoint(const <!1><A HREF="Vec3.html">Vec3</A>& , bool ) const </B></TT>
|
||
|
<DD>Get the distance from a point to the eye point, distance value in local coordinate system.
|
||
|
Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement.
|
||
|
If the getDistianceFromEyePoint(pos) is not implmented than a default value of 0.0 is returned.
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="getDistanceFromEyePoint"></A>
|
||
|
<A NAME="DOC.2.103.29"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual float getDistanceFromEyePoint(const <!1><A HREF="Vec3.html">Vec3</A>& , bool ) const </B></TT>
|
||
|
<DD>Get the distance of a point from the eye point, distance value in the eye coordinate system.
|
||
|
Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement.
|
||
|
If the getDistianceFromEyePoint(pos) is not implmented than a default value of 0.0 is returned.
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="apply"></A>
|
||
|
<A NAME="DOC.2.103.30"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Node.html">Node</A>& node)</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="apply"></A>
|
||
|
<A NAME="DOC.2.103.31"></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.103.32"></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.103.33"></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.103.34"></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.103.35"></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.103.36"></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.103.37"></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.103.38"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="DOFTransform.html">DOFTransform</A>& node)</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="apply"></A>
|
||
|
<A NAME="DOC.2.103.39"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="MatrixTransform.html">MatrixTransform</A>& node)</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="apply"></A>
|
||
|
<A NAME="DOC.2.103.40"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="PositionAttitudeTransform.html">PositionAttitudeTransform</A>& node)</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="apply"></A>
|
||
|
<A NAME="DOC.2.103.41"></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.103.42"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Sequence.html">Sequence</A>& node)</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="apply"></A>
|
||
|
<A NAME="DOC.2.103.43"></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.103.44"></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.103.45"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="ClearNode.html">ClearNode</A>& node)</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="apply"></A>
|
||
|
<A NAME="DOC.2.103.46"></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="_visitorType"></A>
|
||
|
<A NAME="DOC.2.103.47"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="NodeVisitor.html#DOC.2.103.2">VisitorType</A> _visitorType</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="_traversalNumber"></A>
|
||
|
<A NAME="DOC.2.103.48"></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.103.49"></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="_traversalMode"></A>
|
||
|
<A NAME="DOC.2.103.50"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="NodeVisitor.html#DOC.2.103.1">TraversalMode</A> _traversalMode</B></TT>
|
||
|
<DL><DT><DD></DL><P>
|
||
|
<A NAME="_traversalMask"></A>
|
||
|
<A NAME="DOC.2.103.51"></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.103.52"></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.103.53"></A>
|
||
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="NodePath.html">NodePath</A> _nodePath</B></TT>
|
||
|
<DL><DT><DD></DL><P></DL>
|
||
|
<HR>
|
||
|
<DL><DT><B>Direct child classes:
|
||
|
</B><DD><A HREF="CollectOccludersVisitor.html">CollectOccludersVisitor</A><BR>
|
||
|
</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>
|