Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > aa937981cccb78f06312e3cc380fe202 > files > 1123

OpenSceneGraph-devel-2.8.3-3.fc14.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>OpenSceneGraph: osgParticle::Program Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="a01635.html">osgParticle</a>      </li>
      <li><a class="el" href="a00581.html">osgParticle::Program</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<h1>osgParticle::Program Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="osgParticle::Program" --><!-- doxytag: inherits="osgParticle::ParticleProcessor" -->
<p>An abstract <code><a class="el" href="a00541.html" title="A common base interface for those classes which need to do something on particles.">ParticleProcessor</a></code> descendant for modifying particles "on the fly" during the cull traversal.  
<a href="#_details">More...</a></p>
<div class="dynheader">
Inheritance diagram for osgParticle::Program:</div>
<div class="dyncontent">
<div class="center"><img src="a03341.png" border="0" usemap="#osgParticle_1_1Program_inherit__map" alt="Inheritance graph"/></div>
<map name="osgParticle_1_1Program_inherit__map" id="osgParticle_1_1Program_inherit__map">
<area shape="rect" id="node11" href="a00294.html" title="A program class for performing operations on particles using a sequence of operators." alt="" coords="5,392,176,421"/><area shape="rect" id="node13" href="a00477.html" title="A program class for performing operations on particles using a sequence of operators." alt="" coords="200,392,389,421"/><area shape="rect" id="node2" href="a00541.html" title="A common base interface for those classes which need to do something on particles." alt="" coords="93,237,291,267"/><area shape="rect" id="node4" href="a00491.html" title="Base class for all internal nodes in the scene graph." alt="" coords="151,160,233,189"/><area shape="rect" id="node6" href="a00500.html" title="Base class/standard interface for objects which require IO support, cloning and reference counting..." alt="" coords="148,83,236,112"/><area shape="rect" id="node8" href="a00627.html" title="Base class from providing referencing counted objects." alt="" coords="133,5,251,35"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="a03342.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#ab9cca7b7ab2b33ef67cd7cf5a70fc796">Program</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#af14a595367245ff9e4f98681933bd9e1">Program</a> (const <a class="el" href="a00581.html">Program</a> &amp;copy, const <a class="el" href="a00169.html">osg::CopyOp</a> &amp;copyop=osg::CopyOp::SHALLOW_COPY)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#acf85e8a677603d417bc23c95585758de">libraryName</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the name of the node's library.  <a href="#acf85e8a677603d417bc23c95585758de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#a6166722c93756d51935491db36736ba0">className</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the name of the node's class type.  <a href="#a6166722c93756d51935491db36736ba0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#a11be04b8c80717b0c0442c054cac5053">isSameKindAs</a> (const <a class="el" href="a00500.html">osg::Object</a> *obj) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return true if this and obj are of the same kind of object.  <a href="#a11be04b8c80717b0c0442c054cac5053"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#afcf509adf743ba9baf32dd86b287d2f9">accept</a> (<a class="el" href="a00497.html">osg::NodeVisitor</a> &amp;nv)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.  <a href="#afcf509adf743ba9baf32dd86b287d2f9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#a91b8a49a3b9ca2672122e61bf6aa882b">~Program</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00581.html">Program</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#a86aa83749c30021687626c53bb118517">operator=</a> (const <a class="el" href="a00581.html">Program</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#a6c546038ae6ac9ad7fb9486957cd9eaa">process</a> (double dt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implementation of <code><a class="el" href="a00541.html#a84e3e419d92ad7c61f814e677617f89a">ParticleProcessor::process()</a></code>. Do not call this method by yourself.  <a href="#a6c546038ae6ac9ad7fb9486957cd9eaa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00581.html#aee710d4cfdeb491cb275360a3c758a3c">execute</a> (double dt)=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Execute the program on the particle system. Must be overriden in descendant classes.  <a href="#aee710d4cfdeb491cb275360a3c758a3c"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>An abstract <code><a class="el" href="a00541.html" title="A common base interface for those classes which need to do something on particles.">ParticleProcessor</a></code> descendant for modifying particles "on the fly" during the cull traversal. </p>
<p>Descendants of this class must implement the <code><a class="el" href="a00581.html#aee710d4cfdeb491cb275360a3c758a3c" title="Execute the program on the particle system. Must be overriden in descendant classes.">execute()</a></code> method, which should iterate through all particles in the linked particle system and modify them somehow (usually updating their velocity vector). </p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab9cca7b7ab2b33ef67cd7cf5a70fc796"></a><!-- doxytag: member="osgParticle::Program::Program" ref="ab9cca7b7ab2b33ef67cd7cf5a70fc796" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osgParticle::Program::Program </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af14a595367245ff9e4f98681933bd9e1"></a><!-- doxytag: member="osgParticle::Program::Program" ref="af14a595367245ff9e4f98681933bd9e1" args="(const Program &amp;copy, const osg::CopyOp &amp;copyop=osg::CopyOp::SHALLOW_COPY)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osgParticle::Program::Program </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00581.html">Program</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>copy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00169.html">osg::CopyOp</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>copyop</em> = <code>osg::CopyOp::SHALLOW_COPY</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a91b8a49a3b9ca2672122e61bf6aa882b"></a><!-- doxytag: member="osgParticle::Program::~Program" ref="a91b8a49a3b9ca2672122e61bf6aa882b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual osgParticle::Program::~Program </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="afcf509adf743ba9baf32dd86b287d2f9"></a><!-- doxytag: member="osgParticle::Program::accept" ref="afcf509adf743ba9baf32dd86b287d2f9" args="(osg::NodeVisitor &amp;nv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osgParticle::Program::accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00497.html">osg::NodeVisitor</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>nv</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Visitor Pattern : calls the apply method of a NodeVisitor with this node's type. </p>

<p>Reimplemented from <a class="el" href="a00541.html#a5d0608077ee97ad6ea182f9f31fe7fd2">osgParticle::ParticleProcessor</a>.</p>

<p>References <a class="el" href="a00497.html#ac028517c7189eeb140448e4f97104124">osg::NodeVisitor::apply()</a>, <a class="el" href="a00497.html#ae63ee0351b2e919cee8f5e23104876a6">osg::NodeVisitor::popFromNodePath()</a>, <a class="el" href="a00497.html#a791c3210215e398a516ebb7cab4961b7">osg::NodeVisitor::pushOntoNodePath()</a>, and <a class="el" href="a00497.html#a598080f7dc764386844a68bfa4e8e12b">osg::NodeVisitor::validNodeMask()</a>.</p>

</div>
</div>
<a class="anchor" id="a6166722c93756d51935491db36736ba0"></a><!-- doxytag: member="osgParticle::Program::className" ref="a6166722c93756d51935491db36736ba0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* osgParticle::Program::className </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>return the name of the node's class type. </p>

<p>Reimplemented from <a class="el" href="a00541.html#aba240adc2b4991994beea019b123e01b">osgParticle::ParticleProcessor</a>.</p>

</div>
</div>
<a class="anchor" id="aee710d4cfdeb491cb275360a3c758a3c"></a><!-- doxytag: member="osgParticle::Program::execute" ref="aee710d4cfdeb491cb275360a3c758a3c" args="(double dt)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osgParticle::Program::execute </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>dt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Execute the program on the particle system. Must be overriden in descendant classes. </p>

<p>Implemented in <a class="el" href="a00294.html#a193ad91226add79ddee0c9334e83fd4c">osgParticle::FluidProgram</a>, and <a class="el" href="a00477.html#a44235a262598a8ed9bdaae4c154951bf">osgParticle::ModularProgram</a>.</p>

<p>Referenced by <a class="el" href="a00581.html#a6c546038ae6ac9ad7fb9486957cd9eaa">process()</a>.</p>

</div>
</div>
<a class="anchor" id="a11be04b8c80717b0c0442c054cac5053"></a><!-- doxytag: member="osgParticle::Program::isSameKindAs" ref="a11be04b8c80717b0c0442c054cac5053" args="(const osg::Object *obj) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool osgParticle::Program::isSameKindAs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00500.html">osg::Object</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>return true if this and obj are of the same kind of object. </p>

<p>Reimplemented from <a class="el" href="a00541.html#aaf21b61fcb8422c2c304fcf33a0d1241">osgParticle::ParticleProcessor</a>.</p>

</div>
</div>
<a class="anchor" id="acf85e8a677603d417bc23c95585758de"></a><!-- doxytag: member="osgParticle::Program::libraryName" ref="acf85e8a677603d417bc23c95585758de" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* osgParticle::Program::libraryName </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>return the name of the node's library. </p>

<p>Reimplemented from <a class="el" href="a00541.html#ab4276f3804b7fc63475bca11f7004dd2">osgParticle::ParticleProcessor</a>.</p>

</div>
</div>
<a class="anchor" id="a86aa83749c30021687626c53bb118517"></a><!-- doxytag: member="osgParticle::Program::operator=" ref="a86aa83749c30021687626c53bb118517" args="(const Program &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00581.html">Program</a>&amp; osgParticle::Program::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00581.html">Program</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6c546038ae6ac9ad7fb9486957cd9eaa"></a><!-- doxytag: member="osgParticle::Program::process" ref="a6c546038ae6ac9ad7fb9486957cd9eaa" args="(double dt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osgParticle::Program::process </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>dt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implementation of <code><a class="el" href="a00541.html#a84e3e419d92ad7c61f814e677617f89a">ParticleProcessor::process()</a></code>. Do not call this method by yourself. </p>

<p>Implements <a class="el" href="a00541.html#a84e3e419d92ad7c61f814e677617f89a">osgParticle::ParticleProcessor</a>.</p>

<p>References <a class="el" href="a00581.html#aee710d4cfdeb491cb275360a3c758a3c">execute()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>osgParticle/<a class="el" href="a01233.html">Program</a></li>
</ul>
</div>
<hr>
<table border="0"><tr><td>
  <img src="osg32-32.png" alt="osg logo" />
</td><td>
  <address><small>Generated at Thu Aug 19 2010 16:22:45 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a>
by <a href="http://www.doxygen.org">doxygen</a> 1.7.1.</small></address>
<!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph -->
</td></tr></table>
</body>
</html>