Checked in osgParticle, writtten by Marco Jez.

This commit is contained in:
Robert Osfield
2002-06-05 12:44:55 +00:00
parent f8ffc692be
commit 9ba7505d1e
110 changed files with 10467 additions and 0 deletions

View File

@@ -0,0 +1,132 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::AccelOperator</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::AccelOperator</A></H2></H2><BLOCKQUOTE>An operator class that applies a constant acceleration to the particles</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,COperator,MOperator.html,CAccelOperator,MAccelOperator.html">
<param name=before value="M,M,M">
<param name=after value="Md_SP,Md_,M">
<param name=indent value="0,1,2">
<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.1.1">META_Object</A></B>(<!1><A HREF="AccelOperator.html">AccelOperator</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.1.6">AccelOperator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.1.7">AccelOperator</A></B>(const <!1><A HREF="AccelOperator.html#DOC.2.1.7">AccelOperator</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.1.8">getAcceleration</A></B>() const
<DD><I>Get the acceleration vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.1.9">setAcceleration</A></B>(const osg::Vec3 &amp;v)
<DD><I>Set the acceleration vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.1.10">setToGravity</A></B>(float scale)
<DD><I>Quickly set the acceleration vector to the gravity on earth (0, 0, -981).</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.1.11">operate</A></B>(<!1><A HREF="Particle.html">Particle</A>* P, double dt)
<DD><I>Apply the acceleration to a particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.1.12">beginOperate</A></B>(<!1><A HREF="Program.html">Program</A>* prg)
<DD><I>Perform some initializations.</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.1.2">~AccelOperator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="AccelOperator.html">AccelOperator</A>&amp; <B><A HREF="#DOC.2.1.3">operator=</A></B>(const <!1><A HREF="AccelOperator.html">AccelOperator</A> &amp;)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Operator.html">Operator</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>endOperate</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isEnabled</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setEnabled</B>(bool v)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An operator class that applies a constant acceleration to the particles</BLOCKQUOTE>
<DL>
<A NAME="META_Object"></A>
<A NAME="DOC.2.1.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="AccelOperator.html">AccelOperator</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~AccelOperator"></A>
<A NAME="DOC.2.1.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~AccelOperator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.1.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="AccelOperator.html">AccelOperator</A>&amp; operator=(const <!1><A HREF="AccelOperator.html">AccelOperator</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="AccelOperator"></A>
<A NAME="DOC.2.1.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline AccelOperator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="AccelOperator"></A>
<A NAME="DOC.2.1.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline AccelOperator(const <!1><A HREF="AccelOperator.html#DOC.2.1.7">AccelOperator</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getAcceleration"></A>
<A NAME="DOC.2.1.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getAcceleration() const </B></TT>
<DD>Get the acceleration vector
<DL><DT><DD></DL><P>
<A NAME="setAcceleration"></A>
<A NAME="DOC.2.1.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setAcceleration(const osg::Vec3 &amp;v)</B></TT>
<DD>Set the acceleration vector
<DL><DT><DD></DL><P>
<A NAME="setToGravity"></A>
<A NAME="DOC.2.1.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setToGravity(float scale)</B></TT>
<DD>Quickly set the acceleration vector to the gravity on earth (0, 0, -981).
The acceleration will be multiplied by the <CODE>scale</CODE> parameter.
<DL><DT><DD></DL><P>
<A NAME="operate"></A>
<A NAME="DOC.2.1.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void operate(<!1><A HREF="Particle.html">Particle</A>* P, double dt)</B></TT>
<DD>Apply the acceleration to a particle. Do not call this method manually.
<DL><DT><DD></DL><P>
<A NAME="beginOperate"></A>
<A NAME="DOC.2.1.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void beginOperate(<!1><A HREF="Program.html">Program</A>* prg)</B></TT>
<DD>Perform some initializations. Do not call this method manually.
<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>

View File

