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

282 lines
11 KiB
HTML

<HTML>
<HEAD>
<TITLE>class OSGUTIL_EXPORT osgUtil::IntersectVisitor</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.3">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGUTIL_EXPORT <A HREF="#DOC.DOCU">osgUtil::IntersectVisitor</A>: public osg::NodeVisitor</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 Classes</H3><DD><DT>
<A HREF="#DOC.2.9.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.9.5"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> <B>IntersectVisitor</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual <B>~IntersectVisitor</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.7"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>reset</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>addSeg</B>(osg::Seg* seg)
<DD><I>Add a line segment to use for intersection testing during scene traversal</I>
<DT>
<A HREF="#DOC.2.9.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>setHitReportingMode</B>(<!1><A HREF="IntersectVisitor.html#DOC.2.9.2">HitReportingMode</A> hrm)
<DD><I>Set the mode of how hits should reported back from a traversal</I>
<DT>
<A HREF="#DOC.2.9.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.9.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.9.10"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.9.8">HitList</A>&amp; <B>getHitList</B>(osg::Seg* seg)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.11"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>int <B>getNumHits</B>(osg::Seg* seg)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.12"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool <B>hits</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.13"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(osg::Node&amp;)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.14"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(osg::Geode&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.15"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(osg::Billboard&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.16"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(osg::Group&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.17"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(osg::DCS&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.18"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(osg::Switch&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.19"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(osg::LOD&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.20"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>virtual void <B>apply</B>(osg::Scene&amp; node)
<DD><I></I>
</DL></P>
<P><DL>
<DT><H3>Public</H3><DD><DT>
<A HREF="#DOC.2.9.8"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef std::vector&lt;<!1><A HREF="Hit.html">Hit</A>&gt; <B>HitList</B>
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.9"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef std::map&lt;osg::Seg*,<!1><A HREF="IntersectVisitor.html#DOC.2.9.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.9.27"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.9.26">IntersectStateStack</A> <B>_intersectStateStack</B>
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.28"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>osg::NodePath <B>_nodePath</B>
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.29"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.9.2">HitReportingMode</A> <B>_hitReportingMode</B>
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.30"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="IntersectVisitor.html#DOC.2.9.9">SegHitListMap</A> <B>_segHitList</B>
<DD><I></I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<A HREF="#DOC.2.9.21"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool <B>intersect</B>(osg::GeoSet&amp; gset)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.22"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>pushMatrix</B>(const osg::Matrix&amp; matrix)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.23"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void <B>popMatrix</B>()
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.24"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool <B>enterNode</B>(osg::Node&amp; node)
<DD><I></I>
<DT>
<A HREF="#DOC.2.9.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.9.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>
<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.9.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.9.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.9.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.9.1">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void addSeg(osg::Seg* 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.9.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.9.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.9.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.9.3">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setHitReportingMode(<!1><A HREF="IntersectVisitor.html#DOC.2.9.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.9.4">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.9.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.9.8">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::vector&lt;<!1><A HREF="Hit.html">Hit</A>&gt; HitList</B></TT>
<DL><DT><DD></DL><P>
<A NAME="SegHitListMap">
<A NAME="DOC.2.9.9">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::map&lt;osg::Seg*,<!1><A HREF="IntersectVisitor.html#DOC.2.9.8">HitList</A> &gt; SegHitListMap</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getHitList">
<A NAME="DOC.2.9.10">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.9.8">HitList</A>&amp; getHitList(osg::Seg* seg)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getNumHits">
<A NAME="DOC.2.9.11">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int getNumHits(osg::Seg* seg)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="hits">
<A NAME="DOC.2.9.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.9.13">
<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 NAME="DOC.2.9.14">
<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 NAME="DOC.2.9.15">
<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 NAME="DOC.2.9.16">
<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 NAME="DOC.2.9.17">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::DCS&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="apply">
<A NAME="DOC.2.9.18">
<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 NAME="DOC.2.9.19">
<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="apply">
<A NAME="DOC.2.9.20">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void apply(osg::Scene&amp; node)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="intersect">
<A NAME="DOC.2.9.21">
<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 NAME="DOC.2.9.22">
<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 NAME="DOC.2.9.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.9.24">
<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 NAME="DOC.2.9.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.9.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.9.27">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.9.26">IntersectStateStack</A> _intersectStateStack</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_nodePath">
<A NAME="DOC.2.9.28">
<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 NAME="DOC.2.9.29">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.9.2">HitReportingMode</A> _hitReportingMode</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_segHitList">
<A NAME="DOC.2.9.30">
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="IntersectVisitor.html#DOC.2.9.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>