OpenSceneGraph/doc/osg/IntersectVisitor.html
2001-01-10 16:32:10 +00:00

310 lines
13 KiB
HTML

<HTML>
<HEAD>
<TITLE>class SG_EXPORT osg::IntersectVisitor</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.3">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::IntersectVisitor</A>: public <!1><A HREF="NodeVisitor.html#DOC.2.28.7">NodeVisitor</A></H2>
<BLOCKQUOTE>Basic visitor for ray based collisions of a scene.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
<param name=classes value="CNodeVisitor,MNodeVisitor.html,CIntersectVisitor,MIntersectVisitor.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 Classes</H3><DD><DT>
<A HREF="#DOC.2.20.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>enum <B>HitReportingMode</B>
<DD><I>Modes to control how IntersectVisitor reports hits.</I>
</DL></P>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<A HREF="#DOC.2.20.5"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> <B>IntersectVisitor</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual <B>~IntersectVisitor</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.7"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>reset</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>addSeg</B>(<!1><A HREF="Seg.html">Seg</A>* seg)
<DD><I>Add a line segment to use for intersection testing during scene traversal</I>
<DT>
<A HREF="#DOC.2.20.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>setHitReportingMode</B>(<!1><A HREF="IntersectVisitor.html#DOC.2.20.2">HitReportingMode</A> hrm)
<DD><I>Set the mode of how hits should reported back from a traversal</I>
<DT>
<A HREF="#DOC.2.20.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.20.2">HitReportingMode</A> <B>getHitReportingMode</B>()
<DD><I>Get the mode of how hits should reported back from a traversal</I>
<DT>
<A HREF="#DOC.2.20.10"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.20.8">HitList</A>&amp; <B>getHitList</B>(<!1><A HREF="Seg.html">Seg</A>* seg)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.11"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>int <B>getNumHits</B>(<!1><A HREF="Seg.html">Seg</A>* seg)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.12"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool <B>hits</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.13"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(<!1><A HREF="Node.html">Node</A>&amp;)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.14"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(<!1><A HREF="Geode.html">Geode</A>&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.15"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(<!1><A HREF="Billboard.html">Billboard</A>&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.16"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(<!1><A HREF="Group.html">Group</A>&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.17"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(<!1><A HREF="DCS.html">DCS</A>&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.18"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(<!1><A HREF="Switch.html">Switch</A>&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.19"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(<!1><A HREF="LOD.html">LOD</A>&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.20"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(<!1><A HREF="Scene.html">Scene</A>&amp; node)
<DD><I></I>
</DL></P>
<P><DL>
<DT><H3>Public</H3><DD><DT>
<A HREF="#DOC.2.20.8"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef std::multiset&lt;<!1><A HREF="Hit.html">Hit</A>&gt; <B>HitList</B>
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.9"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef std::map&lt;<!1><A HREF="Seg.html">Seg</A>*,<!1><A HREF="IntersectVisitor.html#DOC.2.20.8">HitList</A> &gt; <B>SegHitListMap</B>
<DD><I></I>
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<A HREF="#DOC.2.20.27"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.20.26">IntersectStateStack</A> <B>_intersectStateStack</B>
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.28"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="NodePath.html">NodePath</A> <B>_nodePath</B>
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.29"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.20.2">HitReportingMode</A> <B>_hitReportingMode</B>
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.30"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.20.9">SegHitListMap</A> <B>_segHitList</B>
<DD><I></I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<A HREF="#DOC.2.20.21"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool <B>intersect</B>(<!1><A HREF="GeoSet.html">GeoSet</A>&amp; gset)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.22"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>pushMatrix</B>(const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.23"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>popMatrix</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.24"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool <B>enterNode</B>(<!1><A HREF="Node.html">Node</A>&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.20.25"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>leaveNode</B>()
<DD><I></I>
</DL></P>
<P><DL>
<DT><H3>Protected</H3><DD><DT>
<A HREF="#DOC.2.20.26"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef std::vector&lt;<!1><A HREF="IntersectState.html">IntersectState</A>*&gt; <B>IntersectStateStack</B>
<DD><I></I>
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="NodeVisitor.html">NodeVisitor</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Classes</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum <B>TraversalMode</B>
</DL></P>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setTraverseMode</B>(<!1><A HREF="NodeVisitor.html#DOC.2.28.1">TraversalMode</A> mode)
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="NodeVisitor.html#DOC.2.28.1">TraversalMode</A> <B>getTraverseMode</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setTraverseVisitor</B>(<!1><A HREF="NodeVisitor.html#DOC.2.28.7">NodeVisitor</A>* nv)
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="NodeVisitor.html#DOC.2.28.7">NodeVisitor</A>* <B>getTraverseVisitor</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>traverse</B>(<!1><A HREF="Node.html">Node</A>&amp; node)
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="NodeVisitor.html#DOC.2.28.7">NodeVisitor</A>* <B>_traverseVisitor</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="NodeVisitor.html#DOC.2.28.1">TraversalMode</A> <B>_traverseMode</B>
</DL></P>
</DL>
<A NAME="DOC.DOCU">
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>Basic visitor for ray based collisions of a scene.
Note, still in development, current version has not
pratical functionality!</BLOCKQUOTE>
<DL>
<A NAME="IntersectVisitor">
<A NAME="DOC.2.20.5">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> IntersectVisitor()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~IntersectVisitor">
<A NAME="DOC.2.20.6">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~IntersectVisitor()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="reset">
<A NAME="DOC.2.20.7">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void reset()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="addSeg">
<A NAME="DOC.2.20.1">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void addSeg(<!1><A HREF="Seg.html">Seg</A>* seg)</B></TT>
<DD>Add a line segment to use for intersection testing during scene traversal
<DL><DT><DD></DL><P>
<A NAME="HitReportingMode">
<A NAME="DOC.2.20.2">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum HitReportingMode</B></TT>
<DD>Modes to control how IntersectVisitor reports hits.
<DL><DT><DD></DL><P><DL>
<A NAME="ONLY_NEAREST_HIT">
<A NAME="DOC.2.20.2.1">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ONLY_NEAREST_HIT</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ALL_HITS">
<A NAME="DOC.2.20.2.2">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ALL_HITS</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="setHitReportingMode">
<A NAME="DOC.2.20.3">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setHitReportingMode(<!1><A HREF="IntersectVisitor.html#DOC.2.20.2">HitReportingMode</A> hrm)</B></TT>
<DD>Set the mode of how hits should reported back from a traversal
<DL><DT><DD></DL><P>
<A NAME="getHitReportingMode">
<A NAME="DOC.2.20.4">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.20.2">HitReportingMode</A> getHitReportingMode()</B></TT>
<DD>Get the mode of how hits should reported back from a traversal
<DL><DT><DD></DL><P>
<A NAME="HitList">
<A NAME="DOC.2.20.8">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::multiset&lt;<!1><A HREF="Hit.html">Hit</A>&gt; HitList</B></TT>
<DL><DT><DD></DL><P>
<A NAME="SegHitListMap">
<A NAME="DOC.2.20.9">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::map&lt;<!1><A HREF="Seg.html">Seg</A>*,<!1><A HREF="IntersectVisitor.html#DOC.2.20.8">HitList</A> &gt; SegHitListMap</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getHitList">
<A NAME="DOC.2.20.10">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.20.8">HitList</A>&amp; getHitList(<!1><A HREF="Seg.html">Seg</A>* seg)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getNumHits">
<A NAME="DOC.2.20.11">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int getNumHits(<!1><A HREF="Seg.html">Seg</A>* seg)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="hits">
<A NAME="DOC.2.20.12">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool hits()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.20.13">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Node.html">Node</A>&amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.20.14">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Geode.html">Geode</A>&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.20.15">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Billboard.html">Billboard</A>&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.20.16">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Group.html">Group</A>&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.20.17">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="DCS.html">DCS</A>&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.20.18">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Switch.html">Switch</A>&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.20.19">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="LOD.html">LOD</A>&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.20.20">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(<!1><A HREF="Scene.html">Scene</A>&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="intersect">
<A NAME="DOC.2.20.21">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool intersect(<!1><A HREF="GeoSet.html">GeoSet</A>&amp; gset)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="pushMatrix">
<A NAME="DOC.2.20.22">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void pushMatrix(const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="popMatrix">
<A NAME="DOC.2.20.23">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void popMatrix()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="enterNode">
<A NAME="DOC.2.20.24">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool enterNode(<!1><A HREF="Node.html">Node</A>&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="leaveNode">
<A NAME="DOC.2.20.25">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void leaveNode()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="IntersectStateStack">
<A NAME="DOC.2.20.26">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::vector&lt;<!1><A HREF="IntersectState.html">IntersectState</A>*&gt; IntersectStateStack</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_intersectStateStack">
<A NAME="DOC.2.20.27">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.20.26">IntersectStateStack</A> _intersectStateStack</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_nodePath">
<A NAME="DOC.2.20.28">
<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>
<A NAME="_hitReportingMode">
<A NAME="DOC.2.20.29">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.20.2">HitReportingMode</A> _hitReportingMode</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_segHitList">
<A NAME="DOC.2.20.30">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.20.9">SegHitListMap</A> _segHitList</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><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://www.linuxsupportline.com/~doc++">DOC++</A>.
</BODY>