@@ -0,0 +1,115 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::CenteredPlacer</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::CenteredPlacer</A></H2></H2><BLOCKQUOTE>An abstract placer base class for placers which need a <I>center point</I></BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=155>
<param name=classes value="Mosg::Object,M,CPlacer,MPlacer.html,CCenteredPlacer,MCenteredPlacer.html,CSectorPlacer,MSectorPlacer.html,CPointPlacer,MPointPlacer.html">
<param name=before value="M,M,M,M|_,Mr_">
<param name=after value="Md_SP,Md_,M,M,M">
<param name=indent value="0,1,2,2,2">
<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>virtual const char* <B><A HREF="#DOC.2.2.1">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.2.2">isSameKindAs</A></B>(const osg::Object* obj) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.2.5">CenteredPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.2.6">CenteredPlacer</A></B>(const <!1><A HREF="CenteredPlacer.html#DOC.2.2.6">CenteredPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.2.7">getCenter</A></B>() const
<DD><I>Get the center point</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.2.8">setCenter</A></B>(const osg::Vec3 &amp;v)
<DD><I>Set the center point</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.2.9">setCenter</A></B>(float x, float y, float z)
<DD><I>Set the center point</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.2.3">~CenteredPlacer</A></B>()
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Placer.html">Placer</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>place</B>(<!1><A HREF="Particle.html">Particle</A>* P) const
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Placer.html">Placer</A>&amp; <B>operator=</B>(const <!1><A HREF="Placer.html">Placer</A> &amp;)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An abstract placer base class for placers which need a <I>center point</I></BLOCKQUOTE>
<DL>
<A NAME="className"></A>
<A NAME="DOC.2.2.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.2.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="~CenteredPlacer"></A>
<A NAME="DOC.2.2.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~CenteredPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="CenteredPlacer"></A>
<A NAME="DOC.2.2.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline CenteredPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="CenteredPlacer"></A>
<A NAME="DOC.2.2.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline CenteredPlacer(const <!1><A HREF="CenteredPlacer.html#DOC.2.2.6">CenteredPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getCenter"></A>
<A NAME="DOC.2.2.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getCenter() const </B></TT>
<DD>Get the center point
<DL><DT><DD></DL><P>
<A NAME="setCenter"></A>
<A NAME="DOC.2.2.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setCenter(const osg::Vec3 &amp;v)</B></TT>
<DD>Set the center point
<DL><DT><DD></DL><P>
<A NAME="setCenter"></A>
<A NAME="DOC.2.2.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setCenter(float x, float y, float z)</B></TT>
<DD>Set the center point
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="SectorPlacer.html">SectorPlacer</A><BR>
<A HREF="PointPlacer.html">PointPlacer</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>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,87 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::Counter</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::Counter</A></H2></H2><HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CCounter,MCounter.html,CVariableRateCounter,MVariableRateCounter.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>virtual const char* <B><A HREF="#DOC.2.3.1">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.3.2">isSameKindAs</A></B>(const osg::Object* obj) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual int <B><A HREF="#DOC.2.3.3">numParticlesToCreate</A></B>(double dt) const = 0
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.3.6">Counter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.3.7">Counter</A></B>(const <!1><A HREF="Counter.html#DOC.2.3.7">Counter</A> &amp;copy, const osg::CopyOp &amp;copyop)
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.3.4">~Counter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Counter.html">Counter</A>&amp; <B><A HREF="#DOC.2.3.5">operator=</A></B>(const <!1><A HREF="Counter.html">Counter</A> &amp;)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<DL>
<A NAME="className"></A>
<A NAME="DOC.2.3.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.3.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="numParticlesToCreate"></A>
<A NAME="DOC.2.3.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual int numParticlesToCreate(double dt) const = 0</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~Counter"></A>
<A NAME="DOC.2.3.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ~Counter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.3.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Counter.html">Counter</A>&amp; operator=(const <!1><A HREF="Counter.html">Counter</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Counter"></A>
<A NAME="DOC.2.3.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Counter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Counter"></A>
<A NAME="DOC.2.3.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Counter(const <!1><A HREF="Counter.html#DOC.2.3.7">Counter</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="VariableRateCounter.html">VariableRateCounter</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>

View File

@@ -0,0 +1,181 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::Emitter</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::Emitter</A></H2></H2><BLOCKQUOTE>An abstract base class for particle emitters.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Node,M,CParticleProcessor,MParticleProcessor.html,CEmitter,MEmitter.html,CModularEmitter,MModularEmitter.html">
<param name=before value="M,M,M,M^_">
<param name=after value="Md_SP,Md_,M,M">
<param name=indent value="0,1,2,2">
<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.4.1">Emitter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.4.2">Emitter</A></B>(const <!1><A HREF="Emitter.html#DOC.2.4.2">Emitter</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const char* <B><A HREF="#DOC.2.4.3">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.4.4">isSameKindAs</A></B>(const osg::Object* obj)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.4.5">accept</A></B>(osg::NodeVisitor&amp; nv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Particle.html">Particle</A>&amp; <B><A HREF="#DOC.2.4.11">getParticleTemplate</A></B>() const
<DD><I>Get the particle template</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.4.12">setParticleTemplate</A></B>(const <!1><A HREF="Particle.html">Particle</A> &amp;p)
<DD><I>Set the particle template (particle is copied)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.4.13">getUseDefaultTemplate</A></B>() const
<DD><I>Return whether the particle system's default template should be used</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.4.14">setUseDefaultTemplate</A></B>(bool v)
<DD><I>Set whether the default particle template should be used.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.4.15">process</A></B>(double dt)
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.4.6">~Emitter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Emitter.html">Emitter</A>&amp; <B><A HREF="#DOC.2.4.7">operator=</A></B>(const <!1><A HREF="Emitter.html">Emitter</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.4.8">emit</A></B>(double dt) = 0
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="ParticleProcessor.html">ParticleProcessor</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> <B>getReferenceFrame</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>traverse</B>(osg::NodeVisitor &amp;nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline ParticleProcessor::ReferenceFrame <B>getReferenceFrame</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setReferenceFrame</B>(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isEnabled</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setEnabled</B>(bool v)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setParticleSystem</B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const bool <B>computeBound</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Matrix&amp; <B>getLocalToWorldMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Matrix&amp; <B>getWorldToLocalMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>transformLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>transformWorldToLocal</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>rotateLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>rotateWorldToLocal</B>(const osg::Vec3 &amp;P)
</DL></P>
<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum <B>ReferenceFrame</B>
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An abstract base class for particle emitters.
Descendant classes must override the <CODE>emit()</CODE> method to generate new particles by
calling the <CODE>ParticleSystem::createParticle()</CODE> method on the particle system associated
to the emitter.</BLOCKQUOTE>
<DL>
<A NAME="Emitter"></A>
<A NAME="DOC.2.4.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Emitter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Emitter"></A>
<A NAME="DOC.2.4.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Emitter(const <!1><A HREF="Emitter.html#DOC.2.4.2">Emitter</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="className"></A>
<A NAME="DOC.2.4.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.4.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="accept"></A>
<A NAME="DOC.2.4.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void accept(osg::NodeVisitor&amp; nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~Emitter"></A>
<A NAME="DOC.2.4.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Emitter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.4.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Emitter.html">Emitter</A>&amp; operator=(const <!1><A HREF="Emitter.html">Emitter</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="emit"></A>
<A NAME="DOC.2.4.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void emit(double dt) = 0</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getParticleTemplate"></A>
<A NAME="DOC.2.4.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Particle.html">Particle</A>&amp; getParticleTemplate() const </B></TT>
<DD>Get the particle template
<DL><DT><DD></DL><P>
<A NAME="setParticleTemplate"></A>
<A NAME="DOC.2.4.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setParticleTemplate(const <!1><A HREF="Particle.html">Particle</A> &amp;p)</B></TT>
<DD>Set the particle template (particle is copied)
<DL><DT><DD></DL><P>
<A NAME="getUseDefaultTemplate"></A>
<A NAME="DOC.2.4.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool getUseDefaultTemplate() const </B></TT>
<DD>Return whether the particle system's default template should be used
<DL><DT><DD></DL><P>
<A NAME="setUseDefaultTemplate"></A>
<A NAME="DOC.2.4.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setUseDefaultTemplate(bool v)</B></TT>
<DD>Set whether the default particle template should be used.
When this flag is true, the particle template is ignored, and the
particle system's default template is used instead.
<DL><DT><DD></DL><P>
<A NAME="process"></A>
<A NAME="DOC.2.4.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void process(double dt)</B></TT>
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="ModularEmitter.html">ModularEmitter</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>

View File

@@ -0,0 +1,175 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::FluidFrictionOperator</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::FluidFrictionOperator</A></H2></H2><BLOCKQUOTE>An operator that simulates the friction of a fluid.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,COperator,MOperator.html,CFluidFrictionOperator,MFluidFrictionOperator.html">
<param name=before value="M,M,M">
<param name=after value="Md_SP,Md_,M">
<param name=indent value="0,1,2">
<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.5.1">FluidFrictionOperator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.5.2">FluidFrictionOperator</A></B>(const <!1><A HREF="FluidFrictionOperator.html#DOC.2.5.2">FluidFrictionOperator</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.5.3">META_Object</A></B>(<!1><A HREF="FluidFrictionOperator.html">FluidFrictionOperator</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.5.4">operate</A></B>(<!1><A HREF="Particle.html">Particle</A>* P, double dt)
<DD><I>Apply the friction forces to a particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.5.13">getFluidDensity</A></B>() const
<DD><I>Get the density of the fluid</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.5.14">getFluidViscosity</A></B>() const
<DD><I>Get the viscosity of the fluid</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.5.15">setFluidDensity</A></B>(float d)
<DD><I>Set the density of the fluid</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.5.16">setFluidViscosity</A></B>(float v)
<DD><I>Set the viscosity of the fluid</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.5.17">setFluidToAir</A></B>()
<DD><I>Set the fluid parameters as for air (20<32>C temperature)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.5.18">setFluidToWater</A></B>()
<DD><I>Set the fluid parameters as for pure water (20<32>C temperature)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.5.19">getOverrideRadius</A></B>() const
<DD><I>Get the overriden radius value</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.5.20">setOverrideRadius</A></B>(float r)
<DD><I>Set the overriden radius value (pass 0 if you want to use particle's radius)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.5.21">beginOperate</A></B>(<!1><A HREF="Program.html">Program</A>* prg)
<DD><I>Perform some initializations.</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.5.5">~FluidFrictionOperator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="FluidFrictionOperator.html">FluidFrictionOperator</A>&amp; <B><A HREF="#DOC.2.5.6">operator=</A></B>(const <!1><A HREF="FluidFrictionOperator.html">FluidFrictionOperator</A> &amp;)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Operator.html">Operator</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>endOperate</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isEnabled</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setEnabled</B>(bool v)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An operator that simulates the friction of a fluid.
By using this operator you can let the particles move in a fluid of a given <I>density</I>
and <I>viscosity</I>. There are two functions to quickly setup the parameters for pure water
and air. You can decide whether to compute the forces using the particle's physical
radius or another value, by calling the <CODE>setOverrideRadius()</CODE> method.</BLOCKQUOTE>
<DL>
<A NAME="FluidFrictionOperator"></A>
<A NAME="DOC.2.5.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> FluidFrictionOperator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="FluidFrictionOperator"></A>
<A NAME="DOC.2.5.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> FluidFrictionOperator(const <!1><A HREF="FluidFrictionOperator.html#DOC.2.5.2">FluidFrictionOperator</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="META_Object"></A>
<A NAME="DOC.2.5.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="FluidFrictionOperator.html">FluidFrictionOperator</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operate"></A>
<A NAME="DOC.2.5.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void operate(<!1><A HREF="Particle.html">Particle</A>* P, double dt)</B></TT>
<DD>Apply the friction forces to a particle. Do not call this method manually.
<DL><DT><DD></DL><P>
<A NAME="~FluidFrictionOperator"></A>
<A NAME="DOC.2.5.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~FluidFrictionOperator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.5.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="FluidFrictionOperator.html">FluidFrictionOperator</A>&amp; operator=(const <!1><A HREF="FluidFrictionOperator.html">FluidFrictionOperator</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getFluidDensity"></A>
<A NAME="DOC.2.5.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getFluidDensity() const </B></TT>
<DD>Get the density of the fluid
<DL><DT><DD></DL><P>
<A NAME="getFluidViscosity"></A>
<A NAME="DOC.2.5.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getFluidViscosity() const </B></TT>
<DD>Get the viscosity of the fluid
<DL><DT><DD></DL><P>
<A NAME="setFluidDensity"></A>
<A NAME="DOC.2.5.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setFluidDensity(float d)</B></TT>
<DD>Set the density of the fluid
<DL><DT><DD></DL><P>
<A NAME="setFluidViscosity"></A>
<A NAME="DOC.2.5.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setFluidViscosity(float v)</B></TT>
<DD>Set the viscosity of the fluid
<DL><DT><DD></DL><P>
<A NAME="setFluidToAir"></A>
<A NAME="DOC.2.5.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setFluidToAir()</B></TT>
<DD>Set the fluid parameters as for air (20<32>C temperature)
<DL><DT><DD></DL><P>
<A NAME="setFluidToWater"></A>
<A NAME="DOC.2.5.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setFluidToWater()</B></TT>
<DD>Set the fluid parameters as for pure water (20<32>C temperature)
<DL><DT><DD></DL><P>
<A NAME="getOverrideRadius"></A>
<A NAME="DOC.2.5.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getOverrideRadius() const </B></TT>
<DD>Get the overriden radius value
<DL><DT><DD></DL><P>
<A NAME="setOverrideRadius"></A>
<A NAME="DOC.2.5.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setOverrideRadius(float r)</B></TT>
<DD>Set the overriden radius value (pass 0 if you want to use particle's radius)
<DL><DT><DD></DL><P>
<A NAME="beginOperate"></A>
<A NAME="DOC.2.5.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void beginOperate(<!1><A HREF="Program.html">Program</A>* prg)</B></TT>
<DD>Perform some initializations. Do not call this method manually.
<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>

View File

@@ -0,0 +1,125 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::ForceOperator</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::ForceOperator</A></H2></H2><BLOCKQUOTE>An operator that applies a constant force to the particles.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,COperator,MOperator.html,CForceOperator,MForceOperator.html">
<param name=before value="M,M,M">
<param name=after value="Md_SP,Md_,M">
<param name=indent value="0,1,2">
<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.6.1">META_Object</A></B>(<!1><A HREF="ForceOperator.html">ForceOperator</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.6.6">ForceOperator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.6.7">ForceOperator</A></B>(const <!1><A HREF="ForceOperator.html#DOC.2.6.7">ForceOperator</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.6.8">getForce</A></B>() const
<DD><I>Get the force vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.6.9">setForce</A></B>(const osg::Vec3 &amp;v)
<DD><I>Set the force vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.6.10">operate</A></B>(<!1><A HREF="Particle.html">Particle</A>* P, double dt)
<DD><I>Apply the force to a particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.6.11">beginOperate</A></B>(<!1><A HREF="Program.html">Program</A>* prg)
<DD><I>Perform some initialization.</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.6.2">~ForceOperator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ForceOperator.html">ForceOperator</A>&amp; <B><A HREF="#DOC.2.6.3">operator=</A></B>(const <!1><A HREF="ForceOperator.html">ForceOperator</A> &amp;)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Operator.html">Operator</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>endOperate</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isEnabled</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setEnabled</B>(bool v)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An operator that applies a constant force to the particles.
Remember that if the mass of particles is expressed in <U>kg</U> and the lengths are
expressed in <U>meters</U>, then the force should be expressed in <U>Newtons</U>.</BLOCKQUOTE>
<DL>
<A NAME="META_Object"></A>
<A NAME="DOC.2.6.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="ForceOperator.html">ForceOperator</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~ForceOperator"></A>
<A NAME="DOC.2.6.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~ForceOperator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.6.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ForceOperator.html">ForceOperator</A>&amp; operator=(const <!1><A HREF="ForceOperator.html">ForceOperator</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ForceOperator"></A>
<A NAME="DOC.2.6.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline ForceOperator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ForceOperator"></A>
<A NAME="DOC.2.6.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline ForceOperator(const <!1><A HREF="ForceOperator.html#DOC.2.6.7">ForceOperator</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getForce"></A>
<A NAME="DOC.2.6.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getForce() const </B></TT>
<DD>Get the force vector
<DL><DT><DD></DL><P>
<A NAME="setForce"></A>
<A NAME="DOC.2.6.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setForce(const osg::Vec3 &amp;v)</B></TT>
<DD>Set the force vector
<DL><DT><DD></DL><P>
<A NAME="operate"></A>
<A NAME="DOC.2.6.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void operate(<!1><A HREF="Particle.html">Particle</A>* P, double dt)</B></TT>
<DD>Apply the force to a particle. Do not call this method manually.
<DL><DT><DD></DL><P>
<A NAME="beginOperate"></A>
<A NAME="DOC.2.6.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void beginOperate(<!1><A HREF="Program.html">Program</A>* prg)</B></TT>
<DD>Perform some initialization. Do not call this method manually.
<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>

View File

@@ -0,0 +1,112 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>General Bits</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<DL>
<DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_ACCELOPERATOR_"></A>
<B>OSGPARTICLE_ACCELOPERATOR_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_CENTEREDPLACER_"></A>
<B>OSGPARTICLE_CENTEREDPLACER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_COUNTER_"></A>
<B>OSGPARTICLE_COUNTER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_EMITTER_"></A>
<B>OSGPARTICLE_EMITTER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_EXPORT_"></A>
<B>OSGPARTICLE_EXPORT_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_EXPORT"></A>
<B>OSGPARTICLE_EXPORT</B>(dllexport)<DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_EXPORT"></A>
<B>OSGPARTICLE_EXPORT</B>(dllimport)<DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_EXPORT"></A>
<B>OSGPARTICLE_EXPORT</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_FLUIDFRICTIONOPERATOR_"></A>
<B>OSGPARTICLE_FLUIDFRICTIONOPERATOR_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_FORCEOPERATOR_"></A>
<B>OSGPARTICLE_FORCEOPERATOR_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_INTERPOLATOR_"></A>
<B>OSGPARTICLE_INTERPOLATOR_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_LINEARINTERPOLATOR_"></A>
<B>OSGPARTICLE_LINEARINTERPOLATOR_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_MODULAREMITTER_"></A>
<B>OSGPARTICLE_MODULAREMITTER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_MODULARPROGRAM_"></A>
<B>OSGPARTICLE_MODULARPROGRAM_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_MULTISEGMENTPLACER_"></A>
<B>OSGPARTICLE_MULTISEGMENTPLACER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_OPERATOR_"></A>
<B>OSGPARTICLE_OPERATOR_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_PARTICLE_"></A>
<B>OSGPARTICLE_PARTICLE_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_PARTICLEPROCESSOR_"></A>
<B>OSGPARTICLE_PARTICLEPROCESSOR_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_PARTICLESYSTEM_"></A>
<B>OSGPARTICLE_PARTICLESYSTEM_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_PARTICLESYSTEMUPDATER_"></A>
<B>OSGPARTICLE_PARTICLESYSTEMUPDATER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_PLACER_"></A>
<B>OSGPARTICLE_PLACER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_POINTPLACER_"></A>
<B>OSGPARTICLE_POINTPLACER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_PROGRAM_"></A>
<B>OSGPARTICLE_PROGRAM_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_RADIALSHOOTER_"></A>
<B>OSGPARTICLE_RADIALSHOOTER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_RANDOMRATECOUNTER_"></A>
<B>OSGPARTICLE_RANDOMRATECOUNTER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_RANGE_"></A>
<B>OSGPARTICLE_RANGE_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_SEGMENTPLACER_"></A>
<B>OSGPARTICLE_SEGMENTPLACER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_SHOOTER_"></A>
<B>OSGPARTICLE_SHOOTER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_VARIABLERATECOUNTER_"></A>
<B>OSGPARTICLE_VARIABLERATECOUNTER_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>#define<A NAME="OSGPARTICLE_VERSION_"></A>
<B>OSGPARTICLE_VERSION_</B><DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>OSGPARTICLE_EXPORT const char*<A NAME="osgParticleGetVersion"></A>
<B>osgParticleGetVersion</B>()<DT>
<IMG ALT="o" BORDER=0 SRC=icon1.gif>OSGPARTICLE_EXPORT const char*<A NAME="osgParticleGetLibraryName"></A>
<B>osgParticleGetLibraryName</B>()</DL>
<P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">Hierarchy of classes</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Hierarchy of Classes</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>Hierarchy of Classes</H1>
<UL>
<LI><A HREF="Counter.html">osgParticle::Counter</A><UL>
<LI><A HREF="VariableRateCounter.html">osgParticle::VariableRateCounter</A><UL>
<LI><A HREF="RandomRateCounter.html">osgParticle::RandomRateCounter</A></UL>
</UL>
<LI><A HREF="Interpolator.html">osgParticle::Interpolator</A><UL>
<LI><A HREF="LinearInterpolator.html">osgParticle::LinearInterpolator</A></UL>
<LI><A HREF="Operator.html">osgParticle::Operator</A><UL>
<LI><A HREF="AccelOperator.html">osgParticle::AccelOperator</A>
<LI><A HREF="FluidFrictionOperator.html">osgParticle::FluidFrictionOperator</A>
<LI><A HREF="ForceOperator.html">osgParticle::ForceOperator</A></UL>
<LI><A HREF="Particle.html">osgParticle::Particle</A>
<LI><A HREF="ParticleProcessor.html">osgParticle::ParticleProcessor</A><UL>
<LI><A HREF="Emitter.html">osgParticle::Emitter</A><UL>
<LI><A HREF="ModularEmitter.html">osgParticle::ModularEmitter</A></UL>
<LI><A HREF="Program.html">osgParticle::Program</A><UL>
<LI><A HREF="ModularProgram.html">osgParticle::ModularProgram</A></UL>
</UL>
<LI><A HREF="ParticleSystem.html">osgParticle::ParticleSystem</A>
<LI><A HREF="ParticleSystemUpdater.html">osgParticle::ParticleSystemUpdater</A>
<LI><A HREF="Placer.html">osgParticle::Placer</A><UL>
<LI><A HREF="CenteredPlacer.html">osgParticle::CenteredPlacer</A><UL>
<LI><A HREF="PointPlacer.html">osgParticle::PointPlacer</A>
<LI><A HREF="SectorPlacer.html">osgParticle::SectorPlacer</A></UL>
<LI><A HREF="MultiSegmentPlacer.html">osgParticle::MultiSegmentPlacer</A>
<LI><A HREF="SegmentPlacer.html">osgParticle::SegmentPlacer</A></UL>
<LI><A HREF="Shooter.html">osgParticle::Shooter</A><UL>
<LI><A HREF="RadialShooter.html">osgParticle::RadialShooter</A></UL>
</UL>
<P><I><A HREF="index.html">Alphabetic index</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>

View File

@@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Hierarchy of Classes</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>Hierarchy of classes</H1>
<UL>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Object,M,CCounter,MCounter.html,CVariableRateCounter,MVariableRateCounter.html,CRandomRateCounter,MRandomRateCounter.html">
<param name=before value="M,M,M^_,MSP^_">
<param name=after value="Md_,M,M,M">
<param name=indent value="0,1,1,1">
<param name=arrowdir value="down">
</APPLET>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CInterpolator,MInterpolator.html,CLinearInterpolator,MLinearInterpolator.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>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=155>
<param name=classes value="Mosg::Object,M,COperator,MOperator.html,CForceOperator,MForceOperator.html,CFluidFrictionOperator,MFluidFrictionOperator.html,CAccelOperator,MAccelOperator.html">
<param name=before value="M,M,M|_,MR_,Mr_">
<param name=after value="Md_,M,M,M,M">
<param name=indent value="0,1,1,1,1">
<param name=arrowdir value="down">
</APPLET>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=35>
<param name=classes value="CParticle,MParticle.html">
<param name=before value="M">
<param name=after value="M">
<param name=indent value="0">
<param name=arrowdir value="down">
</APPLET>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=185>
<param name=classes value="Mosg::Node,M,CParticleProcessor,MParticleProcessor.html,CProgram,MProgram.html,CModularProgram,MModularProgram.html,CEmitter,MEmitter.html,CModularEmitter,MModularEmitter.html">
<param name=before value="M,M,M|_,M||^_,Mr_,MSP^_">
<param name=after value="Md_,M,M,M,M,M">
<param name=indent value="0,1,1,1,1,1">
<param name=arrowdir value="down">
</APPLET>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
<param name=classes value="Mosg::Drawable,M,CParticleSystem,MParticleSystem.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>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
<param name=classes value="Mosg::Node,M,CParticleSystemUpdater,MParticleSystemUpdater.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>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=215>
<param name=classes value="Mosg::Object,M,CPlacer,MPlacer.html,CSegmentPlacer,MSegmentPlacer.html,CMultiSegmentPlacer,MMultiSegmentPlacer.html,CCenteredPlacer,MCenteredPlacer.html,CSectorPlacer,MSectorPlacer.html,CPointPlacer,MPointPlacer.html">
<param name=before value="M,M,M|_,MR_,Mr_,MSP|_,MSPr_">
<param name=after value="Md_,M,M,M,M,M,M">
<param name=indent value="0,1,1,1,1,1,1">
<param name=arrowdir value="down">
</APPLET>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CShooter,MShooter.html,CRadialShooter,MRadialShooter.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>
</UL>
<I><A HREF="index.html"> alphabetic index</A></I><P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>

View File

@@ -0,0 +1,115 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::Interpolator</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::Interpolator</A></H2></H2><BLOCKQUOTE>An abstract base class for implementing interpolators</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CInterpolator,MInterpolator.html,CLinearInterpolator,MLinearInterpolator.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.7.1">Interpolator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.7.2">Interpolator</A></B>(const <!1><A HREF="Interpolator.html#DOC.2.7.2">Interpolator</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const char* <B><A HREF="#DOC.2.7.3">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.7.4">isSameKindAs</A></B>(const osg::Object* obj) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual float <B><A HREF="#DOC.2.7.5">interpolate</A></B>(float t, float y1, float y2) const = 0
<DD><I>Interpolate between floats.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual osg::Vec2 <B><A HREF="#DOC.2.7.6">interpolate</A></B>(float t, const osg::Vec2 &amp;y1, const osg::Vec2 &amp;y2) const
<DD><I>Interpolate between 2-dimensional vectors.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual osg::Vec3 <B><A HREF="#DOC.2.7.7">interpolate</A></B>(float t, const osg::Vec3 &amp;y1, const osg::Vec3 &amp;y2) const
<DD><I>Interpolate between 3-dimensional vectors.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual osg::Vec4 <B><A HREF="#DOC.2.7.8">interpolate</A></B>(float t, const osg::Vec4 &amp;y1, const osg::Vec4 &amp;y2) const
<DD><I>Interpolate between 4-dimensional vectors.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>template&lt;class T_&gt; T_ <B><A HREF="#DOC.2.7.9">interpolate</A></B>(float t, const <!1><A HREF="range.html">range</A>&lt;T_&gt; &amp;r) const
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.7.10">~Interpolator</A></B>()
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An abstract base class for implementing interpolators</BLOCKQUOTE>
<DL>
<A NAME="Interpolator"></A>
<A NAME="DOC.2.7.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Interpolator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Interpolator"></A>
<A NAME="DOC.2.7.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Interpolator(const <!1><A HREF="Interpolator.html#DOC.2.7.2">Interpolator</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="className"></A>
<A NAME="DOC.2.7.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.7.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="interpolate"></A>
<A NAME="DOC.2.7.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual float interpolate(float t, float y1, float y2) const = 0</B></TT>
<DD>Interpolate between floats. Must be overriden in descendant classes.
<DL><DT><DD></DL><P>
<A NAME="interpolate"></A>
<A NAME="DOC.2.7.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual osg::Vec2 interpolate(float t, const osg::Vec2 &amp;y1, const osg::Vec2 &amp;y2) const </B></TT>
<DD>Interpolate between 2-dimensional vectors. Default behavior is to interpolate each component separately.
<DL><DT><DD></DL><P>
<A NAME="interpolate"></A>
<A NAME="DOC.2.7.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual osg::Vec3 interpolate(float t, const osg::Vec3 &amp;y1, const osg::Vec3 &amp;y2) const </B></TT>
<DD>Interpolate between 3-dimensional vectors. Default behavior is to interpolate each component separately.
<DL><DT><DD></DL><P>
<A NAME="interpolate"></A>
<A NAME="DOC.2.7.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual osg::Vec4 interpolate(float t, const osg::Vec4 &amp;y1, const osg::Vec4 &amp;y2) const </B></TT>
<DD>Interpolate between 4-dimensional vectors. Default behavior is to interpolate each component separately.
<DL><DT><DD></DL><P>
<A NAME="interpolate"></A>
<A NAME="DOC.2.7.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>template&lt;class T_&gt; T_ interpolate(float t, const <!1><A HREF="range.html">range</A>&lt;T_&gt; &amp;r) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="~Interpolator"></A>
<A NAME="DOC.2.7.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Interpolator()</B></TT>
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="LinearInterpolator.html">LinearInterpolator</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>

View File

@@ -0,0 +1,85 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::LinearInterpolator</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::LinearInterpolator</A></H2></H2><BLOCKQUOTE>A linear interpolator</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CInterpolator,MInterpolator.html,CLinearInterpolator,MLinearInterpolator.html">
<param name=before value="M,M,M">
<param name=after value="Md_SP,Md_,M">
<param name=indent value="0,1,2">
<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.8.1">LinearInterpolator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.8.2">LinearInterpolator</A></B>(const <!1><A HREF="LinearInterpolator.html#DOC.2.8.2">LinearInterpolator</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.8.3">META_Object</A></B>(<!1><A HREF="LinearInterpolator.html">LinearInterpolator</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual float <B><A HREF="#DOC.2.8.4">interpolate</A></B>(float t, float y1, float y2) const
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.8.5">~LinearInterpolator</A></B>()
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Interpolator.html">Interpolator</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A linear interpolator</BLOCKQUOTE>
<DL>
<A NAME="LinearInterpolator"></A>
<A NAME="DOC.2.8.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> LinearInterpolator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="LinearInterpolator"></A>
<A NAME="DOC.2.8.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> LinearInterpolator(const <!1><A HREF="LinearInterpolator.html#DOC.2.8.2">LinearInterpolator</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="META_Object"></A>
<A NAME="DOC.2.8.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="LinearInterpolator.html">LinearInterpolator</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="interpolate"></A>
<A NAME="DOC.2.8.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual float interpolate(float t, float y1, float y2) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="~LinearInterpolator"></A>
<A NAME="DOC.2.8.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~LinearInterpolator()</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>

View File

@@ -0,0 +1,223 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::ModularEmitter</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::ModularEmitter</A></H2></H2><BLOCKQUOTE>An emitter class that holds three objects to control the creation of particles.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Node,M,CParticleProcessor,MParticleProcessor.html,CEmitter,MEmitter.html,CModularEmitter,MModularEmitter.html">
<param name=before value="M,M,M,M">
<param name=after value="Md_SPSP,Md_SP,Md_,M">
<param name=indent value="0,1,2,3">
<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.9.1">ModularEmitter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.9.2">ModularEmitter</A></B>(const <!1><A HREF="ModularEmitter.html#DOC.2.9.2">ModularEmitter</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.9.3">META_Node</A></B>(<!1><A HREF="ModularEmitter.html">ModularEmitter</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Counter.html">Counter</A>* <B><A HREF="#DOC.2.9.10">getCounter</A></B>()
<DD><I>Get the counter object</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Counter.html">Counter</A>* <B><A HREF="#DOC.2.9.11">getCounter</A></B>() const
<DD><I>Get the const Counter object</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.9.12">setCounter</A></B>(<!1><A HREF="Counter.html">Counter</A>* c)
<DD><I>Set the Counter object</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Placer.html">Placer</A>* <B><A HREF="#DOC.2.9.13">getPlacer</A></B>()
<DD><I>Get the Placer object</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Placer.html">Placer</A>* <B><A HREF="#DOC.2.9.14">getPlacer</A></B>() const
<DD><I>Get the const Placer object.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.9.15">setPlacer</A></B>(<!1><A HREF="Placer.html">Placer</A>* p)
<DD><I>Set the Placer object</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Shooter.html">Shooter</A>* <B><A HREF="#DOC.2.9.16">getShooter</A></B>()
<DD><I>Get the Shooter object</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Shooter.html">Shooter</A>* <B><A HREF="#DOC.2.9.17">getShooter</A></B>() const
<DD><I>Get the const Shooter object</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.9.18">setShooter</A></B>(<!1><A HREF="Shooter.html">Shooter</A>* s)
<DD><I>Set the Shooter object</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.9.4">~ModularEmitter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ModularEmitter.html">ModularEmitter</A>&amp; <B><A HREF="#DOC.2.9.5">operator=</A></B>(const <!1><A HREF="ModularEmitter.html">ModularEmitter</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.9.6">emit</A></B>(double dt)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Emitter.html">Emitter</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>accept</B>(osg::NodeVisitor&amp; nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Particle.html">Particle</A>&amp; <B>getParticleTemplate</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setParticleTemplate</B>(const <!1><A HREF="Particle.html">Particle</A> &amp;p)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>getUseDefaultTemplate</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setUseDefaultTemplate</B>(bool v)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>process</B>(double dt)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="ParticleProcessor.html">ParticleProcessor</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> <B>getReferenceFrame</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>traverse</B>(osg::NodeVisitor &amp;nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline ParticleProcessor::ReferenceFrame <B>getReferenceFrame</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setReferenceFrame</B>(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isEnabled</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setEnabled</B>(bool v)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setParticleSystem</B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const bool <B>computeBound</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Matrix&amp; <B>getLocalToWorldMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Matrix&amp; <B>getWorldToLocalMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>transformLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>transformWorldToLocal</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>rotateLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>rotateWorldToLocal</B>(const osg::Vec3 &amp;P)
</DL></P>
<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum <B>ReferenceFrame</B>
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An emitter class that holds three objects to control the creation of particles.
These objects are a <I>counter</I>, a <I>placer</I> and a <I>shooter</I>.
The counter controls the number of particles to be emitted at each frame;
the placer must initialize the particle's position vector, while the shooter initializes
its velocity vector.
You can use the predefined counter/placer/shooter classes, or you can create your own.</BLOCKQUOTE>
<DL>
<A NAME="ModularEmitter"></A>
<A NAME="DOC.2.9.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ModularEmitter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ModularEmitter"></A>
<A NAME="DOC.2.9.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ModularEmitter(const <!1><A HREF="ModularEmitter.html#DOC.2.9.2">ModularEmitter</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="META_Node"></A>
<A NAME="DOC.2.9.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Node(<!1><A HREF="ModularEmitter.html">ModularEmitter</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~ModularEmitter"></A>
<A NAME="DOC.2.9.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~ModularEmitter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.9.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ModularEmitter.html">ModularEmitter</A>&amp; operator=(const <!1><A HREF="ModularEmitter.html">ModularEmitter</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="emit"></A>
<A NAME="DOC.2.9.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void emit(double dt)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getCounter"></A>
<A NAME="DOC.2.9.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Counter.html">Counter</A>* getCounter()</B></TT>
<DD>Get the counter object
<DL><DT><DD></DL><P>
<A NAME="getCounter"></A>
<A NAME="DOC.2.9.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Counter.html">Counter</A>* getCounter() const </B></TT>
<DD>Get the const Counter object
<DL><DT><DD></DL><P>
<A NAME="setCounter"></A>
<A NAME="DOC.2.9.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setCounter(<!1><A HREF="Counter.html">Counter</A>* c)</B></TT>
<DD>Set the Counter object
<DL><DT><DD></DL><P>
<A NAME="getPlacer"></A>
<A NAME="DOC.2.9.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Placer.html">Placer</A>* getPlacer()</B></TT>
<DD>Get the Placer object
<DL><DT><DD></DL><P>
<A NAME="getPlacer"></A>
<A NAME="DOC.2.9.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Placer.html">Placer</A>* getPlacer() const </B></TT>
<DD>Get the const Placer object.
<DL><DT><DD></DL><P>
<A NAME="setPlacer"></A>
<A NAME="DOC.2.9.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setPlacer(<!1><A HREF="Placer.html">Placer</A>* p)</B></TT>
<DD>Set the Placer object
<DL><DT><DD></DL><P>
<A NAME="getShooter"></A>
<A NAME="DOC.2.9.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Shooter.html">Shooter</A>* getShooter()</B></TT>
<DD>Get the Shooter object
<DL><DT><DD></DL><P>
<A NAME="getShooter"></A>
<A NAME="DOC.2.9.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Shooter.html">Shooter</A>* getShooter() const </B></TT>
<DD>Get the const Shooter object
<DL><DT><DD></DL><P>
<A NAME="setShooter"></A>
<A NAME="DOC.2.9.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setShooter(<!1><A HREF="Shooter.html">Shooter</A>* s)</B></TT>
<DD>Set the Shooter object
<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>

View File

@@ -0,0 +1,181 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::ModularProgram</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::ModularProgram</A></H2></H2><BLOCKQUOTE>A program class for performing operations on particles using a sequence of <I>operators</I>.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Node,M,CParticleProcessor,MParticleProcessor.html,CProgram,MProgram.html,CModularProgram,MModularProgram.html">
<param name=before value="M,M,M,M">
<param name=after value="Md_SPSP,Md_SP,Md_,M">
<param name=indent value="0,1,2,3">
<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.10.1">ModularProgram</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.10.2">ModularProgram</A></B>(const <!1><A HREF="ModularProgram.html#DOC.2.10.2">ModularProgram</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.10.3">META_Node</A></B>(<!1><A HREF="ModularProgram.html">ModularProgram</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.10.8">numOperators</A></B>() const
<DD><I>Get the number of operators</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.10.9">addOperator</A></B>(<!1><A HREF="Operator.html">Operator</A>* o)
<DD><I>Add an operator to the list.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Operator.html">Operator</A>* <B><A HREF="#DOC.2.10.10">getOperator</A></B>(int i)
<DD><I>Get a pointer to an operator in the list</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Operator.html">Operator</A>* <B><A HREF="#DOC.2.10.11">getOperator</A></B>(int i) const
<DD><I>Get a const pointer to an operator in the list</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.10.12">removeOperator</A></B>(int i)
<DD><I>Remove an operator from the list</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.10.4">~ModularProgram</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ModularProgram.html">ModularProgram</A>&amp; <B><A HREF="#DOC.2.10.5">operator=</A></B>(const <!1><A HREF="ModularProgram.html">ModularProgram</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.10.6">execute</A></B>(double dt)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Program.html">Program</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>accept</B>(osg::NodeVisitor&amp; nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>process</B>(double dt)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="ParticleProcessor.html">ParticleProcessor</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> <B>getReferenceFrame</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>traverse</B>(osg::NodeVisitor &amp;nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline ParticleProcessor::ReferenceFrame <B>getReferenceFrame</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setReferenceFrame</B>(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isEnabled</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setEnabled</B>(bool v)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setParticleSystem</B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const bool <B>computeBound</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Matrix&amp; <B>getLocalToWorldMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Matrix&amp; <B>getWorldToLocalMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>transformLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>transformWorldToLocal</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>rotateLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>rotateWorldToLocal</B>(const osg::Vec3 &amp;P)
</DL></P>
<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum <B>ReferenceFrame</B>
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A program class for performing operations on particles using a sequence of <I>operators</I>.
To use a <CODE>ModularProgram</CODE> you have to create some <CODE>Operator</CODE> objects and
add them to the program.
All operators will be applied to each particle in the same order they've been added to the program.</BLOCKQUOTE>
<DL>
<A NAME="ModularProgram"></A>
<A NAME="DOC.2.10.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ModularProgram()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ModularProgram"></A>
<A NAME="DOC.2.10.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ModularProgram(const <!1><A HREF="ModularProgram.html#DOC.2.10.2">ModularProgram</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="META_Node"></A>
<A NAME="DOC.2.10.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Node(<!1><A HREF="ModularProgram.html">ModularProgram</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~ModularProgram"></A>
<A NAME="DOC.2.10.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~ModularProgram()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.10.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ModularProgram.html">ModularProgram</A>&amp; operator=(const <!1><A HREF="ModularProgram.html">ModularProgram</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="execute"></A>
<A NAME="DOC.2.10.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void execute(double dt)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="numOperators"></A>
<A NAME="DOC.2.10.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int numOperators() const </B></TT>
<DD>Get the number of operators
<DL><DT><DD></DL><P>
<A NAME="addOperator"></A>
<A NAME="DOC.2.10.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void addOperator(<!1><A HREF="Operator.html">Operator</A>* o)</B></TT>
<DD>Add an operator to the list.
<DL><DT><DD></DL><P>
<A NAME="getOperator"></A>
<A NAME="DOC.2.10.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Operator.html">Operator</A>* getOperator(int i)</B></TT>
<DD>Get a pointer to an operator in the list
<DL><DT><DD></DL><P>
<A NAME="getOperator"></A>
<A NAME="DOC.2.10.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Operator.html">Operator</A>* getOperator(int i) const </B></TT>
<DD>Get a const pointer to an operator in the list
<DL><DT><DD></DL><P>
<A NAME="removeOperator"></A>
<A NAME="DOC.2.10.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void removeOperator(int i)</B></TT>
<DD>Remove an operator from the list
<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>

View File

@@ -0,0 +1,151 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::MultiSegmentPlacer</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::MultiSegmentPlacer</A></H2></H2><BLOCKQUOTE>A polyline-shaped particle placer.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CPlacer,MPlacer.html,CMultiSegmentPlacer,MMultiSegmentPlacer.html">
<param name=before value="M,M,M">
<param name=after value="Md_SP,Md_,M">
<param name=indent value="0,1,2">
<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.11.1">MultiSegmentPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.11.2">MultiSegmentPlacer</A></B>(const <!1><A HREF="MultiSegmentPlacer.html#DOC.2.11.2">MultiSegmentPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.11.3">META_Object</A></B>(<!1><A HREF="MultiSegmentPlacer.html">MultiSegmentPlacer</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.11.4">place</A></B>(<!1><A HREF="Particle.html">Particle</A>* P) const
<DD><I>Place a partice.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.11.10">numVertices</A></B>() const
<DD><I>Get the number of vertices which define the segments</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.11.11">getVertex</A></B>(int i) const
<DD><I>Get a vertex</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.11.12">setVertex</A></B>(int i, const osg::Vec3 &amp;v)
<DD><I>Set a vertex</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.11.13">setVertex</A></B>(int i, float x, float y, float z)
<DD><I>Set a vertex</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.11.14">addVertex</A></B>(const osg::Vec3 &amp;v)
<DD><I>Add a vertex</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.11.15">addVertex</A></B>(float x, float y, float z)
<DD><I>Add a vertex</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.11.16">removeVertex</A></B>(int i)
<DD><I>Remove a vertex</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.11.5">~MultiSegmentPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="MultiSegmentPlacer.html">MultiSegmentPlacer</A>&amp; <B><A HREF="#DOC.2.11.6">operator=</A></B>(const <!1><A HREF="MultiSegmentPlacer.html">MultiSegmentPlacer</A> &amp;)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Placer.html">Placer</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A polyline-shaped particle placer.
This placer class sets the position of incoming particles by choosing a random point on the
specified sequence of connected segments.</BLOCKQUOTE>
<DL>
<A NAME="MultiSegmentPlacer"></A>
<A NAME="DOC.2.11.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> MultiSegmentPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="MultiSegmentPlacer"></A>
<A NAME="DOC.2.11.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> MultiSegmentPlacer(const <!1><A HREF="MultiSegmentPlacer.html#DOC.2.11.2">MultiSegmentPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="META_Object"></A>
<A NAME="DOC.2.11.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="MultiSegmentPlacer.html">MultiSegmentPlacer</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="place"></A>
<A NAME="DOC.2.11.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void place(<!1><A HREF="Particle.html">Particle</A>* P) const </B></TT>
<DD>Place a partice. Called automatically by <CODE>ModularEmitter</CODE>, do not call this method manually.
<DL><DT><DD></DL><P>
<A NAME="~MultiSegmentPlacer"></A>
<A NAME="DOC.2.11.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~MultiSegmentPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.11.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="MultiSegmentPlacer.html">MultiSegmentPlacer</A>&amp; operator=(const <!1><A HREF="MultiSegmentPlacer.html">MultiSegmentPlacer</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="numVertices"></A>
<A NAME="DOC.2.11.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int numVertices() const </B></TT>
<DD>Get the number of vertices which define the segments
<DL><DT><DD></DL><P>
<A NAME="getVertex"></A>
<A NAME="DOC.2.11.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getVertex(int i) const </B></TT>
<DD>Get a vertex
<DL><DT><DD></DL><P>
<A NAME="setVertex"></A>
<A NAME="DOC.2.11.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setVertex(int i, const osg::Vec3 &amp;v)</B></TT>
<DD>Set a vertex
<DL><DT><DD></DL><P>
<A NAME="setVertex"></A>
<A NAME="DOC.2.11.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setVertex(int i, float x, float y, float z)</B></TT>
<DD>Set a vertex
<DL><DT><DD></DL><P>
<A NAME="addVertex"></A>
<A NAME="DOC.2.11.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void addVertex(const osg::Vec3 &amp;v)</B></TT>
<DD>Add a vertex
<DL><DT><DD></DL><P>
<A NAME="addVertex"></A>
<A NAME="DOC.2.11.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void addVertex(float x, float y, float z)</B></TT>
<DD>Add a vertex
<DL><DT><DD></DL><P>
<A NAME="removeVertex"></A>
<A NAME="DOC.2.11.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void removeVertex(int i)</B></TT>
<DD>Remove a vertex
<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>

Binary file not shown.

View File

@@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>#define OSGPARTICLE_SECTORPLACER_</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>#define <A HREF="#DOC.DOCU">OSGPARTICLE_SECTORPLACER_</A></H2></H2><BLOCKQUOTE>Range of osg::Vec4s</BLOCKQUOTE>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>Range of osg::Vec4s</BLOCKQUOTE>
<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>

View File

@@ -0,0 +1,135 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::Operator</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::Operator</A></H2></H2><BLOCKQUOTE>An abstract base class used by <CODE>ModularProgram</CODE> to perform operations on particles before they are updated.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=155>
<param name=classes value="Mosg::Object,M,COperator,MOperator.html,CForceOperator,MForceOperator.html,CFluidFrictionOperator,MFluidFrictionOperator.html,CAccelOperator,MAccelOperator.html">
<param name=before value="M,M,M|_,MR_,Mr_">
<param name=after value="Md_,M,M,M,M">
<param name=indent value="0,1,1,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>virtual const char* <B><A HREF="#DOC.2.12.1">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.12.2">isSameKindAs</A></B>(const osg::Object* obj) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.12.3">operate</A></B>(<!1><A HREF="Particle.html">Particle</A>* P, double dt) = 0
<DD><I>Do something on a particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.12.4">beginOperate</A></B>(<!1><A HREF="Program.html">Program</A>* )
<DD><I>Do something before processing particles via the <CODE>operate()</CODE> method.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.12.5">endOperate</A></B>()
<DD><I>Do something after all particles have been processed</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.12.9">Operator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.12.10">Operator</A></B>(const <!1><A HREF="Operator.html#DOC.2.12.10">Operator</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.12.11">isEnabled</A></B>() const
<DD><I>Get whether this operator is enabled</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.12.12">setEnabled</A></B>(bool v)
<DD><I>Enable or disable this operator</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.12.6">~Operator</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Operator.html">Operator</A>&amp; <B><A HREF="#DOC.2.12.7">operator=</A></B>(const <!1><A HREF="Operator.html">Operator</A> &amp;)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An abstract base class used by <CODE>ModularProgram</CODE> to perform operations on particles before they are updated.
To implement a new operator, derive from this class and override the <CODE>operate()</CODE> method.
You should also override the <CODE>beginOperate()</CODE> method to query the calling program for the reference frame
used, and initialize the right transformations if needed.</BLOCKQUOTE>
<DL>
<A NAME="className"></A>
<A NAME="DOC.2.12.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.12.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="operate"></A>
<A NAME="DOC.2.12.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void operate(<!1><A HREF="Particle.html">Particle</A>* P, double dt) = 0</B></TT>
<DD>Do something on a particle.
This method is called by <CODE>ModularProgram</CODE> objects to perform some operations
on the particles. You must override it in descendant classes. Common operations
consist of modifying the particle's velocity vector. The <CODE>dt</CODE> parameter is
the time elapsed from last operation.
<DL><DT><DD></DL><P>
<A NAME="beginOperate"></A>
<A NAME="DOC.2.12.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void beginOperate(<!1><A HREF="Program.html">Program</A>* )</B></TT>
<DD>Do something before processing particles via the <CODE>operate()</CODE> method.
Overriding this method could be necessary to query the calling <CODE>Program</CODE> object
for the current reference frame. If the reference frame is RELATIVE_TO_PARENTS, then your
class should prepare itself to do all operations in local coordinates.
<DL><DT><DD></DL><P>
<A NAME="endOperate"></A>
<A NAME="DOC.2.12.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void endOperate()</B></TT>
<DD>Do something after all particles have been processed
<DL><DT><DD></DL><P>
<A NAME="~Operator"></A>
<A NAME="DOC.2.12.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Operator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.12.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Operator.html">Operator</A>&amp; operator=(const <!1><A HREF="Operator.html">Operator</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Operator"></A>
<A NAME="DOC.2.12.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Operator()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Operator"></A>
<A NAME="DOC.2.12.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Operator(const <!1><A HREF="Operator.html#DOC.2.12.10">Operator</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="isEnabled"></A>
<A NAME="DOC.2.12.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool isEnabled() const </B></TT>
<DD>Get whether this operator is enabled
<DL><DT><DD></DL><P>
<A NAME="setEnabled"></A>
<A NAME="DOC.2.12.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setEnabled(bool v)</B></TT>
<DD>Enable or disable this operator
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="ForceOperator.html">ForceOperator</A><BR>
<A HREF="FluidFrictionOperator.html">FluidFrictionOperator</A><BR>
<A HREF="AccelOperator.html">AccelOperator</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>

View File

@@ -0,0 +1,377 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::Particle</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::Particle</A></H2></H2><BLOCKQUOTE>Implementation of a <B>particle</B>.</BLOCKQUOTE>
<HR>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.13.2">Particle</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Particle.html#DOC.2.13.1">Shape</A> <B><A HREF="#DOC.2.13.3">getShape</A></B>() const
<DD><I>Get the shape of the particle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.13.4">update</A></B>(double dt)
<DD><I>Update the particle (don't call this method manually).</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.13.5">render</A></B>(const osg::Matrix &amp;modelview, float scale = 1.0f) const
<DD><I>Render the particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline Particle::Shape <B><A HREF="#DOC.2.13.26">getShape</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.27">setShape</A></B>(<!1><A HREF="Particle.html#DOC.2.13.1">Shape</A> s)
<DD><I>Set the shape of the particle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.13.28">isAlive</A></B>() const
<DD><I>Get whether the particle is still alive</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline double <B><A HREF="#DOC.2.13.29">getLifeTime</A></B>() const
<DD><I>Get the life time of the particle (in seconds)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline double <B><A HREF="#DOC.2.13.30">getAge</A></B>() const
<DD><I>Get the age of the particle (in seconds)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.13.31">getRadius</A></B>() const
<DD><I>Get the physical radius of the particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.32">setRadius</A></B>(float r)
<DD><I>Set the physical radius of the particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B><A HREF="#DOC.2.13.33">getSizeRange</A></B>() const
<DD><I>Get the minimum and maximum values for polygon size</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B><A HREF="#DOC.2.13.34">getAlphaRange</A></B>() const
<DD><I>Get the minimum and maximum values for alpha</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const rangev4&amp; <B><A HREF="#DOC.2.13.35">getColorRange</A></B>() const
<DD><I>Get the minimum and maximum values for color</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Interpolator.html">Interpolator</A>* <B><A HREF="#DOC.2.13.36">getSizeInterpolator</A></B>() const
<DD><I>Get the interpolator for computing the size of polygons</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Interpolator.html">Interpolator</A>* <B><A HREF="#DOC.2.13.37">getAlphaInterpolator</A></B>() const
<DD><I>Get the interpolator for computing alpha values</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Interpolator.html">Interpolator</A>* <B><A HREF="#DOC.2.13.38">getColorInterpolator</A></B>() const
<DD><I>Get the interpolator for computing color values</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.13.39">getPosition</A></B>() const
<DD><I>Get the position vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.13.40">getVelocity</A></B>() const
<DD><I>Get the velocity vector.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.13.41">getPreviousPosition</A></B>() const
<DD><I>Get the previous position (the position before last update)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.42">kill</A></B>()
<DD><I>Kill the particle on next update NOTE: after calling this function, the <CODE>isAlive()</CODE> method will still return true until the particle is updated again</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.43">setLifeTime</A></B>(double t)
<DD><I>Set the life time of the particle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.44">setSizeRange</A></B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DD><I>Set the minimum and maximum values for polygon size</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.45">setAlphaRange</A></B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DD><I>Set the minimum and maximum values for alpha</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.46">setColorRange</A></B>(const rangev4 &amp;r)
<DD><I>Set the minimum and maximum values for color</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.47">setSizeInterpolator</A></B>(<!1><A HREF="Interpolator.html">Interpolator</A>* ri)
<DD><I>Set the interpolator for computing size values</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.48">setAlphaInterpolator</A></B>(<!1><A HREF="Interpolator.html">Interpolator</A>* ai)
<DD><I>Set the interpolator for computing alpha values.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.49">setColorInterpolator</A></B>(<!1><A HREF="Interpolator.html">Interpolator</A>* ci)
<DD><I>Set the interpolator for computing color values</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.50">setPosition</A></B>(const osg::Vec3 &amp;p)
<DD><I>Set the position vector.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.51">setVelocity</A></B>(const osg::Vec3 &amp;v)
<DD><I>Set the velocity vector.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.52">addVelocity</A></B>(const osg::Vec3 &amp;v)
<DD><I>Add a vector to the velocity vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.53">transformPositionVelocity</A></B>(const osg::Matrix &amp;xform)
<DD><I>Transform position and velocity vectors by a matrix</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.13.54">getMass</A></B>() const
<DD><I>Get the mass of the particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.13.55">getMassInv</A></B>() const
<DD><I>Get <CODE>1 / getMass()</CODE></I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.56">setMass</A></B>(float m)
<DD><I>Set the mass of the particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.57">beginRender</A></B>()
<DD><I>Perform some pre-rendering tasks.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.13.58">endRender</A></B>()
<DD><I>Perform some post-rendering tasks.</I>
</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.13.1">Shape</A></B>
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>Implementation of a <B>particle</B>.
Objects of this class are particles, they have some graphical properties
and some physical properties. Particles are created by emitters and then placed
into Particle Systems, where they live and get updated at each frame.
Particles can either live forever (lifeTime < 0), or die after a specified
time (lifeTime >= 0). For each property which is defined as a range of values, a
"current" value will be evaluated at each frame by interpolating the <I>min</I>
and <I>max</I> values so that <I>curr_value = min</I> when <I>t == 0</I>, and
<I>curr_value = max</I> when <I>t == lifeTime</I>.
You may customize the interpolator objects to achieve any kind of transition.
If you want the particle to live forever, set its lifetime to any value <= 0;
in that case, no interpolation is done to compute real-time properties, and only
minimum values are used.</BLOCKQUOTE>
<DL>
<A NAME="Shape"></A>
<A NAME="DOC.2.13.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum Shape</B></TT>
<DL><DT><DD></DL><P><DL>
<A NAME="POINT"></A>
<A NAME="DOC.2.13.1.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> POINT</B></TT>
<DL><DT><DD></DL><P>
<A NAME="QUAD"></A>
<A NAME="DOC.2.13.1.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> QUAD</B></TT>
<DL><DT><DD></DL><P>
<A NAME="QUAD_TRIANGLESTRIP"></A>
<A NAME="DOC.2.13.1.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> QUAD_TRIANGLESTRIP</B></TT>
<DL><DT><DD></DL><P>
<A NAME="HEXAGON"></A>
<A NAME="DOC.2.13.1.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> HEXAGON</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="Particle"></A>
<A NAME="DOC.2.13.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Particle()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getShape"></A>
<A NAME="DOC.2.13.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Particle.html#DOC.2.13.1">Shape</A> getShape() const </B></TT>
<DD>Get the shape of the particle
<DL><DT><DD></DL><P>
<A NAME="update"></A>
<A NAME="DOC.2.13.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool update(double dt)</B></TT>
<DD>Update the particle (don't call this method manually).
This method is called automatically by <CODE>ParticleSystem::update()</CODE>; it
updates the graphical properties of the particle for the current time,
checks whether the particle is still alive, and then updates its position
by computing <I>P = P + V * dt</I> (where <I>P</I> is the position and <I>V</I> is the velocity).
<DL><DT><DD></DL><P>
<A NAME="render"></A>
<A NAME="DOC.2.13.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void render(const osg::Matrix &amp;modelview, float scale = 1.0f) const </B></TT>
<DD>Render the particle. Called automatically by particle systems.
<DL><DT><DD></DL><P>
<A NAME="getShape"></A>
<A NAME="DOC.2.13.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Particle::Shape getShape() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="setShape"></A>
<A NAME="DOC.2.13.27"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setShape(<!1><A HREF="Particle.html#DOC.2.13.1">Shape</A> s)</B></TT>
<DD>Set the shape of the particle
<DL><DT><DD></DL><P>
<A NAME="isAlive"></A>
<A NAME="DOC.2.13.28"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool isAlive() const </B></TT>
<DD>Get whether the particle is still alive
<DL><DT><DD></DL><P>
<A NAME="getLifeTime"></A>
<A NAME="DOC.2.13.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline double getLifeTime() const </B></TT>
<DD>Get the life time of the particle (in seconds)
<DL><DT><DD></DL><P>
<A NAME="getAge"></A>
<A NAME="DOC.2.13.30"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline double getAge() const </B></TT>
<DD>Get the age of the particle (in seconds)
<DL><DT><DD></DL><P>
<A NAME="getRadius"></A>
<A NAME="DOC.2.13.31"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getRadius() const </B></TT>
<DD>Get the physical radius of the particle.
For built-in operators to work correctly, lengths must be expressed in meters.
<DL><DT><DD></DL><P>
<A NAME="setRadius"></A>
<A NAME="DOC.2.13.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setRadius(float r)</B></TT>
<DD>Set the physical radius of the particle.
For built-in operators to work correctly, lengths must be expressed in meters.
<DL><DT><DD></DL><P>
<A NAME="getSizeRange"></A>
<A NAME="DOC.2.13.33"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="rangef.html">rangef</A>&amp; getSizeRange() const </B></TT>
<DD>Get the minimum and maximum values for polygon size
<DL><DT><DD></DL><P>
<A NAME="getAlphaRange"></A>
<A NAME="DOC.2.13.34"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="rangef.html">rangef</A>&amp; getAlphaRange() const </B></TT>
<DD>Get the minimum and maximum values for alpha
<DL><DT><DD></DL><P>
<A NAME="getColorRange"></A>
<A NAME="DOC.2.13.35"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const rangev4&amp; getColorRange() const </B></TT>
<DD>Get the minimum and maximum values for color
<DL><DT><DD></DL><P>
<A NAME="getSizeInterpolator"></A>
<A NAME="DOC.2.13.36"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Interpolator.html">Interpolator</A>* getSizeInterpolator() const </B></TT>
<DD>Get the interpolator for computing the size of polygons
<DL><DT><DD></DL><P>
<A NAME="getAlphaInterpolator"></A>
<A NAME="DOC.2.13.37"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Interpolator.html">Interpolator</A>* getAlphaInterpolator() const </B></TT>
<DD>Get the interpolator for computing alpha values
<DL><DT><DD></DL><P>
<A NAME="getColorInterpolator"></A>
<A NAME="DOC.2.13.38"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Interpolator.html">Interpolator</A>* getColorInterpolator() const </B></TT>
<DD>Get the interpolator for computing color values
<DL><DT><DD></DL><P>
<A NAME="getPosition"></A>
<A NAME="DOC.2.13.39"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getPosition() const </B></TT>
<DD>Get the position vector
<DL><DT><DD></DL><P>
<A NAME="getVelocity"></A>
<A NAME="DOC.2.13.40"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getVelocity() const </B></TT>
<DD>Get the velocity vector.
For built-in operators to work correctly, remember that velocity components are expressed
in meters per second.
<DL><DT><DD></DL><P>
<A NAME="getPreviousPosition"></A>
<A NAME="DOC.2.13.41"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getPreviousPosition() const </B></TT>
<DD>Get the previous position (the position before last update)
<DL><DT><DD></DL><P>
<A NAME="kill"></A>
<A NAME="DOC.2.13.42"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void kill()</B></TT>
<DD>Kill the particle on next update
NOTE: after calling this function, the <CODE>isAlive()</CODE> method will still
return true until the particle is updated again
<DL><DT><DD></DL><P>
<A NAME="setLifeTime"></A>
<A NAME="DOC.2.13.43"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setLifeTime(double t)</B></TT>
<DD>Set the life time of the particle
<DL><DT><DD></DL><P>
<A NAME="setSizeRange"></A>
<A NAME="DOC.2.13.44"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setSizeRange(const <!1><A HREF="rangef.html">rangef</A> &amp;r)</B></TT>
<DD>Set the minimum and maximum values for polygon size
<DL><DT><DD></DL><P>
<A NAME="setAlphaRange"></A>
<A NAME="DOC.2.13.45"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setAlphaRange(const <!1><A HREF="rangef.html">rangef</A> &amp;r)</B></TT>
<DD>Set the minimum and maximum values for alpha
<DL><DT><DD></DL><P>
<A NAME="setColorRange"></A>
<A NAME="DOC.2.13.46"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setColorRange(const rangev4 &amp;r)</B></TT>
<DD>Set the minimum and maximum values for color
<DL><DT><DD></DL><P>
<A NAME="setSizeInterpolator"></A>
<A NAME="DOC.2.13.47"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setSizeInterpolator(<!1><A HREF="Interpolator.html">Interpolator</A>* ri)</B></TT>
<DD>Set the interpolator for computing size values
<DL><DT><DD></DL><P>
<A NAME="setAlphaInterpolator"></A>
<A NAME="DOC.2.13.48"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setAlphaInterpolator(<!1><A HREF="Interpolator.html">Interpolator</A>* ai)</B></TT>
<DD>Set the interpolator for computing alpha values.
<DL><DT><DD></DL><P>
<A NAME="setColorInterpolator"></A>
<A NAME="DOC.2.13.49"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setColorInterpolator(<!1><A HREF="Interpolator.html">Interpolator</A>* ci)</B></TT>
<DD>Set the interpolator for computing color values
<DL><DT><DD></DL><P>
<A NAME="setPosition"></A>
<A NAME="DOC.2.13.50"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setPosition(const osg::Vec3 &amp;p)</B></TT>
<DD>Set the position vector.
<DL><DT><DD></DL><P>
<A NAME="setVelocity"></A>
<A NAME="DOC.2.13.51"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setVelocity(const osg::Vec3 &amp;v)</B></TT>
<DD>Set the velocity vector.
For built-in operators to work correctly, remember that velocity components are expressed
in meters per second.
<DL><DT><DD></DL><P>
<A NAME="addVelocity"></A>
<A NAME="DOC.2.13.52"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void addVelocity(const osg::Vec3 &amp;v)</B></TT>
<DD>Add a vector to the velocity vector
<DL><DT><DD></DL><P>
<A NAME="transformPositionVelocity"></A>
<A NAME="DOC.2.13.53"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void transformPositionVelocity(const osg::Matrix &amp;xform)</B></TT>
<DD>Transform position and velocity vectors by a matrix
<DL><DT><DD></DL><P>
<A NAME="getMass"></A>
<A NAME="DOC.2.13.54"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getMass() const </B></TT>
<DD>Get the mass of the particle.
For built-in operators to work correctly, remember that the mass is expressed in kg.
<DL><DT><DD></DL><P>
<A NAME="getMassInv"></A>
<A NAME="DOC.2.13.55"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getMassInv() const </B></TT>
<DD>Get <CODE>1 / getMass()</CODE>
<DL><DT><DD></DL><P>
<A NAME="setMass"></A>
<A NAME="DOC.2.13.56"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setMass(float m)</B></TT>
<DD>Set the mass of the particle.
For built-in operators to work correctly, remember that the mass is expressed in kg.
<DL><DT><DD></DL><P>
<A NAME="beginRender"></A>
<A NAME="DOC.2.13.57"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void beginRender()</B></TT>
<DD>Perform some pre-rendering tasks. Called automatically by particle systems.
<DL><DT><DD></DL><P>
<A NAME="endRender"></A>
<A NAME="DOC.2.13.58"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void endRender()</B></TT>
<DD>Perform some post-rendering tasks. Called automatically by particle systems.
<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>

View File

@@ -0,0 +1,241 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::ParticleProcessor</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::ParticleProcessor</A></H2></H2><BLOCKQUOTE>A common base interface for those classes which need to do something on particles.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Node,M,CParticleProcessor,MParticleProcessor.html,CProgram,MProgram.html,CEmitter,MEmitter.html">
<param name=before value="M,M,M|_,Mr_">
<param name=after value="Md_,M,M,M">
<param name=indent value="0,1,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.14.2">ParticleProcessor</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.14.3">ParticleProcessor</A></B>(const <!1><A HREF="ParticleProcessor.html#DOC.2.14.3">ParticleProcessor</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const char* <B><A HREF="#DOC.2.14.4">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.14.5">isSameKindAs</A></B>(const osg::Object* obj)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.14.6">accept</A></B>(osg::NodeVisitor&amp; nv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> <B><A HREF="#DOC.2.14.7">getReferenceFrame</A></B>() const
<DD><I>Get the reference frame</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.14.8">traverse</A></B>(osg::NodeVisitor &amp;nv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline ParticleProcessor::ReferenceFrame <B><A HREF="#DOC.2.14.21">getReferenceFrame</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.14.22">setReferenceFrame</A></B>(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)
<DD><I>Set the reference frame</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.14.23">isEnabled</A></B>() const
<DD><I>Get whether this processor is enabled or not</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.14.24">setEnabled</A></B>(bool v)
<DD><I>Set whether this processor is enabled or not</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B><A HREF="#DOC.2.14.25">getParticleSystem</A></B>()
<DD><I>Get a pointer to the destination particle system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B><A HREF="#DOC.2.14.26">getParticleSystem</A></B>() const
<DD><I>Get a const pointer to the destination particle system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.14.27">setParticleSystem</A></B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DD><I>Set the destination particle system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const bool <B><A HREF="#DOC.2.14.28">computeBound</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Matrix&amp; <B><A HREF="#DOC.2.14.29">getLocalToWorldMatrix</A></B>()
<DD><I>Get the current local-to-world transformation matrix (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Matrix&amp; <B><A HREF="#DOC.2.14.30">getWorldToLocalMatrix</A></B>()
<DD><I>Get the current world-to-local transformation matrix (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline osg::Vec3 <B><A HREF="#DOC.2.14.31">transformLocalToWorld</A></B>(const osg::Vec3 &amp;P)
<DD><I>Transform a point from local to world coordinates (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline osg::Vec3 <B><A HREF="#DOC.2.14.32">transformWorldToLocal</A></B>(const osg::Vec3 &amp;P)
<DD><I>Transform a point from world to local coordinates (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline osg::Vec3 <B><A HREF="#DOC.2.14.33">rotateLocalToWorld</A></B>(const osg::Vec3 &amp;P)
<DD><I>Transform a vector from local to world coordinates, discarding translation (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline osg::Vec3 <B><A HREF="#DOC.2.14.34">rotateWorldToLocal</A></B>(const osg::Vec3 &amp;P)
<DD><I>Transform a vector from world to local coordinates, discarding translation (valid only during cull traversal)</I>
</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.14.1">ReferenceFrame</A></B>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.14.9">~ParticleProcessor</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ParticleProcessor.html">ParticleProcessor</A>&amp; <B><A HREF="#DOC.2.14.10">operator=</A></B>(const <!1><A HREF="ParticleProcessor.html">ParticleProcessor</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.14.11">process</A></B>(double dt) = 0
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A common base interface for those classes which need to do something on particles. Such classes
are, for example, <CODE>Emitter</CODE> (particle generation) and <CODE>Program</CODE> (particle animation).
This class holds some properties, like a <I>reference frame</I> and a reference to a <CODE>ParticleSystem<CODE>;
descendant classes should process the particles taking into account the reference frame, computing the right
transformations when needed.</BLOCKQUOTE>
<DL>
<A NAME="ReferenceFrame"></A>
<A NAME="DOC.2.14.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum ReferenceFrame</B></TT>
<DL><DT><DD></DL><P><DL>
<A NAME="RELATIVE_TO_PARENTS"></A>
<A NAME="DOC.2.14.1.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> RELATIVE_TO_PARENTS</B></TT>
<DL><DT><DD></DL><P>
<A NAME="RELATIVE_TO_ABSOLUTE"></A>
<A NAME="DOC.2.14.1.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> RELATIVE_TO_ABSOLUTE</B></TT>
<DL><DT><DD></DL><P></DL>
<A NAME="ParticleProcessor"></A>
<A NAME="DOC.2.14.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ParticleProcessor()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ParticleProcessor"></A>
<A NAME="DOC.2.14.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ParticleProcessor(const <!1><A HREF="ParticleProcessor.html#DOC.2.14.3">ParticleProcessor</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="className"></A>
<A NAME="DOC.2.14.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.14.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="accept"></A>
<A NAME="DOC.2.14.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void accept(osg::NodeVisitor&amp; nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getReferenceFrame"></A>
<A NAME="DOC.2.14.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> getReferenceFrame() const </B></TT>
<DD>Get the reference frame
<DL><DT><DD></DL><P>
<A NAME="traverse"></A>
<A NAME="DOC.2.14.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void traverse(osg::NodeVisitor &amp;nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~ParticleProcessor"></A>
<A NAME="DOC.2.14.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~ParticleProcessor()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.14.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ParticleProcessor.html">ParticleProcessor</A>&amp; operator=(const <!1><A HREF="ParticleProcessor.html">ParticleProcessor</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="process"></A>
<A NAME="DOC.2.14.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void process(double dt) = 0</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getReferenceFrame"></A>
<A NAME="DOC.2.14.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline ParticleProcessor::ReferenceFrame getReferenceFrame() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="setReferenceFrame"></A>
<A NAME="DOC.2.14.22"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setReferenceFrame(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)</B></TT>
<DD>Set the reference frame
<DL><DT><DD></DL><P>
<A NAME="isEnabled"></A>
<A NAME="DOC.2.14.23"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool isEnabled() const </B></TT>
<DD>Get whether this processor is enabled or not
<DL><DT><DD></DL><P>
<A NAME="setEnabled"></A>
<A NAME="DOC.2.14.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setEnabled(bool v)</B></TT>
<DD>Set whether this processor is enabled or not
<DL><DT><DD></DL><P>
<A NAME="getParticleSystem"></A>
<A NAME="DOC.2.14.25"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* getParticleSystem()</B></TT>
<DD>Get a pointer to the destination particle system
<DL><DT><DD></DL><P>
<A NAME="getParticleSystem"></A>
<A NAME="DOC.2.14.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* getParticleSystem() const </B></TT>
<DD>Get a const pointer to the destination particle system
<DL><DT><DD></DL><P>
<A NAME="setParticleSystem"></A>
<A NAME="DOC.2.14.27"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setParticleSystem(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)</B></TT>
<DD>Set the destination particle system
<DL><DT><DD></DL><P>
<A NAME="computeBound"></A>
<A NAME="DOC.2.14.28"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const bool computeBound() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getLocalToWorldMatrix"></A>
<A NAME="DOC.2.14.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Matrix&amp; getLocalToWorldMatrix()</B></TT>
<DD>Get the current local-to-world transformation matrix (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="getWorldToLocalMatrix"></A>
<A NAME="DOC.2.14.30"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Matrix&amp; getWorldToLocalMatrix()</B></TT>
<DD>Get the current world-to-local transformation matrix (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="transformLocalToWorld"></A>
<A NAME="DOC.2.14.31"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline osg::Vec3 transformLocalToWorld(const osg::Vec3 &amp;P)</B></TT>
<DD>Transform a point from local to world coordinates (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="transformWorldToLocal"></A>
<A NAME="DOC.2.14.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline osg::Vec3 transformWorldToLocal(const osg::Vec3 &amp;P)</B></TT>
<DD>Transform a point from world to local coordinates (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="rotateLocalToWorld"></A>
<A NAME="DOC.2.14.33"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline osg::Vec3 rotateLocalToWorld(const osg::Vec3 &amp;P)</B></TT>
<DD>Transform a vector from local to world coordinates, discarding translation (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="rotateWorldToLocal"></A>
<A NAME="DOC.2.14.34"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline osg::Vec3 rotateWorldToLocal(const osg::Vec3 &amp;P)</B></TT>
<DD>Transform a vector from world to local coordinates, discarding translation (valid only during cull traversal)
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="Program.html">Program</A><BR>
<A HREF="Emitter.html">Emitter</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>

View File

@@ -0,0 +1,311 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::ParticleSystem</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::ParticleSystem</A></H2></H2><BLOCKQUOTE>The heart of this class library; its purpose is to hold a set of particles and manage particle creation, update, rendering and destruction.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
<param name=classes value="Mosg::Drawable,M,CParticleSystem,MParticleSystem.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">ParticleSystem</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.15.2">ParticleSystem</A></B>(const <!1><A HREF="ParticleSystem.html#DOC.2.15.2">ParticleSystem</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.15.3">META_Object</A></B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline virtual <!1><A HREF="Particle.html">Particle</A>* <B><A HREF="#DOC.2.15.4">createParticle</A></B>(const <!1><A HREF="Particle.html">Particle</A>* ptemplate)
<DD><I>Create a new particle from the specified template (or the default one if <CODE>ptemplate</CODE> is null)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline virtual void <B><A HREF="#DOC.2.15.5">destroyParticle</A></B>(int i)
<DD><I>Destroy the i-th particle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.15.6">setDefaultAttributes</A></B>(const std::string &amp;texturefile = "", bool emissive_particles = true, bool lighting = false)
<DD><I>A useful method to set the most common <CODE>StateAttribute</CODE>'s in one call.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.7">update</A></B>(double dt)
<DD><I>Update the particles.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline virtual bool <B><A HREF="#DOC.2.15.8">getStats</A></B>(osg::Statistics &amp;stats)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.15.29">isFrozen</A></B>() const
<DD><I>Return true if the particle system is frozen</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.15.30">setFrozen</A></B>(bool v)
<DD><I>Set or reset the <I>frozen</I> state.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::BoundingBox&amp; <B><A HREF="#DOC.2.15.31">getDefaultBoundingBox</A></B>() const
<DD><I>Get the default bounding box</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.15.32">setDefaultBoundingBox</A></B>(const osg::BoundingBox &amp;bbox)
<DD><I>Set the default bounding box.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.15.33">getDoublePassRendering</A></B>() const
<DD><I>Get the double pass rendering flag</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.15.34">setDoublePassRendering</A></B>(bool v)
<DD><I>Set the double pass rendering flag.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.15.35">numParticles</A></B>() const
<DD><I>Get the number of allocated particles (alive + dead)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.15.36">numDeadParticles</A></B>() const
<DD><I>Get the number of dead particles</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Particle.html">Particle</A>* <B><A HREF="#DOC.2.15.37">getParticle</A></B>(int i)
<DD><I>Get a pointer to the i-th particle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Particle.html">Particle</A>* <B><A HREF="#DOC.2.15.38">getParticle</A></B>(int i) const
<DD><I>Get a const pointer to the i-th particle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.15.39">destroyParticle</A></B>(int i)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.15.40">getLastFrameNumber</A></B>() const
<DD><I>Get the last frame number</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const bool <B><A HREF="#DOC.2.15.41">computeBound</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.15.42">getStats</A></B>(osg::Statistics &amp;stats)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.15.43">update_bounds</A></B>(const osg::Vec3 &amp;p)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Particle.html">Particle</A>&amp; <B><A HREF="#DOC.2.15.44">getDefaultParticleTemplate</A></B>() const
<DD><I>Get a reference to the default particle template</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.15.45">setDefaultParticleTemplate</A></B>(const <!1><A HREF="Particle.html">Particle</A> &amp;p)
<DD><I>Set the default particle template (particle is copied)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.15.46">getFreezeOnCull</A></B>() const
<DD><I>Get whether the particle system can freeze when culled</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.15.47">setFreezeOnCull</A></B>(bool v)
<DD><I>Set whether the particle system can freeze when culled (default is true)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.15.48">getLevelOfDetail</A></B>() const
<DD><I>(<B>EXPERIMENTAL</B>) Get the level of detail</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.15.49">setLevelOfDetail</A></B>(int v)
<DD><I>(<B>EXPERIMENTAL</B>) Set the level of detail.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Particle.html">Particle</A>* <B><A HREF="#DOC.2.15.50">createParticle</A></B>(const <!1><A HREF="Particle.html">Particle</A>* ptemplate)
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.15.9">~ParticleSystem</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ParticleSystem.html">ParticleSystem</A>&amp; <B><A HREF="#DOC.2.15.10">operator=</A></B>(const <!1><A HREF="ParticleSystem.html">ParticleSystem</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline virtual const bool <B><A HREF="#DOC.2.15.11">computeBound</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.15.12">drawImmediateMode</A></B>(osg::State &amp;state)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.15.13">single_pass_render</A></B>(const osg::Matrix &amp;modelview)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>The heart of this class library; its purpose is to hold a set of particles and manage particle creation, update, rendering and destruction.
You can add this drawable to any <CODE>Geode</CODE> as you usually do with other
<CODE>Drawable</CODE> classes. Each instance of <CODE>ParticleSystem</CODE> is a separate set of
particles; it provides the interface for creating particles and iterating
through them (see the <CODE>Emitter</CODE> and <CODE>Program</CODE> classes).</BLOCKQUOTE>
<DL>
<A NAME="ParticleSystem"></A>
<A NAME="DOC.2.15.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ParticleSystem()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ParticleSystem"></A>
<A NAME="DOC.2.15.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ParticleSystem(const <!1><A HREF="ParticleSystem.html#DOC.2.15.2">ParticleSystem</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="META_Object"></A>
<A NAME="DOC.2.15.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="createParticle"></A>
<A NAME="DOC.2.15.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline virtual <!1><A HREF="Particle.html">Particle</A>* createParticle(const <!1><A HREF="Particle.html">Particle</A>* ptemplate)</B></TT>
<DD>Create a new particle from the specified template (or the default one if <CODE>ptemplate</CODE> is null)
<DL><DT><DD></DL><P>
<A NAME="destroyParticle"></A>
<A NAME="DOC.2.15.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline virtual void destroyParticle(int i)</B></TT>
<DD>Destroy the i-th particle
<DL><DT><DD></DL><P>
<A NAME="setDefaultAttributes"></A>
<A NAME="DOC.2.15.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setDefaultAttributes(const std::string &amp;texturefile = "", bool emissive_particles = true, bool lighting = false)</B></TT>
<DD>A useful method to set the most common <CODE>StateAttribute</CODE>'s in one call.
If <CODE>texturefile</CODE> is empty, then texturing is turned off.
<DL><DT><DD></DL><P>
<A NAME="update"></A>
<A NAME="DOC.2.15.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void update(double dt)</B></TT>
<DD>Update the particles. Don't call this directly, use a <CODE>ParticleSystemUpdater</CODE> instead.
<DL><DT><DD></DL><P>
<A NAME="getStats"></A>
<A NAME="DOC.2.15.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline virtual bool getStats(osg::Statistics &amp;stats)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~ParticleSystem"></A>
<A NAME="DOC.2.15.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~ParticleSystem()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.15.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ParticleSystem.html">ParticleSystem</A>&amp; operator=(const <!1><A HREF="ParticleSystem.html">ParticleSystem</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="computeBound"></A>
<A NAME="DOC.2.15.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline virtual const bool computeBound() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="drawImmediateMode"></A>
<A NAME="DOC.2.15.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void drawImmediateMode(osg::State &amp;state)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="single_pass_render"></A>
<A NAME="DOC.2.15.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void single_pass_render(const osg::Matrix &amp;modelview)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="isFrozen"></A>
<A NAME="DOC.2.15.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool isFrozen() const </B></TT>
<DD>Return true if the particle system is frozen
<DL><DT><DD></DL><P>
<A NAME="setFrozen"></A>
<A NAME="DOC.2.15.30"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setFrozen(bool v)</B></TT>
<DD>Set or reset the <I>frozen</I> state.
When the particle system is frozen, emitters and programs won't do anything on it.
<DL><DT><DD></DL><P>
<A NAME="getDefaultBoundingBox"></A>
<A NAME="DOC.2.15.31"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::BoundingBox&amp; getDefaultBoundingBox() const </B></TT>
<DD>Get the default bounding box
<DL><DT><DD></DL><P>
<A NAME="setDefaultBoundingBox"></A>
<A NAME="DOC.2.15.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setDefaultBoundingBox(const osg::BoundingBox &amp;bbox)</B></TT>
<DD>Set the default bounding box.
The default bounding box is used when a real bounding box cannot be computed, for example
because no particles has been updated yet.
<DL><DT><DD></DL><P>
<A NAME="getDoublePassRendering"></A>
<A NAME="DOC.2.15.33"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool getDoublePassRendering() const </B></TT>
<DD>Get the double pass rendering flag
<DL><DT><DD></DL><P>
<A NAME="setDoublePassRendering"></A>
<A NAME="DOC.2.15.34"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setDoublePassRendering(bool v)</B></TT>
<DD>Set the double pass rendering flag.
Double pass rendering avoids overdraw problems between particle systems
and other opaque objects. If you can render all the particle systems <U>after</U>
the opaque objects, then double pass is not necessary and can be turned off (best choice).
If you set the default attributes with <CODE>setDefaultAttributes</CODE>, then the particle
system will fall into a transparent bin.
<DL><DT><DD></DL><P>
<A NAME="numParticles"></A>
<A NAME="DOC.2.15.35"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int numParticles() const </B></TT>
<DD>Get the number of allocated particles (alive + dead)
<DL><DT><DD></DL><P>
<A NAME="numDeadParticles"></A>
<A NAME="DOC.2.15.36"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int numDeadParticles() const </B></TT>
<DD>Get the number of dead particles
<DL><DT><DD></DL><P>
<A NAME="getParticle"></A>
<A NAME="DOC.2.15.37"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Particle.html">Particle</A>* getParticle(int i)</B></TT>
<DD>Get a pointer to the i-th particle
<DL><DT><DD></DL><P>
<A NAME="getParticle"></A>
<A NAME="DOC.2.15.38"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Particle.html">Particle</A>* getParticle(int i) const </B></TT>
<DD>Get a const pointer to the i-th particle
<DL><DT><DD></DL><P>
<A NAME="destroyParticle"></A>
<A NAME="DOC.2.15.39"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void destroyParticle(int i)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getLastFrameNumber"></A>
<A NAME="DOC.2.15.40"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int getLastFrameNumber() const </B></TT>
<DD>Get the last frame number
<DL><DT><DD></DL><P>
<A NAME="computeBound"></A>
<A NAME="DOC.2.15.41"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const bool computeBound() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getStats"></A>
<A NAME="DOC.2.15.42"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool getStats(osg::Statistics &amp;stats)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="update_bounds"></A>
<A NAME="DOC.2.15.43"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void update_bounds(const osg::Vec3 &amp;p)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getDefaultParticleTemplate"></A>
<A NAME="DOC.2.15.44"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Particle.html">Particle</A>&amp; getDefaultParticleTemplate() const </B></TT>
<DD>Get a reference to the default particle template
<DL><DT><DD></DL><P>
<A NAME="setDefaultParticleTemplate"></A>
<A NAME="DOC.2.15.45"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setDefaultParticleTemplate(const <!1><A HREF="Particle.html">Particle</A> &amp;p)</B></TT>
<DD>Set the default particle template (particle is copied)
<DL><DT><DD></DL><P>
<A NAME="getFreezeOnCull"></A>
<A NAME="DOC.2.15.46"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool getFreezeOnCull() const </B></TT>
<DD>Get whether the particle system can freeze when culled
<DL><DT><DD></DL><P>
<A NAME="setFreezeOnCull"></A>
<A NAME="DOC.2.15.47"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setFreezeOnCull(bool v)</B></TT>
<DD>Set whether the particle system can freeze when culled (default is true)
<DL><DT><DD></DL><P>
<A NAME="getLevelOfDetail"></A>
<A NAME="DOC.2.15.48"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int getLevelOfDetail() const </B></TT>
<DD>(<B>EXPERIMENTAL</B>) Get the level of detail
<DL><DT><DD></DL><P>
<A NAME="setLevelOfDetail"></A>
<A NAME="DOC.2.15.49"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setLevelOfDetail(int v)</B></TT>
<DD>(<B>EXPERIMENTAL</B>) Set the level of detail. The total number of particles is divided by the detail value to
get the actual number of particles to be drawn. This value must be greater than zero.
<DL><DT><DD></DL><P>
<A NAME="createParticle"></A>
<A NAME="DOC.2.15.50"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Particle.html">Particle</A>* createParticle(const <!1><A HREF="Particle.html">Particle</A>* ptemplate)</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>

View File

@@ -0,0 +1,152 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::ParticleSystemUpdater</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::ParticleSystemUpdater</A></H2></H2><BLOCKQUOTE>A useful node class for updating particle systems automatically.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65>
<param name=classes value="Mosg::Node,M,CParticleSystemUpdater,MParticleSystemUpdater.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.16.1">ParticleSystemUpdater</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.16.2">ParticleSystemUpdater</A></B>(const <!1><A HREF="ParticleSystemUpdater.html#DOC.2.16.2">ParticleSystemUpdater</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.16.3">META_Node</A></B>(<!1><A HREF="ParticleSystemUpdater.html">ParticleSystemUpdater</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.16.4">traverse</A></B>(osg::NodeVisitor &amp;nv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const bool <B><A HREF="#DOC.2.16.10">computeBound</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.16.11">numParticleSystems</A></B>() const
<DD><I>Return the number of particle systems on the list</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.16.12">addParticleSystem</A></B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DD><I>Add a particle system to the list</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B><A HREF="#DOC.2.16.13">getParticleSystem</A></B>(int i) const
<DD><I>Get a const particle system from the list</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B><A HREF="#DOC.2.16.14">getParticleSystem</A></B>(int i)
<DD><I>Get a particle system from the list</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.16.15">removeParticleSystem</A></B>(int i)
<DD><I>Remove a particle system from the list (by index)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.16.16">findParticleSystem</A></B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps) const
<DD><I>Find a particle system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline bool <B><A HREF="#DOC.2.16.17">removeParticleSystem</A></B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DD><I>Remove a particle system from the list (by pointer)</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.16.5">~ParticleSystemUpdater</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ParticleSystemUpdater.html">ParticleSystemUpdater</A>&amp; <B><A HREF="#DOC.2.16.6">operator=</A></B>(const <!1><A HREF="ParticleSystemUpdater.html">ParticleSystemUpdater</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline virtual const bool <B><A HREF="#DOC.2.16.7">computeBound</A></B>() const
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A useful node class for updating particle systems automatically.
When a <CODE>ParticleSystemUpdater</CODE> is traversed by a cull visitor, it calls the
<CODE>update()</CODE> method on the specified particle systems. You should place this updater
<U>AFTER</U> other nodes like emitters and programs.</BLOCKQUOTE>
<DL>
<A NAME="ParticleSystemUpdater"></A>
<A NAME="DOC.2.16.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ParticleSystemUpdater()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ParticleSystemUpdater"></A>
<A NAME="DOC.2.16.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ParticleSystemUpdater(const <!1><A HREF="ParticleSystemUpdater.html#DOC.2.16.2">ParticleSystemUpdater</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="META_Node"></A>
<A NAME="DOC.2.16.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Node(<!1><A HREF="ParticleSystemUpdater.html">ParticleSystemUpdater</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="traverse"></A>
<A NAME="DOC.2.16.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void traverse(osg::NodeVisitor &amp;nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~ParticleSystemUpdater"></A>
<A NAME="DOC.2.16.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~ParticleSystemUpdater()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.16.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ParticleSystemUpdater.html">ParticleSystemUpdater</A>&amp; operator=(const <!1><A HREF="ParticleSystemUpdater.html">ParticleSystemUpdater</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="computeBound"></A>
<A NAME="DOC.2.16.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline virtual const bool computeBound() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="computeBound"></A>
<A NAME="DOC.2.16.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const bool computeBound() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="numParticleSystems"></A>
<A NAME="DOC.2.16.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int numParticleSystems() const </B></TT>
<DD>Return the number of particle systems on the list
<DL><DT><DD></DL><P>
<A NAME="addParticleSystem"></A>
<A NAME="DOC.2.16.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void addParticleSystem(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)</B></TT>
<DD>Add a particle system to the list
<DL><DT><DD></DL><P>
<A NAME="getParticleSystem"></A>
<A NAME="DOC.2.16.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* getParticleSystem(int i) const </B></TT>
<DD>Get a const particle system from the list
<DL><DT><DD></DL><P>
<A NAME="getParticleSystem"></A>
<A NAME="DOC.2.16.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* getParticleSystem(int i)</B></TT>
<DD>Get a particle system from the list
<DL><DT><DD></DL><P>
<A NAME="removeParticleSystem"></A>
<A NAME="DOC.2.16.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void removeParticleSystem(int i)</B></TT>
<DD>Remove a particle system from the list (by index)
<DL><DT><DD></DL><P>
<A NAME="findParticleSystem"></A>
<A NAME="DOC.2.16.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int findParticleSystem(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps) const </B></TT>
<DD>Find a particle system
<DL><DT><DD></DL><P>
<A NAME="removeParticleSystem"></A>
<A NAME="DOC.2.16.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline bool removeParticleSystem(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)</B></TT>
<DD>Remove a particle system from the list (by pointer)
<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>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::Placer</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::Placer</A></H2></H2><BLOCKQUOTE>An abstract base class for implementing <I>particle placers</I>.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=155>
<param name=classes value="Mosg::Object,M,CPlacer,MPlacer.html,CSegmentPlacer,MSegmentPlacer.html,CMultiSegmentPlacer,MMultiSegmentPlacer.html,CCenteredPlacer,MCenteredPlacer.html">
<param name=before value="M,M,M|_,MR_,Mr_">
<param name=after value="Md_,M,M,M,M">
<param name=indent value="0,1,1,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>virtual const char* <B><A HREF="#DOC.2.17.1">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.17.2">isSameKindAs</A></B>(const osg::Object* obj) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.17.3">place</A></B>(<!1><A HREF="Particle.html">Particle</A>* P) const = 0
<DD><I>Place a particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.17.6">Placer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.17.7">Placer</A></B>(const <!1><A HREF="Placer.html#DOC.2.17.7">Placer</A> &amp;copy, const osg::CopyOp &amp;copyop)
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.17.4">~Placer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Placer.html">Placer</A>&amp; <B><A HREF="#DOC.2.17.5">operator=</A></B>(const <!1><A HREF="Placer.html">Placer</A> &amp;)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An abstract base class for implementing <I>particle placers</I>. A placer is an object which take
a particle as input, and places it somewhere by setting its position vector. Placer objects are
used by the <CODE>ModularEmitter</CODE> class as part of the particle emission process.</BLOCKQUOTE>
<DL>
<A NAME="className"></A>
<A NAME="DOC.2.17.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.17.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="place"></A>
<A NAME="DOC.2.17.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void place(<!1><A HREF="Particle.html">Particle</A>* P) const = 0</B></TT>
<DD>Place a particle. Must be implemented in descendant classes.
<DL><DT><DD></DL><P>
<A NAME="~Placer"></A>
<A NAME="DOC.2.17.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ~Placer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.17.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Placer.html">Placer</A>&amp; operator=(const <!1><A HREF="Placer.html">Placer</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Placer"></A>
<A NAME="DOC.2.17.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Placer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Placer"></A>
<A NAME="DOC.2.17.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Placer(const <!1><A HREF="Placer.html#DOC.2.17.7">Placer</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="SegmentPlacer.html">SegmentPlacer</A><BR>
<A HREF="MultiSegmentPlacer.html">MultiSegmentPlacer</A><BR>
<A HREF="CenteredPlacer.html">CenteredPlacer</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>

View File

@@ -0,0 +1,106 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::PointPlacer</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::PointPlacer</A></H2></H2><BLOCKQUOTE>A point-shaped particle placer.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Object,M,CPlacer,MPlacer.html,CCenteredPlacer,MCenteredPlacer.html,CPointPlacer,MPointPlacer.html">
<param name=before value="M,M,M,M">
<param name=after value="Md_SPSP,Md_SP,Md_,M">
<param name=indent value="0,1,2,3">
<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.18.1">META_Object</A></B>(<!1><A HREF="PointPlacer.html">PointPlacer</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.18.4">PointPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.18.5">PointPlacer</A></B>(const <!1><A HREF="PointPlacer.html#DOC.2.18.5">PointPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.18.6">place</A></B>(<!1><A HREF="Particle.html">Particle</A>* P) const
<DD><I>Place a particle.</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.18.2">~PointPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="PointPlacer.html">PointPlacer</A>&amp; <B><A HREF="#DOC.2.18.3">operator=</A></B>(const <!1><A HREF="PointPlacer.html">PointPlacer</A> &amp;)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="CenteredPlacer.html">CenteredPlacer</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Vec3&amp; <B>getCenter</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setCenter</B>(const osg::Vec3 &amp;v)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setCenter</B>(float x, float y, float z)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Placer.html">Placer</A>:</H3>
<DL>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A point-shaped particle placer.
This placer class uses the center point defined in its base class <CODE>CenteredPlacer</CODE>
to place there all incoming particles.</BLOCKQUOTE>
<DL>
<A NAME="META_Object"></A>
<A NAME="DOC.2.18.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="PointPlacer.html">PointPlacer</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~PointPlacer"></A>
<A NAME="DOC.2.18.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~PointPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.18.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="PointPlacer.html">PointPlacer</A>&amp; operator=(const <!1><A HREF="PointPlacer.html">PointPlacer</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="PointPlacer"></A>
<A NAME="DOC.2.18.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline PointPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="PointPlacer"></A>
<A NAME="DOC.2.18.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline PointPlacer(const <!1><A HREF="PointPlacer.html#DOC.2.18.5">PointPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="place"></A>
<A NAME="DOC.2.18.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void place(<!1><A HREF="Particle.html">Particle</A>* P) const </B></TT>
<DD>Place a particle.
This method is called automatically by <CODE>ModularEmitter</CODE> and should not be called
manually.
<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>

View File

@@ -0,0 +1,152 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class OSGPARTICLE_EXPORT osgParticle::Program</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::Program</A></H2></H2><BLOCKQUOTE>An abstract <CODE>ParticleProcessor</CODE> descendant for modifying particles "on the fly" during the cull traversal.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Node,M,CParticleProcessor,MParticleProcessor.html,CProgram,MProgram.html,CModularProgram,MModularProgram.html">
<param name=before value="M,M,M,M^_">
<param name=after value="Md_SP,Md_,M,M">
<param name=indent value="0,1,2,2">
<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.19.1">Program</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.19.2">Program</A></B>(const <!1><A HREF="Program.html#DOC.2.19.2">Program</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const char* <B><A HREF="#DOC.2.19.3">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.19.4">isSameKindAs</A></B>(const osg::Object* obj)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.19.5">accept</A></B>(osg::NodeVisitor&amp; nv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.19.9">process</A></B>(double dt)
<DD><I>Implementation of <CODE>ParticleProcessor::process()</CODE>.</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.19.6">~Program</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Program.html">Program</A>&amp; <B><A HREF="#DOC.2.19.7">operator=</A></B>(const <!1><A HREF="Program.html">Program</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.19.8">execute</A></B>(double dt) = 0
<DD><I>Execute the program on the particle system.</I>
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="ParticleProcessor.html">ParticleProcessor</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> <B>getReferenceFrame</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>traverse</B>(osg::NodeVisitor &amp;nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline ParticleProcessor::ReferenceFrame <B>getReferenceFrame</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setReferenceFrame</B>(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isEnabled</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setEnabled</B>(bool v)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setParticleSystem</B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const bool <B>computeBound</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Matrix&amp; <B>getLocalToWorldMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Matrix&amp; <B>getWorldToLocalMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>transformLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>transformWorldToLocal</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>rotateLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline osg::Vec3 <B>rotateWorldToLocal</B>(const osg::Vec3 &amp;P)
</DL></P>
<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum <B>ReferenceFrame</B>
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An abstract <CODE>ParticleProcessor</CODE> descendant for modifying particles "on the fly"
during the cull traversal.
Descendants of this class must implement the <CODE>execute()</CODE> method, which should iterate
through all particles in the linked particle system and modify them somehow
(usually updating their velocity vector).</BLOCKQUOTE>
<DL>
<A NAME="Program"></A>
<A NAME="DOC.2.19.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Program()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Program"></A>
<A NAME="DOC.2.19.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Program(const <!1><A HREF="Program.html#DOC.2.19.2">Program</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="className"></A>
<A NAME="DOC.2.19.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.19.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="accept"></A>
<A NAME="DOC.2.19.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void accept(osg::NodeVisitor&amp; nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~Program"></A>
<A NAME="DOC.2.19.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Program()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.19.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Program.html">Program</A>&amp; operator=(const <!1><A HREF="Program.html">Program</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="execute"></A>
<A NAME="DOC.2.19.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void execute(double dt) = 0</B></TT>
<DD>Execute the program on the particle system. Must be overriden in descendant classes.
<DL><DT><DD></DL><P>
<A NAME="process"></A>
<A NAME="DOC.2.19.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void process(double dt)</B></TT>
<DD>Implementation of <CODE>ParticleProcessor::process()</CODE>. Do not call this method by yourself.
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="ModularProgram.html">ModularProgram</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>

View File

@@ -0,0 +1,170 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::RadialShooter</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::RadialShooter</A></H2></H2><BLOCKQUOTE>A shooter class that shoots particles radially.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CShooter,MShooter.html,CRadialShooter,MRadialShooter.html">
<param name=before value="M,M,M">
<param name=after value="Md_SP,Md_,M">
<param name=indent value="0,1,2">
<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.20.1">META_Object</A></B>(<!1><A HREF="RadialShooter.html">RadialShooter</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.20.7">RadialShooter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.20.8">RadialShooter</A></B>(const <!1><A HREF="RadialShooter.html#DOC.2.20.8">RadialShooter</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B><A HREF="#DOC.2.20.9">getThetaRange</A></B>() const
<DD><I>Get the range of possible values for <B>theta</B> angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B><A HREF="#DOC.2.20.10">getPhiRange</A></B>() const
<DD><I>Get the range of possible values for <B>phi</B> angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B><A HREF="#DOC.2.20.11">getInitialSpeedRange</A></B>() const
<DD><I>Get the range of possible values for initial speed of particles</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.20.12">setThetaRange</A></B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DD><I>Set the range of possible values for <B>theta</B> angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.20.13">setThetaRange</A></B>(float r1, float r2)
<DD><I>Set the range of possible values for <B>theta</B> angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.20.14">setPhiRange</A></B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DD><I>Set the range of possible values for <B>phi</B> angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.20.15">setPhiRange</A></B>(float r1, float r2)
<DD><I>Set the range of possible values for <B>phi</B> angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.20.16">setInitialSpeedRange</A></B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DD><I>Set the range of possible values for initial speed of particles</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.20.17">setInitialSpeedRange</A></B>(float r1, float r2)
<DD><I>Set the range of possible values for initial speed of particles</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.20.18">shoot</A></B>(<!1><A HREF="Particle.html">Particle</A>* P) const
<DD><I>Shoot a particle.</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.20.2">~RadialShooter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="RadialShooter.html">RadialShooter</A>&amp; <B><A HREF="#DOC.2.20.3">operator=</A></B>(const <!1><A HREF="RadialShooter.html">RadialShooter</A> &amp;)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Shooter.html">Shooter</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A shooter class that shoots particles radially.
This shooter computes the velocity vector of incoming particles by choosing a
random direction and a random speed. Both direction and speed are chosen within
specified ranges. The direction is defined by two angles: <B>theta</B>, which
is the angle between the velocity vector and the Z axis, and <B>phi</B>, which is
the angle between the X axis and the velocity vector projected onto the X-Y plane.</BLOCKQUOTE>
<DL>
<A NAME="META_Object"></A>
<A NAME="DOC.2.20.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="RadialShooter.html">RadialShooter</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~RadialShooter"></A>
<A NAME="DOC.2.20.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~RadialShooter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.20.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="RadialShooter.html">RadialShooter</A>&amp; operator=(const <!1><A HREF="RadialShooter.html">RadialShooter</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="RadialShooter"></A>
<A NAME="DOC.2.20.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline RadialShooter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="RadialShooter"></A>
<A NAME="DOC.2.20.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline RadialShooter(const <!1><A HREF="RadialShooter.html#DOC.2.20.8">RadialShooter</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getThetaRange"></A>
<A NAME="DOC.2.20.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="rangef.html">rangef</A>&amp; getThetaRange() const </B></TT>
<DD>Get the range of possible values for <B>theta</B> angle
<DL><DT><DD></DL><P>
<A NAME="getPhiRange"></A>
<A NAME="DOC.2.20.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="rangef.html">rangef</A>&amp; getPhiRange() const </B></TT>
<DD>Get the range of possible values for <B>phi</B> angle
<DL><DT><DD></DL><P>
<A NAME="getInitialSpeedRange"></A>
<A NAME="DOC.2.20.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="rangef.html">rangef</A>&amp; getInitialSpeedRange() const </B></TT>
<DD>Get the range of possible values for initial speed of particles
<DL><DT><DD></DL><P>
<A NAME="setThetaRange"></A>
<A NAME="DOC.2.20.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setThetaRange(const <!1><A HREF="rangef.html">rangef</A> &amp;r)</B></TT>
<DD>Set the range of possible values for <B>theta</B> angle
<DL><DT><DD></DL><P>
<A NAME="setThetaRange"></A>
<A NAME="DOC.2.20.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setThetaRange(float r1, float r2)</B></TT>
<DD>Set the range of possible values for <B>theta</B> angle
<DL><DT><DD></DL><P>
<A NAME="setPhiRange"></A>
<A NAME="DOC.2.20.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setPhiRange(const <!1><A HREF="rangef.html">rangef</A> &amp;r)</B></TT>
<DD>Set the range of possible values for <B>phi</B> angle
<DL><DT><DD></DL><P>
<A NAME="setPhiRange"></A>
<A NAME="DOC.2.20.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setPhiRange(float r1, float r2)</B></TT>
<DD>Set the range of possible values for <B>phi</B> angle
<DL><DT><DD></DL><P>
<A NAME="setInitialSpeedRange"></A>
<A NAME="DOC.2.20.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setInitialSpeedRange(const <!1><A HREF="rangef.html">rangef</A> &amp;r)</B></TT>
<DD>Set the range of possible values for initial speed of particles
<DL><DT><DD></DL><P>
<A NAME="setInitialSpeedRange"></A>
<A NAME="DOC.2.20.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setInitialSpeedRange(float r1, float r2)</B></TT>
<DD>Set the range of possible values for initial speed of particles
<DL><DT><DD></DL><P>
<A NAME="shoot"></A>
<A NAME="DOC.2.20.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void shoot(<!1><A HREF="Particle.html">Particle</A>* P) const </B></TT>
<DD>Shoot a particle. Do not call this method manually.
<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>

View File

@@ -0,0 +1,99 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::RandomRateCounter</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::RandomRateCounter</A></H2></H2><HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Object,M,CCounter,MCounter.html,CVariableRateCounter,MVariableRateCounter.html,CRandomRateCounter,MRandomRateCounter.html">
<param name=before value="M,M,M,M">
<param name=after value="Md_SPSP,Md_SP,Md_,M">
<param name=indent value="0,1,2,3">
<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.21.1">META_Object</A></B>(<!1><A HREF="RandomRateCounter.html">RandomRateCounter</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.21.4">RandomRateCounter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.21.5">RandomRateCounter</A></B>(const <!1><A HREF="RandomRateCounter.html#DOC.2.21.5">RandomRateCounter</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline int <B><A HREF="#DOC.2.21.6">numParticlesToCreate</A></B>(double dt) const
<DD><I>Return the number of particles to be created in this frame</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.21.2">~RandomRateCounter</A></B>()
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="VariableRateCounter.html">VariableRateCounter</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B>getRateRange</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setRateRange</B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setRateRange</B>(float minrange, float maxrange)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Counter.html">Counter</A>:</H3>
<DL>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Counter.html">Counter</A>&amp; <B>operator=</B>(const <!1><A HREF="Counter.html">Counter</A> &amp;)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<DL>
<A NAME="META_Object"></A>
<A NAME="DOC.2.21.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="RandomRateCounter.html">RandomRateCounter</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~RandomRateCounter"></A>
<A NAME="DOC.2.21.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~RandomRateCounter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="RandomRateCounter"></A>
<A NAME="DOC.2.21.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline RandomRateCounter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="RandomRateCounter"></A>
<A NAME="DOC.2.21.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline RandomRateCounter(const <!1><A HREF="RandomRateCounter.html#DOC.2.21.5">RandomRateCounter</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="numParticlesToCreate"></A>
<A NAME="DOC.2.21.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline int numParticlesToCreate(double dt) const </B></TT>
<DD>Return the number of particles to be created in this frame
<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>

View File

@@ -0,0 +1,154 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::SectorPlacer</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::SectorPlacer</A></H2></H2><BLOCKQUOTE>A sector-shaped particle placer.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Object,M,CPlacer,MPlacer.html,CCenteredPlacer,MCenteredPlacer.html,CSectorPlacer,MSectorPlacer.html">
<param name=before value="M,M,M,M">
<param name=after value="Md_SPSP,Md_SP,Md_,M">
<param name=indent value="0,1,2,3">
<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.26.1">META_Object</A></B>(<!1><A HREF="SectorPlacer.html">SectorPlacer</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.26.6">SectorPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.26.7">SectorPlacer</A></B>(const <!1><A HREF="SectorPlacer.html#DOC.2.26.7">SectorPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B><A HREF="#DOC.2.26.8">getRadiusRange</A></B>() const
<DD><I>Get the range of possible values for radius</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B><A HREF="#DOC.2.26.9">getPhiRange</A></B>() const
<DD><I>Get the range of possible values for the central angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.26.10">setRadiusRange</A></B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DD><I>Set the range of possible values for radius</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.26.11">setRadiusRange</A></B>(float r1, float r2)
<DD><I>Set the range of possible values for radius</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.26.12">setPhiRange</A></B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DD><I>Set the range of possible values for the central angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.26.13">setPhiRange</A></B>(float r1, float r2)
<DD><I>Set the range of possible values for the central angle</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.26.14">place</A></B>(<!1><A HREF="Particle.html">Particle</A>* P) const
<DD><I>Place a particle.</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.26.2">~SectorPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="SectorPlacer.html">SectorPlacer</A>&amp; <B><A HREF="#DOC.2.26.3">operator=</A></B>(const <!1><A HREF="SectorPlacer.html">SectorPlacer</A> &amp;)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="CenteredPlacer.html">CenteredPlacer</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const osg::Vec3&amp; <B>getCenter</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setCenter</B>(const osg::Vec3 &amp;v)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setCenter</B>(float x, float y, float z)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Placer.html">Placer</A>:</H3>
<DL>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A sector-shaped particle placer.
This placer sets the initial position of incoming particle by choosing a random position
within a circular sector; this sector is defined by three parameters: a <I>center point</I>,
which is inherited directly from <CODE>osgParticle::CenteredPlacer</CODE>, a range of values
for <I>radius</I>, and a range of values for the <I>central angle</I> (sometimes called <B>phi</B>). </BLOCKQUOTE>
<DL>
<A NAME="META_Object"></A>
<A NAME="DOC.2.26.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="SectorPlacer.html">SectorPlacer</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~SectorPlacer"></A>
<A NAME="DOC.2.26.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~SectorPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.26.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="SectorPlacer.html">SectorPlacer</A>&amp; operator=(const <!1><A HREF="SectorPlacer.html">SectorPlacer</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="SectorPlacer"></A>
<A NAME="DOC.2.26.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline SectorPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="SectorPlacer"></A>
<A NAME="DOC.2.26.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline SectorPlacer(const <!1><A HREF="SectorPlacer.html#DOC.2.26.7">SectorPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getRadiusRange"></A>
<A NAME="DOC.2.26.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="rangef.html">rangef</A>&amp; getRadiusRange() const </B></TT>
<DD>Get the range of possible values for radius
<DL><DT><DD></DL><P>
<A NAME="getPhiRange"></A>
<A NAME="DOC.2.26.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="rangef.html">rangef</A>&amp; getPhiRange() const </B></TT>
<DD>Get the range of possible values for the central angle
<DL><DT><DD></DL><P>
<A NAME="setRadiusRange"></A>
<A NAME="DOC.2.26.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setRadiusRange(const <!1><A HREF="rangef.html">rangef</A> &amp;r)</B></TT>
<DD>Set the range of possible values for radius
<DL><DT><DD></DL><P>
<A NAME="setRadiusRange"></A>
<A NAME="DOC.2.26.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setRadiusRange(float r1, float r2)</B></TT>
<DD>Set the range of possible values for radius
<DL><DT><DD></DL><P>
<A NAME="setPhiRange"></A>
<A NAME="DOC.2.26.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setPhiRange(const <!1><A HREF="rangef.html">rangef</A> &amp;r)</B></TT>
<DD>Set the range of possible values for the central angle
<DL><DT><DD></DL><P>
<A NAME="setPhiRange"></A>
<A NAME="DOC.2.26.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setPhiRange(float r1, float r2)</B></TT>
<DD>Set the range of possible values for the central angle
<DL><DT><DD></DL><P>
<A NAME="place"></A>
<A NAME="DOC.2.26.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void place(<!1><A HREF="Particle.html">Particle</A>* P) const </B></TT>
<DD>Place a particle. Do not call it manually.
<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>

View File

@@ -0,0 +1,152 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::SegmentPlacer</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::SegmentPlacer</A></H2></H2><BLOCKQUOTE>A segment-shaped particle placer.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CPlacer,MPlacer.html,CSegmentPlacer,MSegmentPlacer.html">
<param name=before value="M,M,M">
<param name=after value="Md_SP,Md_,M">
<param name=indent value="0,1,2">
<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.27.1">META_Object</A></B>(<!1><A HREF="SegmentPlacer.html">SegmentPlacer</A>)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.27.6">SegmentPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.27.7">SegmentPlacer</A></B>(const <!1><A HREF="SegmentPlacer.html#DOC.2.27.7">SegmentPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.27.8">getVertexA</A></B>() const
<DD><I>get vertex <B>A</B></I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const osg::Vec3&amp; <B><A HREF="#DOC.2.27.9">getVertexB</A></B>() const
<DD><I>get vertex <B>B</B></I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.27.10">setSegment</A></B>(const osg::Vec3 &amp;A, const osg::Vec3 &amp;B)
<DD><I>Set both vertices</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.27.11">place</A></B>(<!1><A HREF="Particle.html">Particle</A>* P) const
<DD><I>Place a particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.27.12">setVertexA</A></B>(const osg::Vec3 &amp;v)
<DD><I>Set vertex <B>A</B> of the segment as a vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.27.13">setVertexA</A></B>(float x, float y, float z)
<DD><I>Set vertex <B>A</B> of the segment as three floats</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.27.14">setVertexB</A></B>(const osg::Vec3 &amp;v)
<DD><I>Set vertex <B>B</B> of the segment as a vector</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.27.15">setVertexB</A></B>(float x, float y, float z)
<DD><I>Set vertex <B>B</B> of the segment as three floats</I>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.27.2">~SegmentPlacer</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="SegmentPlacer.html">SegmentPlacer</A>&amp; <B><A HREF="#DOC.2.27.3">operator=</A></B>(const <!1><A HREF="SegmentPlacer.html">SegmentPlacer</A> &amp;)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Placer.html">Placer</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const osg::Object* obj) const
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A segment-shaped particle placer.
To use this placer you have to define a segment, by setting its two vertices (<B>A</B> and <B>B</B>);
when an emitter requests a <CODE>SegmentPlacer</CODE> to place a particle, the position is chosen randomly
within that segment.</BLOCKQUOTE>
<DL>
<A NAME="META_Object"></A>
<A NAME="DOC.2.27.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="SegmentPlacer.html">SegmentPlacer</A>)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~SegmentPlacer"></A>
<A NAME="DOC.2.27.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~SegmentPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.27.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="SegmentPlacer.html">SegmentPlacer</A>&amp; operator=(const <!1><A HREF="SegmentPlacer.html">SegmentPlacer</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="SegmentPlacer"></A>
<A NAME="DOC.2.27.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline SegmentPlacer()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="SegmentPlacer"></A>
<A NAME="DOC.2.27.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline SegmentPlacer(const <!1><A HREF="SegmentPlacer.html#DOC.2.27.7">SegmentPlacer</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getVertexA"></A>
<A NAME="DOC.2.27.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getVertexA() const </B></TT>
<DD>get vertex <B>A</B>
<DL><DT><DD></DL><P>
<A NAME="getVertexB"></A>
<A NAME="DOC.2.27.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const osg::Vec3&amp; getVertexB() const </B></TT>
<DD>get vertex <B>B</B>
<DL><DT><DD></DL><P>
<A NAME="setSegment"></A>
<A NAME="DOC.2.27.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setSegment(const osg::Vec3 &amp;A, const osg::Vec3 &amp;B)</B></TT>
<DD>Set both vertices
<DL><DT><DD></DL><P>
<A NAME="place"></A>
<A NAME="DOC.2.27.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void place(<!1><A HREF="Particle.html">Particle</A>* P) const </B></TT>
<DD>Place a particle. This method is called by <CODE>ModularEmitter</CODE>, do not call it manually.
<DL><DT><DD></DL><P>
<A NAME="setVertexA"></A>
<A NAME="DOC.2.27.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setVertexA(const osg::Vec3 &amp;v)</B></TT>
<DD>Set vertex <B>A</B> of the segment as a vector
<DL><DT><DD></DL><P>
<A NAME="setVertexA"></A>
<A NAME="DOC.2.27.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setVertexA(float x, float y, float z)</B></TT>
<DD>Set vertex <B>A</B> of the segment as three floats
<DL><DT><DD></DL><P>
<A NAME="setVertexB"></A>
<A NAME="DOC.2.27.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setVertexB(const osg::Vec3 &amp;v)</B></TT>
<DD>Set vertex <B>B</B> of the segment as a vector
<DL><DT><DD></DL><P>
<A NAME="setVertexB"></A>
<A NAME="DOC.2.27.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setVertexB(float x, float y, float z)</B></TT>
<DD>Set vertex <B>B</B> of the segment as three floats
<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>

View File

@@ -0,0 +1,94 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::Shooter</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::Shooter</A></H2></H2><BLOCKQUOTE>An abstract base class used by ModularEmitter to "shoot" the particles after they have been placed.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="Mosg::Object,M,CShooter,MShooter.html,CRadialShooter,MRadialShooter.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>virtual const char* <B><A HREF="#DOC.2.28.1">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.28.2">isSameKindAs</A></B>(const osg::Object* obj) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.2.28.3">shoot</A></B>(<!1><A HREF="Particle.html">Particle</A>* P) const = 0
<DD><I>Shoot a particle.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.28.6">Shooter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.28.7">Shooter</A></B>(const <!1><A HREF="Shooter.html#DOC.2.28.7">Shooter</A> &amp;copy, const osg::CopyOp &amp;copyop)
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.28.4">~Shooter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Shooter.html">Shooter</A>&amp; <B><A HREF="#DOC.2.28.5">operator=</A></B>(const <!1><A HREF="Shooter.html">Shooter</A> &amp;)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An abstract base class used by ModularEmitter to "shoot" the particles after they have been placed.
Descendants of this class must override the <CODE>shoot()</CODE> method.</BLOCKQUOTE>
<DL>
<A NAME="className"></A>
<A NAME="DOC.2.28.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.28.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="shoot"></A>
<A NAME="DOC.2.28.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void shoot(<!1><A HREF="Particle.html">Particle</A>* P) const = 0</B></TT>
<DD>Shoot a particle. Must be overriden by descendants.
This method should only set the velocity vector of particle <CODE>P</CODE>, leaving other
attributes unchanged.
<DL><DT><DD></DL><P>
<A NAME="~Shooter"></A>
<A NAME="DOC.2.28.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Shooter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.28.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Shooter.html">Shooter</A>&amp; operator=(const <!1><A HREF="Shooter.html">Shooter</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Shooter"></A>
<A NAME="DOC.2.28.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Shooter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Shooter"></A>
<A NAME="DOC.2.28.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline Shooter(const <!1><A HREF="Shooter.html#DOC.2.28.7">Shooter</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="RadialShooter.html">RadialShooter</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>

View File

@@ -0,0 +1,106 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class osgParticle::VariableRateCounter</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">osgParticle::VariableRateCounter</A></H2></H2><HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Object,M,CCounter,MCounter.html,CVariableRateCounter,MVariableRateCounter.html,CRandomRateCounter,MRandomRateCounter.html">
<param name=before value="M,M,M,M^_">
<param name=after value="Md_SP,Md_,M,M">
<param name=indent value="0,1,2,2">
<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>virtual const char* <B><A HREF="#DOC.2.29.1">className</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.29.2">isSameKindAs</A></B>(const osg::Object* obj) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.29.5">VariableRateCounter</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <B><A HREF="#DOC.2.29.6">VariableRateCounter</A></B>(const <!1><A HREF="VariableRateCounter.html#DOC.2.29.6">VariableRateCounter</A> &amp;copy, const osg::CopyOp &amp;copyop)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="rangef.html">rangef</A>&amp; <B><A HREF="#DOC.2.29.7">getRateRange</A></B>() const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.29.8">setRateRange</A></B>(const <!1><A HREF="rangef.html">rangef</A> &amp;r)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.29.9">setRateRange</A></B>(float minrange, float maxrange)
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.29.3">~VariableRateCounter</A></B>()
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Counter.html">Counter</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual int <B>numParticlesToCreate</B>(double dt) const
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Counter.html">Counter</A>&amp; <B>operator=</B>(const <!1><A HREF="Counter.html">Counter</A> &amp;)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<DL>
<A NAME="className"></A>
<A NAME="DOC.2.29.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.29.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="~VariableRateCounter"></A>
<A NAME="DOC.2.29.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~VariableRateCounter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="VariableRateCounter"></A>
<A NAME="DOC.2.29.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline VariableRateCounter()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="VariableRateCounter"></A>
<A NAME="DOC.2.29.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline VariableRateCounter(const <!1><A HREF="VariableRateCounter.html#DOC.2.29.6">VariableRateCounter</A> &amp;copy, const osg::CopyOp &amp;copyop)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getRateRange"></A>
<A NAME="DOC.2.29.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="rangef.html">rangef</A>&amp; getRateRange() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="setRateRange"></A>
<A NAME="DOC.2.29.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setRateRange(const <!1><A HREF="rangef.html">rangef</A> &amp;r)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="setRateRange"></A>
<A NAME="DOC.2.29.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setRateRange(float minrange, float maxrange)</B></TT>
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="RandomRateCounter.html">RandomRateCounter</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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Table of Contents</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>Table of Contents</H1>
<H2>Namespaces</H2>
<UL>
<LI><A HREF="osgParticle.html">osgParticle</A>
</UL>
<H2>Functions</H2>
<UL>
<LI><A HREF="General.html#osgParticleGetLibraryName">osgParticleGetLibraryName</A>
<LI><A HREF="General.html#osgParticleGetVersion">osgParticleGetVersion</A>
</UL>
<H2>Macros</H2>
<UL>
<LI><A HREF="General.html#OSGPARTICLE_ACCELOPERATOR_">OSGPARTICLE_ACCELOPERATOR_</A>
<LI><A HREF="General.html#OSGPARTICLE_CENTEREDPLACER_">OSGPARTICLE_CENTEREDPLACER_</A>
<LI><A HREF="General.html#OSGPARTICLE_COUNTER_">OSGPARTICLE_COUNTER_</A>
<LI><A HREF="General.html#OSGPARTICLE_EMITTER_">OSGPARTICLE_EMITTER_</A>
<LI><B>OSGPARTICLE_EXPORT:</B>
<UL>
<LI><A HREF="General.html#OSGPARTICLE_EXPORT">OSGPARTICLE_EXPORT</A>
<LI><A HREF="General.html#OSGPARTICLE_EXPORT">OSGPARTICLE_EXPORT</A>
<LI><A HREF="General.html#OSGPARTICLE_EXPORT">OSGPARTICLE_EXPORT</A>
</UL>
<LI><A HREF="General.html#OSGPARTICLE_EXPORT_">OSGPARTICLE_EXPORT_</A>
<LI><A HREF="General.html#OSGPARTICLE_FLUIDFRICTIONOPERATOR_">OSGPARTICLE_FLUIDFRICTIONOPERATOR_</A>
<LI><A HREF="General.html#OSGPARTICLE_FORCEOPERATOR_">OSGPARTICLE_FORCEOPERATOR_</A>
<LI><A HREF="General.html#OSGPARTICLE_INTERPOLATOR_">OSGPARTICLE_INTERPOLATOR_</A>
<LI><A HREF="General.html#OSGPARTICLE_LINEARINTERPOLATOR_">OSGPARTICLE_LINEARINTERPOLATOR_</A>
<LI><A HREF="General.html#OSGPARTICLE_MODULAREMITTER_">OSGPARTICLE_MODULAREMITTER_</A>
<LI><A HREF="General.html#OSGPARTICLE_MODULARPROGRAM_">OSGPARTICLE_MODULARPROGRAM_</A>
<LI><A HREF="General.html#OSGPARTICLE_MULTISEGMENTPLACER_">OSGPARTICLE_MULTISEGMENTPLACER_</A>
<LI><A HREF="General.html#OSGPARTICLE_OPERATOR_">OSGPARTICLE_OPERATOR_</A>
<LI><A HREF="General.html#OSGPARTICLE_PARTICLEPROCESSOR_">OSGPARTICLE_PARTICLEPROCESSOR_</A>
<LI><A HREF="General.html#OSGPARTICLE_PARTICLESYSTEMUPDATER_">OSGPARTICLE_PARTICLESYSTEMUPDATER_</A>
<LI><A HREF="General.html#OSGPARTICLE_PARTICLESYSTEM_">OSGPARTICLE_PARTICLESYSTEM_</A>
<LI><A HREF="General.html#OSGPARTICLE_PARTICLE_">OSGPARTICLE_PARTICLE_</A>
<LI><A HREF="General.html#OSGPARTICLE_PLACER_">OSGPARTICLE_PLACER_</A>
<LI><A HREF="General.html#OSGPARTICLE_POINTPLACER_">OSGPARTICLE_POINTPLACER_</A>
<LI><A HREF="General.html#OSGPARTICLE_PROGRAM_">OSGPARTICLE_PROGRAM_</A>
<LI><A HREF="General.html#OSGPARTICLE_RADIALSHOOTER_">OSGPARTICLE_RADIALSHOOTER_</A>
<LI><A HREF="General.html#OSGPARTICLE_RANDOMRATECOUNTER_">OSGPARTICLE_RANDOMRATECOUNTER_</A>
<LI><A HREF="General.html#OSGPARTICLE_RANGE_">OSGPARTICLE_RANGE_</A>
<LI><A HREF="OSGPARTICLE_SECTORPLACER_.html">OSGPARTICLE_SECTORPLACER_</A> <I>Range of osg::Vec4s</I>
<LI><A HREF="General.html#OSGPARTICLE_SEGMENTPLACER_">OSGPARTICLE_SEGMENTPLACER_</A>
<LI><A HREF="General.html#OSGPARTICLE_SHOOTER_">OSGPARTICLE_SHOOTER_</A>
<LI><A HREF="General.html#OSGPARTICLE_VARIABLERATECOUNTER_">OSGPARTICLE_VARIABLERATECOUNTER_</A>
<LI><A HREF="General.html#OSGPARTICLE_VERSION_">OSGPARTICLE_VERSION_</A>
</UL>
<P><I><A HREF="HIER.html">Hierarchy of classes</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>

View File

@@ -0,0 +1,109 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>namespace osgParticle</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>namespace <A HREF="#DOC.DOCU">osgParticle</A></H2></H2>
<HR>
<P><DL>
<DT>
class <B><A HREF="AccelOperator.html">AccelOperator</A></B>: public <!1><A HREF="Operator.html">Operator</A>
<DD><I>An operator class that applies a constant acceleration to the particles</I>
<DT>
class <B><A HREF="CenteredPlacer.html">CenteredPlacer</A></B>: public <!1><A HREF="Placer.html">Placer</A>
<DD><I>An abstract placer base class for placers which need a <I>center point</I></I>
<DT>
class <B><A HREF="Counter.html">Counter</A></B>: public osg::Object
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="Emitter.html">Emitter</A></B>: public <!1><A HREF="ParticleProcessor.html">ParticleProcessor</A>
<DD><I>An abstract base class for particle emitters.</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="FluidFrictionOperator.html">FluidFrictionOperator</A></B>: public <!1><A HREF="Operator.html">Operator</A>
<DD><I>An operator that simulates the friction of a fluid.</I>
<DT>
class <B><A HREF="ForceOperator.html">ForceOperator</A></B>: public <!1><A HREF="Operator.html">Operator</A>
<DD><I>An operator that applies a constant force to the particles.</I>
<DT>
class <B><A HREF="Interpolator.html">Interpolator</A></B>: public osg::Object
<DD><I>An abstract base class for implementing interpolators</I>
<DT>
class <B><A HREF="LinearInterpolator.html">LinearInterpolator</A></B>: public <!1><A HREF="Interpolator.html">Interpolator</A>
<DD><I>A linear interpolator</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="ModularEmitter.html">ModularEmitter</A></B>: public <!1><A HREF="Emitter.html">Emitter</A>
<DD><I>An emitter class that holds three objects to control the creation of particles.</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="ModularProgram.html">ModularProgram</A></B>: public <!1><A HREF="Program.html">Program</A>
<DD><I>A program class for performing operations on particles using a sequence of <I>operators</I>.</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="MultiSegmentPlacer.html">MultiSegmentPlacer</A></B>: public <!1><A HREF="Placer.html">Placer</A>
<DD><I>A polyline-shaped particle placer.</I>
<DT>
class <B><A HREF="Operator.html">Operator</A></B>: public osg::Object
<DD><I>An abstract base class used by <CODE>ModularProgram</CODE> to perform operations on particles before they are updated.</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="Particle.html">Particle</A></B>
<DD><I>Implementation of a <B>particle</B>.</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="ParticleProcessor.html">ParticleProcessor</A></B>: public osg::Node
<DD><I>A common base interface for those classes which need to do something on particles.</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="ParticleSystem.html">ParticleSystem</A></B>: public osg::Drawable
<DD><I>The heart of this class library; its purpose is to hold a set of particles and manage particle creation, update, rendering and destruction.</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="ParticleSystemUpdater.html">ParticleSystemUpdater</A></B>: public osg::Node
<DD><I>A useful node class for updating particle systems automatically.</I>
<DT>
class <B><A HREF="Placer.html">Placer</A></B>: public osg::Object
<DD><I>An abstract base class for implementing <I>particle placers</I>.</I>
<DT>
class <B><A HREF="PointPlacer.html">PointPlacer</A></B>: public <!1><A HREF="CenteredPlacer.html">CenteredPlacer</A>
<DD><I>A point-shaped particle placer.</I>
<DT>
class OSGPARTICLE_EXPORT <B><A HREF="Program.html">Program</A></B>: public <!1><A HREF="ParticleProcessor.html">ParticleProcessor</A>
<DD><I>An abstract <CODE>ParticleProcessor</CODE> descendant for modifying particles "on the fly" during the cull traversal.</I>
<DT>
class <B><A HREF="RadialShooter.html">RadialShooter</A></B>: public <!1><A HREF="Shooter.html">Shooter</A>
<DD><I>A shooter class that shoots particles radially.</I>
<DT>
class <B><A HREF="RandomRateCounter.html">RandomRateCounter</A></B>: public <!1><A HREF="VariableRateCounter.html">VariableRateCounter</A>
<DT>
template&lt;class T_&gt; struct <B><A HREF="range.html">range</A></B>
<DD><I> A simple struct template useful to store ranges of values as min/max pairs.</I>
<DT>
typedef <!1><A HREF="range.html">range</A>&lt;float&gt; <B><A HREF="rangef.html">rangef</A></B>
<DD><I>Range of floats</I>
<DT>
typedef <!1><A HREF="range.html">range</A>&lt;osg::Vec2&gt; <B><A HREF="rangev2.html">rangev2</A></B>
<DD><I>Range of osg::Vec2s</I>
<DT>
typedef <!1><A HREF="range.html">range</A>&lt;osg::Vec3&gt; <B><A HREF="rangev3.html">rangev3</A></B>
<DD><I>Range of osg::Vec3s</I>
<DT>
class <B><A HREF="SectorPlacer.html">SectorPlacer</A></B>: public <!1><A HREF="CenteredPlacer.html">CenteredPlacer</A>
<DD><I>A sector-shaped particle placer.</I>
<DT>
class <B><A HREF="SegmentPlacer.html">SegmentPlacer</A></B>: public <!1><A HREF="Placer.html">Placer</A>
<DD><I>A segment-shaped particle placer.</I>
<DT>
class <B><A HREF="Shooter.html">Shooter</A></B>: public osg::Object
<DD><I>An abstract base class used by ModularEmitter to "shoot" the particles after they have been placed.</I>
<DT>
class <B><A HREF="VariableRateCounter.html">VariableRateCounter</A></B>: public <!1><A HREF="Counter.html">Counter</A>
</DL></P>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<DL>
</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>

View File

@@ -0,0 +1,81 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>template<class T_> struct osgParticle::range</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>template&lt;class T_&gt; struct <A HREF="#DOC.DOCU">osgParticle::range</A></H2></H2><BLOCKQUOTE> A simple struct template useful to store ranges of values as min/max pairs.</BLOCKQUOTE>
<HR>
<P><DL>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>T_ <B><A HREF="#DOC.2.22.1">min</A></B>
<DD><I>Lower bound</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>T_ <B><A HREF="#DOC.2.22.2">max</A></B>
<DD><I>Higher bound</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.22.3">range</A></B>()
<DD><I>Construct the object by calling default constructors for min and max</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.22.4">range</A></B>(const T_ &amp;mn, const T_ &amp;mx)
<DD><I>Construct and initialize min and max directly</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.22.5">set</A></B>(const T_ &amp;mn, const T_ &amp;mx)
<DD><I>Set min and max</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>T_ <B><A HREF="#DOC.2.22.6">get_random</A></B>() const
<DD><I>Get a random value between min and max</I>
</DL></P>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>
A simple struct template useful to store ranges of values as min/max pairs.
This struct template helps storing min/max ranges for values of any kind; class <CODE>T_</CODE> is
the type of values to be stored, and it must support operations <CODE>T_ + T_</CODE>, <CODE>T_ - T_</CODE>,
and <CODE>T_ * float</CODE>, otherwise the <CODE>get_random()</CODE> method will not compile.
This struct could be extended to customize the random number generator (now it uses only
<CODE>std::rand()</CODE>).</BLOCKQUOTE>
<DL>
<A NAME="min"></A>
<A NAME="DOC.2.22.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>T_ min</B></TT>
<DD>Lower bound
<DL><DT><DD></DL><P>
<A NAME="max"></A>
<A NAME="DOC.2.22.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>T_ max</B></TT>
<DD>Higher bound
<DL><DT><DD></DL><P>
<A NAME="range"></A>
<A NAME="DOC.2.22.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> range()</B></TT>
<DD>Construct the object by calling default constructors for min and max
<DL><DT><DD></DL><P>
<A NAME="range"></A>
<A NAME="DOC.2.22.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> range(const T_ &amp;mn, const T_ &amp;mx)</B></TT>
<DD>Construct and initialize min and max directly
<DL><DT><DD></DL><P>
<A NAME="set"></A>
<A NAME="DOC.2.22.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void set(const T_ &amp;mn, const T_ &amp;mx)</B></TT>
<DD>Set min and max
<DL><DT><DD></DL><P>
<A NAME="get_random"></A>
<A NAME="DOC.2.22.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>T_ get_random() const </B></TT>
<DD>Get a random value between min and max
<DL><DT><DD></DL><P></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>

View File

@@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>typedef range<float> osgParticle::rangef</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>typedef <!1><A HREF="range.html">range</A>&lt;float&gt; <A HREF="#DOC.DOCU">osgParticle::rangef</A></H2></H2><BLOCKQUOTE>Range of floats</BLOCKQUOTE>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>Range of floats</BLOCKQUOTE>
<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>

View File

@@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>typedef range<osg::Vec2> osgParticle::rangev2</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>typedef <!1><A HREF="range.html">range</A>&lt;osg::Vec2&gt; <A HREF="#DOC.DOCU">osgParticle::rangev2</A></H2></H2><BLOCKQUOTE>Range of osg::Vec2s</BLOCKQUOTE>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>Range of osg::Vec2s</BLOCKQUOTE>
<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>

View File

@@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>typedef range<osg::Vec3> osgParticle::rangev3</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>typedef <!1><A HREF="range.html">range</A>&lt;osg::Vec3&gt; <A HREF="#DOC.DOCU">osgParticle::rangev3</A></H2></H2><BLOCKQUOTE>Range of osg::Vec3s</BLOCKQUOTE>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>Range of osg::Vec3s</BLOCKQUOTE>
<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>

View File

@@ -38,6 +38,8 @@ core scene graph reference guide.
scene graph utilities reference guide.
<br><a href="doc++/osgDB/HIER.html">osgDB/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
scene graph database utilities reference guide.
<br><a href="doc++/osgParticle/HIER.html">osgParticle/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
scene graph particle reference guide.
<br><a href="doc++/osgText/HIER.html">osgText/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
scene graph text reference guide.
<br><a href="doc++/osgGLUT/HIER.html">osgGLUT/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;