OpenSceneGraph/doc/doc++/osgUtil/IntersectVisitor.html
2002-02-09 10:54:18 +00:00

233 lines
10 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGUTIL_EXPORT osgUtil::IntersectVisitor</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGUTIL_EXPORT <A HREF="#DOC.DOCU">osgUtil::IntersectVisitor</A></H2></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="Mosg::NodeVisitor,M,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 Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.15.1">IntersectVisitor</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.15.2">~IntersectVisitor</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.15.3">reset</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.15.4">addLineSegment</A></B>(osg::LineSegment* seg)
<DD><I>Add a line segment to use for intersection testing during scene traversal</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.15.6">setHitReportingMode</A></B>(<!1><A HREF="IntersectVisitor.html#DOC.2.15.5">HitReportingMode</A> hrm)
<DD><I>Set the mode of how hits should reported back from a traversal</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="IntersectVisitor.html#DOC.2.15.5">HitReportingMode</A> <B><A HREF="#DOC.2.15.7">getHitReportingMode</A></B>()
<DD><I>Get the mode of how hits should reported back from a traversal</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef std::map&lt;osg::LineSegment*,HitList &gt; LineSegmentHitListMap HitList&amp; <B><A HREF="#DOC.2.15.8">getHitList</A></B>(osg::LineSegment* seg)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.15.9">getNumHits</A></B>(osg::LineSegment* seg)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.15.10">hits</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.11">apply</A></B>(osg::Node&amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.12">apply</A></B>(osg::Geode&amp; node)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.13">apply</A></B>(osg::Billboard&amp; node)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.14">apply</A></B>(osg::Group&amp; node)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.15">apply</A></B>(osg::Transform&amp; node)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.16">apply</A></B>(osg::Switch&amp; node)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.17">apply</A></B>(osg::LOD&amp; 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.15.5">HitReportingMode</A></B>
<DD><I>Modes to control how IntersectVisitor reports hits.</I>
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>osg::NodePath <B><A HREF="#DOC.2.15.25">_nodePath</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="IntersectVisitor.html#DOC.2.15.5">HitReportingMode</A> <B><A HREF="#DOC.2.15.26">_hitReportingMode</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>LineSegmentHitListMap <B><A HREF="#DOC.2.15.27">_segHitList</A></B>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.15.19">intersect</A></B>(osg::GeoSet&amp; gset)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.15.20">pushMatrix</A></B>(const osg::Matrix&amp; matrix)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.15.21">popMatrix</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.15.22">enterNode</A></B>(osg::Node&amp; node)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.15.23">leaveNode</A></B>()
</DL></P>
<P><DL>
<DT><H3>Protected Members</H3><DD><DT>
class <B><A HREF="IntersectState.html">IntersectState</A></B>: public osg::Referenced
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef std::vector&lt;osg::ref_ptr&lt;<!1><A HREF="IntersectState.html">IntersectState</A>&gt; &gt; IntersectStateStack IntersectStateStack <B><A HREF="#DOC.2.15.24">_intersectStateStack</A></B>
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>Basic visitor for ray based collisions of a scene.
Note, still in development, current version has not
practical functionality!</BLOCKQUOTE>
<DL>
<A NAME="IntersectVisitor"></A>
<A NAME="DOC.2.15.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> IntersectVisitor()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~IntersectVisitor"></A>
<A NAME="DOC.2.15.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~IntersectVisitor()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="reset"></A>
<A NAME="DOC.2.15.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void reset()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="addLineSegment"></A>
<A NAME="DOC.2.15.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void addLineSegment(osg::LineSegment* 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>
<A NAME="DOC.2.15.5"></A>
<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>
<A NAME="DOC.2.15.5.1"></A>
<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>
<A NAME="DOC.2.15.5.2"></A>
<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>
<A NAME="DOC.2.15.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setHitReportingMode(<!1><A HREF="IntersectVisitor.html#DOC.2.15.5">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>
<A NAME="DOC.2.15.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.15.5">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="getHitList"></A>
<A NAME="DOC.2.15.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::map&lt;osg::LineSegment*,HitList &gt; LineSegmentHitListMap HitList&amp; getHitList(osg::LineSegment* seg)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getNumHits"></A>
<A NAME="DOC.2.15.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int getNumHits(osg::LineSegment* seg)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="hits"></A>
<A NAME="DOC.2.15.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool hits()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.15.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::Node&amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.15.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::Geode&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.15.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::Billboard&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.15.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::Group&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.15.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::Transform&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.15.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::Switch&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply"></A>
<A NAME="DOC.2.15.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::LOD&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="intersect"></A>
<A NAME="DOC.2.15.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool intersect(osg::GeoSet&amp; gset)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="pushMatrix"></A>
<A NAME="DOC.2.15.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void pushMatrix(const osg::Matrix&amp; matrix)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="popMatrix"></A>
<A NAME="DOC.2.15.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void popMatrix()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="enterNode"></A>
<A NAME="DOC.2.15.22"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool enterNode(osg::Node&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="leaveNode"></A>
<A NAME="DOC.2.15.23"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void leaveNode()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_intersectStateStack"></A>
<A NAME="DOC.2.15.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::vector&lt;osg::ref_ptr&lt;<!1><A HREF="IntersectState.html">IntersectState</A>&gt; &gt; IntersectStateStack IntersectStateStack _intersectStateStack</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_nodePath"></A>
<A NAME="DOC.2.15.25"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>osg::NodePath _nodePath</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_hitReportingMode"></A>
<A NAME="DOC.2.15.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.15.5">HitReportingMode</A> _hitReportingMode</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_segHitList"></A>
<A NAME="DOC.2.15.27"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>LineSegmentHitListMap _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><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>