diff options
author | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
commit | 0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch) | |
tree | 2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a03183.html | |
download | nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip |
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a03183.html')
-rw-r--r-- | docs/doxygen/nel/a03183.html | 7290 |
1 files changed, 7290 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03183.html b/docs/doxygen/nel/a03183.html new file mode 100644 index 00000000..b8d232ef --- /dev/null +++ b/docs/doxygen/nel/a03183.html @@ -0,0 +1,7290 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>NeL: NL3D::CPSEmitterOmni class Reference</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.3.6 --> +<div class="qindex"> <form class="search" action="search.php" method="get"> +<a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NL3D::CPSEmitterOmni Class Reference</h1><code>#include <<a class="el" href="a06230.html">ps_emitter.h</a>></code> +<p> +<p>Inheritance diagram for NL3D::CPSEmitterOmni: +<p><center><img src="a03183.png" usemap="#NL3D::CPSEmitterOmni_map" border="0" alt=""></center> +<map name="NL3D::CPSEmitterOmni_map"> +<area href="a03179.html" alt="NL3D::CPSEmitter" shape="rect" coords="0,168,172,192"> +<area href="a03182.html" alt="NL3D::CPSModulatedEmitter" shape="rect" coords="182,168,354,192"> +<area href="a02691.html" alt="NL3D::CPSLocatedBindable" shape="rect" coords="0,112,172,136"> +<area href="a02867.html" alt="NLMISC::IStreamable" shape="rect" coords="0,56,172,80"> +<area href="a02540.html" alt="NLMISC::IClassable" shape="rect" coords="0,0,172,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Emit randomly in all direction. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00507">507</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Public Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">TEmissionType</a> { <br> + <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw5">regular</a> = 0, +<a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw4">onDeath</a> = 1, +<a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw3">once</a> = 2, +<a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw2">onBounce</a> = 3, +<br> + <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw0">externEmit</a> = 4, +<a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw1">numEmissionType</a> +<br> + }</td></tr> + +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea1">basisChanged</a> (<a class="el" href="a05363.html#a557">TPSMatrixMode</a> systemBasis)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera1">checkLoop</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea2">completeBBox</a> (<a class="el" href="a02156.html">NLMISC::CAABBox</a> &box) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea3">computeI</a> (void) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea4">computeJ</a> (void) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea5">computeK</a> (void) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a03183.html#NL3D_1_1CPSEmitterOmnia6">CPSEmitterOmni</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea8">doesProduceBBox</a> (void) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &srcPos, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a566">index</a>, <a class="el" href="a03128.html">NLMISC::CVector</a> &pos, <a class="el" href="a03128.html">NLMISC::CVector</a> &speed)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSEmitterOmnia8"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera9">enableConsistenEmission</a> (bool enable)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea9">enumTexs</a> (std::vector< <a class="el" href="a03408.html">NLMISC::CSmartPtr</a>< <a class="el" href="a03487.html">ITexture</a> > > &dest, <a class="el" href="a02434.html">IDriver</a> &drv)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera11">getBypassAutoLOD</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02540.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6">getClassName</a> ()=0</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02434.html">IDriver</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea14">getDriver</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">shortcut to get an instance of the driver <a href="#NL3D_1_1CPSZoneSpherea14"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">TEmissionType</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera14">getEmissionType</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the frequency type. <a href="#NL3D_1_1CPSSphericalEmittera14"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera15">getEmitDelay</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the delay in seconds before the first emission (regular emitter only). <a href="#NL3D_1_1CPSSphericalEmittera15"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03214.html">CPSLocated</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera16">getEmittedType</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get const ptr on emitted type. <a href="#NL3D_1_1CPSSphericalEmittera16"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03214.html">CPSLocated</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera17">getEmittedType</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get emitted type. <a href="#NL3D_1_1CPSSphericalEmittera17"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmittera18">getEmitteeSpeed</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the modulation speed (valid only if no scheme is used) <a href="#NL3D_1_1CPSSphericalEmittera18"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03136.html">CPSAttribMaker</a>< float > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmittera19">getEmitteeSpeedScheme</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the speed modulation shceme, or NULL if no one is set (const version) <a href="#NL3D_1_1CPSSphericalEmittera19"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03136.html">CPSAttribMaker</a>< float > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmittera20">getEmitteeSpeedScheme</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the speed modulation shceme, or NULL if no one is set <a href="#NL3D_1_1CPSSphericalEmittera20"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea15">getExternID</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the extern ID of this located bindable <a href="#NL3D_1_1CPSZoneSpherea15"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02541.html">CFontGenerator</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea16">getFontGenerator</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Shortcut to get the font generator if one was set (const version). <a href="#NL3D_1_1CPSZoneSpherea16"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02541.html">CFontGenerator</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea17">getFontGenerator</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Shortcut to get the font generator if one was set. <a href="#NL3D_1_1CPSZoneSpherea17"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02542.html">CFontManager</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea18">getFontManager</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Shortcut to get the font manager if one was set (const version). <a href="#NL3D_1_1CPSZoneSpherea18"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02542.html">CFontManager</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea19">getFontManager</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">*************************************************************************************** <a href="#NL3D_1_1CPSZoneSpherea19"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera26">getGenNb</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the GenNb for emission, valid only if a GenNb scheme is used. <a href="#NL3D_1_1CPSSphericalEmittera26"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03136.html">CPSAttribMaker</a>< <a class="el" href="a04558.html#a11">uint32</a> > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera27">getGenNbScheme</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the GenNb scheme, or null, if there'isnt (const version). <a href="#NL3D_1_1CPSSphericalEmittera27"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03136.html">CPSAttribMaker</a>< <a class="el" href="a04558.html#a11">uint32</a> > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera28">getGenNbScheme</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the GenNb scheme, or null, if there'isnt. <a href="#NL3D_1_1CPSSphericalEmittera28"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea20">getInvertedSysMat</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">shortcut to get the inverted matrix of the system <a href="#NL3D_1_1CPSZoneSpherea20"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea21">getInvertedViewMat</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">shortcut to get the inverted view matrix <a href="#NL3D_1_1CPSZoneSpherea21"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea22">getLocalToWorldMatrix</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Shortcut to get the local to world matrix. <a href="#NL3D_1_1CPSZoneSpherea22"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a558">TPSLod</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea23">getLOD</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the valid lods for that object <a href="#NL3D_1_1CPSZoneSpherea23"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera34">getMaxEmissionCount</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the max. number of particle emission (0 means no limit and is the default). Applies with regular emitter only. <a href="#NL3D_1_1CPSSphericalEmittera34"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea25">getName</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the located bindable name (edition purpose) <a href="#NL3D_1_1CPSZoneSpherea25"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03214.html">CPSLocated</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea28">getOwner</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the located that owns this bindable (const version) <a href="#NL3D_1_1CPSZoneSpherea28"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03214.html">CPSLocated</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea29">getOwner</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the located that owns this bindable <a href="#NL3D_1_1CPSZoneSpherea29"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera39">getPeriod</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the period for emission, valid only if a period scheme is used. <a href="#NL3D_1_1CPSSphericalEmittera39"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03136.html">CPSAttribMaker</a>< float > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera40">getPeriodScheme</a> (void) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03136.html">CPSAttribMaker</a>< float > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera41">getPeriodScheme</a> (void)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera42">getPriority</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return priority for emitters. <a href="#NL3D_1_1CPSSphericalEmittera42"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea32">getSysMat</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">*************************************************************************************** <a href="#NL3D_1_1CPSZoneSpherea32"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera45">getType</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return this bindable type. <a href="#NL3D_1_1CPSSphericalEmittera45"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera46">getUserMatrixUsageCount</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera46"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea37">getViewMat</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">shortcut to get the view matrix <a href="#NL3D_1_1CPSZoneSpherea37"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea38">hasEmitters</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">tells wether there are alive emitters <a href="#NL3D_1_1CPSZoneSpherea38"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera49">hasEmitters</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return true if this located bindable derived class holds alive emitters. <a href="#NL3D_1_1CPSSphericalEmittera49"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea39">hasParticles</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">tells wether there are alive entities / particles <a href="#NL3D_1_1CPSZoneSpherea39"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea40">isActive</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera52">isConsistentEmissionEnabled</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea41">motionTypeChanged</a> (bool parametric)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">called when a located has switch between incrmental / parametric motion. The default does nothing <a href="#NL3D_1_1CPSZoneSpherea41"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a03183.html#NL3D_1_1CPSEmitterOmnia51">NLMISC_DECLARE_CLASS</a> (<a class="el" href="a03183.html">CPSEmitterOmni</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera55">notifyTargetRemoved</a> (<a class="el" href="a03214.html">CPSLocated</a> *ptr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera55"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera57">releaseAllRef</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera58">releaseRefTo</a> (const <a class="el" href="a03054.html">CParticleSystemProcess</a> *other)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera58"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03183.html#NL3D_1_1CPSEmitterOmnia55">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f) throw (NLMISC::EStream)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSEmitterOmnia55"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmittera60">serialEmitteeSpeedScheme</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f) throw (NLMISC::EStream)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">serialization <a href="#NL3D_1_1CPSSphericalEmittera60"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea49">setActive</a> (bool active)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Activate / Deactivate this object. When not active, the owning system won't try to call the 'step' method. <a href="#NL3D_1_1CPSZoneSpherea49"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera62">setBypassAutoLOD</a> (bool bypass)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera63">setEmissionType</a> (<a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">TEmissionType</a> freqType)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera63"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera64">setEmitDelay</a> (float delay)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera64"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera65">setEmittedType</a> (<a class="el" href="a03214.html">CPSLocated</a> *et)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera65"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmittera66">setEmitteeSpeed</a> (float speed)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">set a constant speed modulation for emittee <a href="#NL3D_1_1CPSSphericalEmittera66"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmittera67">setEmitteeSpeedScheme</a> (<a class="el" href="a03136.html">CPSAttribMaker</a>< float > *scheme)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea52">setExternID</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">*************************************************************************************** <a href="#NL3D_1_1CPSZoneSpherea52"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera69">setGenNb</a> (<a class="el" href="a04558.html#a11">uint32</a> GenNb)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera69"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera70">setGenNbScheme</a> (<a class="el" href="a03136.html">CPSAttribMaker</a>< <a class="el" href="a04558.html#a11">uint32</a> > *scheme)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera70"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea53">setLOD</a> (<a class="el" href="a05363.html#a558">TPSLod</a> lod)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera73">setMaxEmissionCount</a> (<a class="el" href="a04558.html#a7">uint8</a> <a class="el" href="a04223.html#a577">count</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera73"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea55">setName</a> (const std::string &name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">set the located bindable name (edition purpose) <a href="#NL3D_1_1CPSZoneSpherea55"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera76">setOwner</a> (<a class="el" href="a03214.html">CPSLocated</a> *psl)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera76"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera77">setPeriod</a> (float period)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera77"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera78">setPeriodScheme</a> (<a class="el" href="a03136.html">CPSAttribMaker</a>< float > *scheme)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera78"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea59">setupDriverModelMatrix</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">shortcut to setup the model matrix (system basis or world basis) <a href="#NL3D_1_1CPSZoneSpherea59"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea60">setZBias</a> (float <a class="el" href="a04223.html#a658">value</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSRadialEmittera80">showTool</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSRadialEmittera80"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera84">singleEmit</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a566">index</a>, <a class="el" href="a04558.html#a15">uint</a> quantity)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera84"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera85">step</a> (<a class="el" href="a05363.html#a556">TPSProcessPass</a> pass, <a class="el" href="a05363.html#a366">TAnimationTime</a> ellapsedTime, <a class="el" href="a05363.html#a366">TAnimationTime</a> realEllapsedTime)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera85"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea65">systemDateChanged</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera89">testEmitForever</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmittera89"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmittera90">useEmitteeSpeedScheme</a> (void) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">check wether a speed modulation scheme is being used <a href="#NL3D_1_1CPSSphericalEmittera90"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera91">useGenNbScheme</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicate whether a GenNb scheme is used or not. <a href="#NL3D_1_1CPSSphericalEmittera91"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittera92">usePeriodScheme</a> (void)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicate whether a period scheme is used or not. <a href="#NL3D_1_1CPSSphericalEmittera92"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittere0">setBypassEmitOnDeath</a> (bool bypass)</td></tr> + +<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb0">bounceOccured</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a566">index</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03183.html#NL3D_1_1CPSEmitterOmnib1">deleteElement</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a566">index</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSEmitterOmnib1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmitterb2">deleteEmitteeSpeedElement</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a566">index</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSphereb3">displayIcon2d</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> tab[], <a class="el" href="a04558.html#a15">uint</a> nbSegs, float scale)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">*************************************************************************************** <a href="#NL3D_1_1CPSZoneSphereb3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03214.html">CPSLocated</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03183.html#NL3D_1_1CPSEmitterOmnib4">getModulatedEmitterOwner</a> (void)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb5">isUserMatrixUsed</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03183.html#NL3D_1_1CPSEmitterOmnib6">newElement</a> (<a class="el" href="a03214.html">CPSLocated</a> *emitter, <a class="el" href="a04558.html#a11">uint32</a> emitterIndex)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSEmitterOmnib6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmitterb7">newEmitteeSpeedElement</a> (<a class="el" href="a03214.html">CPSLocated</a> *emitter, <a class="el" href="a04558.html#a11">uint32</a> emitterIndex)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a566">index</a>, <a class="el" href="a04558.html#a14">sint</a> nbToGenerate)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb8"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &emitterPos, <a class="el" href="a04558.html#a11">uint32</a> emitterIndex, <a class="el" href="a04558.html#a14">sint</a> nbToGenerate, <a class="el" href="a05363.html#a366">TAnimationTime</a> deltaT, <a class="el" href="a05363.html#a366">TAnimationTime</a> ellapsedTime, float realEllapsedTimeRatio)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb9"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb10">processRegularEmission</a> (<a class="el" href="a05363.html#a366">TAnimationTime</a> ellapsedTime, float emitLOD)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb10"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb11">processRegularEmissionConsistent</a> (<a class="el" href="a05363.html#a366">TAnimationTime</a> ellapsedTime, float realEllapsedTimeRatio, float emitLOD, float inverseEmitLOD)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb11"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb12">processRegularEmissionConsistentWithNoLOD</a> (<a class="el" href="a05363.html#a366">TAnimationTime</a> ellapsedTime, float realEllapsedTimeRatio)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb12"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb13">processRegularEmissionWithNoLOD</a> (<a class="el" href="a05363.html#a366">TAnimationTime</a> ellapsedTime)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb13"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03183.html#NL3D_1_1CPSEmitterOmnib14">resize</a> (<a class="el" href="a04558.html#a11">uint32</a> capacity)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSEmitterOmnib14"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmitterb15">resizeEmitteeSpeed</a> (<a class="el" href="a04558.html#a11">uint32</a> capacity)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb16">updateMaxCountVect</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb16"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterb17">updatePSRefCountForUserMatrixUsage</a> (bool matrixIsNeededNow, bool matrixWasNeededBefore)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">========================================================================== <a href="#NL3D_1_1CPSSphericalEmitterb17"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep0">_Active</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp1">_BypassAutoLOD</a>: 1</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp2">_ConsistentEmission</a>: 1</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">TEmissionType</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp3">_EmissionType</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03214.html">CPSLocated</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">A pointer on the type to be emitted. <a href="#NL3D_1_1CPSSphericalEmitterp5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmitterp6">_EmitteeSpeed</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03136.html">CPSAttribMaker</a>< float > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep3">_ExternID</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03136.html">CPSAttribMaker</a>< <a class="el" href="a04558.html#a11">uint32</a> > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a558">TPSLod</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep4">_LOD</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">tells when this object must be dealt with <a href="#NL3D_1_1CPSZoneSpherep4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep5">_Name</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03135.html">TPSAttribUInt8</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03214.html">CPSLocated</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03136.html">CPSAttribMaker</a>< float > * </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03135.html">TPSAttribFloat</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp20">_SpeedBasisEmission</a>: 1</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>float </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp21">_SpeedInheritanceFactor</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a557">TPSMatrixMode</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp22">_UserDirectionMatrixMode</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp23">_UserMatrixModeForEmissionDirection</a>: 1</td></tr> + +<tr><td colspan=2><br><h2>Static Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittert0">_BypassEmitOnDeath</a> = false</td></tr> + +<tr><td colspan=2><br><h2>Friends</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>class </td><td class="memItemRight" valign=bottom><a class="el" href="a02691.html#NL3D_1_1CPSZoneSpheren0">CPSLocated</a></td></tr> + +</table> +<hr><h2>Member Enumeration Documentation</h2> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterw6" doxytag="NL3D::CPSEmitterOmni::TEmissionType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> enum <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">NL3D::CPSEmitter::TEmissionType</a><code> [inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The type of emission. regular : means use Period, and generation number (the number of particle to generate when an emission occurs) onDeath : emit when the emitter is destroyed once : emit when the emitter is created onBounce : emit when the emitter bounce externEmit : emitted explicitly by the system user. A 4 letter id must be used to identify this kind of emitters the default ID is NONE<dl compact><dt><b>Enumeration values: </b></dt><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw5" doxytag="regular" ></a>regular</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw4" doxytag="onDeath" ></a>onDeath</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw3" doxytag="once" ></a>once</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw2" doxytag="onBounce" ></a>onBounce</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw0" doxytag="externEmit" ></a>externEmit</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw1" doxytag="numEmissionType" ></a>numEmissionType</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="a06230.html#l00109">109</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00118">NL3D::CPSEmitter::getEmissionType()</a>, and <a class="el" href="a06229.html#l00326">NL3D::CPSEmitter::setEmissionType()</a>. +<p> +<div class="fragment"><pre>00109 { <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw5">regular</a> = 0, <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw4">onDeath</a> = 1, <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw3">once</a> = 2, <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw2">onBounce</a> = 3, <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw0">externEmit</a> = 4, <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6NL3D_1_1CPSSphericalEmitterw1">numEmissionType</a> }; +</pre></div> </td> + </tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NL3D_1_1CPSEmitterOmnia6" doxytag="NL3D::CPSEmitterOmni::CPSEmitterOmni" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> NL3D::CPSEmitterOmni::CPSEmitterOmni </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00512">512</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +<div class="fragment"><pre>00513 { +00514 <span class="keywordflow">if</span> (CParticleSystem::getSerializeIdentifierFlag()) <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep5">_Name</a> = std::string(<span class="stringliteral">"EmitterOmni"</span>); +00515 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea1" doxytag="NL3D::CPSEmitterOmni::basisChanged" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NL3D::CPSLocatedBindable::basisChanged </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a557">TPSMatrixMode</a> </td> + <td class="mdname1" valign="top" nowrap> <em>systemBasis</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Called when the basis of the owner changed. the default behaviour does nothing <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>newBasis</em> </td><td>: True if in the system basis, false for the world basis.</td></tr> + </table> +</dl> + +<p> +Reimplemented in <a class="el" href="a02690.html#NL3D_1_1CPSTurbulb0">NL3D::CPSForce</a>. +<p> +Definition at line <a class="el" href="a06247.html#l00968">968</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00968 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb0" doxytag="NL3D::CPSEmitterOmni::bounceOccured" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::bounceOccured </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>index</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Reimplemented from <a class="el" href="a02691.html#NL3D_1_1CPSZoneSphereb0">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06229.html#l01908">1908</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00347">NL3D::CPSEmitter::_EmissionType</a>, <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_1">NL3D::CPSAttribMaker< uint32 >::get()</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>01909 { +01910 <span class="comment">// TODO : avoid duplication with deleteElement</span> +01911 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a> && <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp3">_EmissionType</a> == CPSEmitter::onBounce) +01912 { +01913 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, index) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01914 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(index, nbToGenerate); +01915 } +01916 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera1" doxytag="NL3D::CPSEmitterOmni::checkLoop" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::checkLoop </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +check if there's a loop with that e=mitter eg A emit B emit A NB : the emitter should be inserted in a system, otherwise -> assert +<p> +Definition at line <a class="el" href="a06229.html#l02117">2117</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a06247.html#l00199">NL3D::CPSLocated::getBoundObject()</a>, <a class="el" href="a06247.html#l00194">NL3D::CPSLocated::getNbBoundObjects()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01494">NL3D::CParticleSystem::hasLoop()</a>. +<p> +<div class="fragment"><pre>02118 { +02119 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +02120 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()); +02121 <span class="keywordflow">if</span> (!<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>; +02122 std::set<const CPSLocated *> seenLocated; <span class="comment">// the located we've already seen</span> +02123 std::vector<const CPSLocated *> leftLoc(1); <span class="comment">// the located that are left to see</span> +02124 leftLoc[0] = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>; +02125 <span class="keywordflow">do</span> +02126 { +02127 <span class="keyword">const</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpheren0">CPSLocated</a> *curr = leftLoc.back(); +02128 <span class="keywordflow">if</span> (curr == this-><a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>; +02129 leftLoc.pop_back(); +02130 seenLocated.insert(curr); +02131 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a11">uint32</a> k = 0; k < curr->getNbBoundObjects(); ++k) +02132 { +02133 <span class="keyword">const</span> <a class="code" href="a03179.html#NL3D_1_1CPSEmitterz731_0">CPSEmitter</a> *emitter = dynamic_cast<const CPSEmitter *>(curr->getBoundObject(k)); +02134 <span class="keywordflow">if</span> (emitter && emitter->_EmittedType) +02135 { +02136 <span class="keywordflow">if</span> (seenLocated.find(emitter->_EmittedType) == seenLocated.end()) <span class="comment">// not already seen this one ?</span> +02137 { +02138 leftLoc.push_back(emitter->_EmittedType); +02139 } +02140 } +02141 } +02142 } +02143 <span class="keywordflow">while</span> (!leftLoc.empty()); +02144 <span class="keywordflow">return</span> <span class="keyword">false</span>; +02145 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea2" doxytag="NL3D::CPSEmitterOmni::completeBBox" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::CPSLocatedBindable::completeBBox </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02156.html">NLMISC::CAABBox</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>box</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a03194.html#NL3D_1_1CPSFanLighta1">NL3D::CPSFanLight</a>, <a class="el" href="a03187.html#NL3D_1_1CPSQuadb2">NL3D::CPSQuad</a>, and <a class="el" href="a03233.html#NL3D_1_1CPSShockWavea1">NL3D::CPSShockWave</a>. +<p> +Definition at line <a class="el" href="a06247.html#l00884">884</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00884 { <span class="keywordflow">return</span> <span class="keyword">false</span> ;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea3" doxytag="NL3D::CPSEmitterOmni::computeI" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">NLMISC::CVector</a> NL3D::CPSLocatedBindable::computeI </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Compute a vector that will map to (1 0 0) after view and model transform. This allow to have object that always faces the user, whatever basis they are in +<p> +Definition at line <a class="el" href="a06247.html#l00931">931</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06246.html#l00612">NL3D::CPSLocated::computeI()</a>. +<p> +Referenced by <a class="el" href="a06246.html#l02038">NL3D::CPSLocatedBindable::displayIcon2d()</a>, <a class="el" href="a06235.html#l00072">NL3D::CPSFanLightHelper::drawFanLight()</a>, <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>, <a class="el" href="a06233.html#l00089">NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion()</a>, <a class="el" href="a06239.html#l00413">NL3D::CPSGravity::show()</a>, and <a class="el" href="a06229.html#l00447">NL3D::CPSEmitter::showTool()</a>. +<p> +<div class="fragment"><pre>00931 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->computeI(); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea4" doxytag="NL3D::CPSEmitterOmni::computeJ" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">NLMISC::CVector</a> NL3D::CPSLocatedBindable::computeJ </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Compute a vector that will map to (0 1 0) after view and model transform. This allow to have object that always faces the user, whatever basis they are in +<p> +Definition at line <a class="el" href="a06247.html#l00936">936</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06246.html#l00643">NL3D::CPSLocated::computeJ()</a>. +<p> +Referenced by <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>. +<p> +<div class="fragment"><pre>00936 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->computeJ(); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea5" doxytag="NL3D::CPSEmitterOmni::computeK" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">NLMISC::CVector</a> NL3D::CPSLocatedBindable::computeK </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Compute a vector that will map to (0 0 1) after view and model transform. This allow to have object that always faces the user, whatever basis they are in +<p> +Definition at line <a class="el" href="a06247.html#l00940">940</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06246.html#l00674">NL3D::CPSLocated::computeK()</a>. +<p> +Referenced by <a class="el" href="a06246.html#l02038">NL3D::CPSLocatedBindable::displayIcon2d()</a>, <a class="el" href="a06235.html#l00072">NL3D::CPSFanLightHelper::drawFanLight()</a>, <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>, <a class="el" href="a06233.html#l00089">NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion()</a>, and <a class="el" href="a06229.html#l00447">NL3D::CPSEmitter::showTool()</a>. +<p> +<div class="fragment"><pre>00940 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->computeK(); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSEmitterOmnib1" doxytag="NL3D::CPSEmitterOmni::deleteElement" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitterOmni::deleteElement </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>index</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Reimplemented from <a class="el" href="a03179.html#NL3D_1_1CPSEmitterb1">NL3D::CPSEmitter</a>. +<p> +Definition at line <a class="el" href="a06229.html#l02237">2237</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00429">NL3D::CPSModulatedEmitter::deleteEmitteeSpeedElement()</a>, <a class="el" href="a05646.html#l00225">index</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>02238 { +02239 CPSEmitter::deleteElement(index); +02240 <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterb2">deleteEmitteeSpeedElement</a>(index); +02241 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb2" doxytag="NL3D::CPSEmitterOmni::deleteEmitteeSpeedElement" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSModulatedEmitter::deleteEmitteeSpeedElement </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>index</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00429">429</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00441">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a>, <a class="el" href="a06214.html#l00285">NL3D::CPSAttribMaker< float >::deleteElement()</a>, <a class="el" href="a06214.html#l00282">NL3D::CPSAttribMaker< float >::hasMemory()</a>, <a class="el" href="a05646.html#l00225">index</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06229.html#l02547">NL3D::CPSSphericalEmitter::deleteElement()</a>, <a class="el" href="a06229.html#l02370">NL3D::CPSEmitterRectangle::deleteElement()</a>, <a class="el" href="a06229.html#l02270">NL3D::CPSEmitterDirectionnal::deleteElement()</a>, and <a class="el" href="a06229.html#l02237">deleteElement()</a>. +<p> +<div class="fragment"><pre>00430 { +00431 <span class="keywordflow">if</span> (<a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a> && <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>->hasMemory()) <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>->deleteElement(index); +00432 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSphereb3" doxytag="NL3D::CPSEmitterOmni::displayIcon2d" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSLocatedBindable::displayIcon2d </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> </td> + <td class="mdname" nowrap> <em>tab</em>[], </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>nbSegs</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>scale</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +*************************************************************************************** +<p> +show an drawing to represent the object, and in red if it is selected <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>tab</em> </td><td>: a table of 2 * nbSeg vector. only the x and y coordinates are used </td></tr> + <tr><td valign=top><em>nbSeg</em> </td><td>: the number of segment </td></tr> + <tr><td valign=top><em>scale</em> </td><td>: the scale to use for drawing</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a06246.html#l02038">2038</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06247.html#l00931">NL3D::CPSLocatedBindable::computeI()</a>, <a class="el" href="a06247.html#l00940">NL3D::CPSLocatedBindable::computeK()</a>, <a class="el" href="a06143.html#l00411">NL3D::CParticleSystem::getCurrentEditedElement()</a>, <a class="el" href="a06247.html#l00890">NL3D::CPSLocatedBindable::getDriver()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00334">NL3D::CPSLocated::getPos()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05641.html#l00064">NL3D::CMaterial::setBlend()</a>, <a class="el" href="a05641.html#l00091">NL3D::CMaterial::setBlendFunc()</a>, <a class="el" href="a05641.html#l00118">NL3D::CMaterial::setColor()</a>, <a class="el" href="a05641.html#l00127">NL3D::CMaterial::setLighting()</a>, <a class="el" href="a06246.html#l02142">NL3D::CPSLocatedBindable::setupDriverModelMatrix()</a>, <a class="el" href="a05641.html#l00099">NL3D::CMaterial::setZFunc()</a>, <a class="el" href="a05641.html#l00105">NL3D::CMaterial::setZWrite()</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05910.html#l00048">NLMISC::CLine::V0</a>, <a class="el" href="a05910.html#l00048">NLMISC::CLine::V1</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>. +<p> +Referenced by <a class="el" href="a06239.html#l00795">NL3D::CPSSpring::show()</a>, <a class="el" href="a06239.html#l00724">NL3D::CPSCentralGravity::show()</a>, and <a class="el" href="a06257.html#l00055">NL3D::CPSParticle::showTool()</a>. +<p> +<div class="fragment"><pre>02039 { +02040 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a587">size</a> = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize(); +02041 <span class="keywordflow">if</span> (!<a class="code" href="a04223.html#a587">size</a>) <span class="keywordflow">return</span>; +02042 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherea59">setupDriverModelMatrix</a>(); +02043 +02044 <span class="keyword">const</span> CVector I = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherea3">computeI</a>(); +02045 <span class="keyword">const</span> CVector K = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherea5">computeK</a>(); +02046 +02047 <span class="keyword">static</span> std::vector<NLMISC::CLine> lines; +02048 +02049 lines.clear(); +02050 +02051 <span class="comment">// ugly slow code, but not for runtime</span> +02052 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k = 0; k < <a class="code" href="a04223.html#a587">size</a>; ++k) +02053 { +02054 <span class="comment">// center of the current particle</span> +02055 <span class="keyword">const</span> CVector p = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getPos()[k]; +02056 +02057 +02058 +02059 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a05373.html#a2">l</a> = 0; <a class="code" href="a05373.html#a2">l</a> < nbSegs; ++<a class="code" href="a05373.html#a2">l</a>) +02060 { +02061 <a class="code" href="a02759.html">NLMISC::CLine</a> li; +02062 li.<a class="code" href="a02759.html#NLMISC_1_1CLineUVo2">V0</a> = p + scale * (tab[<a class="code" href="a05373.html#a2">l</a> << 1].<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a> * I + tab[<a class="code" href="a05373.html#a2">l</a> << 1].y * K); +02063 li.<a class="code" href="a02759.html#NLMISC_1_1CLineUVo3">V1</a> = p + scale * (tab[(<a class="code" href="a05373.html#a2">l</a> << 1) + 1].x * I + tab[(<a class="code" href="a05373.html#a2">l</a> << 1) + 1].y * K); +02064 lines.push_back(li); +02065 } +02066 +02067 CMaterial mat; +02068 +02069 mat.setBlendFunc(CMaterial::one, CMaterial::one); +02070 mat.setZWrite(<span class="keyword">false</span>); +02071 mat.setLighting(<span class="keyword">false</span>); +02072 mat.setBlend(<span class="keyword">true</span>); +02073 mat.setZFunc(CMaterial::less); +02074 +02075 +02076 +02077 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpheren0">CPSLocated</a> *loc; +02078 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a566">index</a>; +02079 <a class="code" href="a02691.html#NL3D_1_1CPSLocatedBindablez743_0">CPSLocatedBindable</a> *lb; +02080 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->getCurrentEditedElement(loc, index, lb); +02081 +02082 mat.setColor((lb == NULL || <span class="keyword">this</span> == lb) && loc == _Owner && index == k ? CRGBA::Red : <a class="code" href="a03337.html">CRGBA</a>(127, 127, 127)); +02083 +02084 +02085 CDRU::drawLinesUnlit(lines, mat, *<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherea14">getDriver</a>() ); +02086 } +02087 +02088 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea8" doxytag="NL3D::CPSEmitterOmni::doesProduceBBox" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::CPSLocatedBindable::doesProduceBBox </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02690.html#NL3D_1_1CPSTurbula7">NL3D::CPSForce</a>. +<p> +Definition at line <a class="el" href="a06247.html#l00888">888</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00888 { <span class="keywordflow">return</span> <span class="keyword">true</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSEmitterOmnia8" doxytag="NL3D::CPSEmitterOmni::emit" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitterOmni::emit </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>srcPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>index</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>pos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>speed</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Implements <a class="el" href="a03179.html#NL3D_1_1CPSEmitterb3">NL3D::CPSEmitter</a>. +<p> +Definition at line <a class="el" href="a06229.html#l02205">2205</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_1">NL3D::CPSAttribMaker< float >::get()</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l00237">v</a>. +<p> +<div class="fragment"><pre>02206 { +02207 <span class="comment">// TODO : verifier que ca marche si une particule s'emet elle-mem</span> +02208 <a class="code" href="a04199.html#a6">nlassert</a>(_EmittedType); +02209 +02210 CVector <a class="code" href="a04223.html#a576">v</a>( ((rand() % 1000) - 500) / 500.0f +02211 , ((rand() % 1000) - 500) / 500.0f +02212 , ((rand() % 1000) - 500) / 500.0f); +02213 <a class="code" href="a04223.html#a576">v</a>.normalize(); +02214 <a class="code" href="a04223.html#a576">v</a> *= <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a> ? <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>->get(_Owner, index) : <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp6">_EmitteeSpeed</a>; +02215 +02216 pos = srcPos; +02217 speed = <a class="code" href="a04223.html#a576">v</a>; +02218 +02219 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera9" doxytag="NL3D::CPSEmitterOmni::enableConsistenEmission" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::enableConsistenEmission </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>enable</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Enable consistent emission. The default is false. This try to keep the number of emitted particle constant, by allowing more than one emission cycle per iteration. This is useful to deal with poor frmerate. This has several drawbacks though :<ul> +<li>collisions are not properly supported in this case (may be resolved later).</li><li>The motion is in straight lines.</li><li>It assumes that emitter has no motion (for now). In fact, this should be used when there can't be collisions with the emitted particles, and with main emitters only. NB : this has no effect if the emission period is 0 (which mean emit at each frame)</li></ul> + +<p> +Definition at line <a class="el" href="a06230.html#l00236">236</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00355">NL3D::CPSEmitter::_ConsistentEmission</a>. +<p> +<div class="fragment"><pre>00236 { <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp2">_ConsistentEmission</a> = enable; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterz733_0" doxytag="NL3D::CPSEmitterOmni::enableSpeedBasisEmission" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::enableSpeedBasisEmission </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>enabled</em> = true </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +=============================================================================== +<p> +Align the direction of emission on the emitter speed. NB This also implies that the coord. system in which the speed vector is expressed if the same than the one of the emitter so the calls to <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_1">enableUserMatrixModeForEmissionDirection()</a> & <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_7">setUserMatrixModeForEmissionDirection()</a> have no effects (but their value is retained) +<p> +Definition at line <a class="el" href="a06229.html#l02593">2593</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00354">NL3D::CPSEmitter::_SpeedBasisEmission</a>, <a class="el" href="a06229.html#l02634">NL3D::CPSEmitter::isUserMatrixUsed()</a>, and <a class="el" href="a06229.html#l02618">NL3D::CPSEmitter::updatePSRefCountForUserMatrixUsage()</a>. +<p> +<div class="fragment"><pre>02594 { +02595 <span class="keywordtype">bool</span> wasUserMatNeeded = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb5">isUserMatrixUsed</a>(); +02596 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp20">_SpeedBasisEmission</a> = enabled; +02597 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb17">updatePSRefCountForUserMatrixUsage</a>(<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb5">isUserMatrixUsed</a>(), wasUserMatNeeded); +02598 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterz733_1" doxytag="NL3D::CPSEmitterOmni::enableUserMatrixModeForEmissionDirection" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::enableUserMatrixModeForEmissionDirection </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>enable</em> = true </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +=============================================================================== +<p> +By default, the direction of emission is supposed to be expressed in the same coordinate system than the one of the emitter. Enabling a user matrix mode for the direction of emission allows to change that behaviour. example of use : A fire <a class="el" href="a04223.html#a626">p.s</a> is linked to a torch, but the torch doesn't point to the top. So particles are emitted in the axis aligned to the torch If matrix mode for direction emission is set to PSIdentityMatrix, then the direction is interpreted to be in world, and is thus independant from the torch orientation : particles are always spawned in the +K direction.<p> +NB : if <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_4">isSpeedBasisEmissionEnabled()</a> == true then this flag is meaningless +<p> +Definition at line <a class="el" href="a06229.html#l02601">2601</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00357">NL3D::CPSEmitter::_UserMatrixModeForEmissionDirection</a>, <a class="el" href="a06229.html#l02634">NL3D::CPSEmitter::isUserMatrixUsed()</a>, and <a class="el" href="a06229.html#l02618">NL3D::CPSEmitter::updatePSRefCountForUserMatrixUsage()</a>. +<p> +<div class="fragment"><pre>02602 { +02603 <span class="keywordtype">bool</span> wasUserMatNeeded = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb5">isUserMatrixUsed</a>(); +02604 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp23">_UserMatrixModeForEmissionDirection</a> = enable; +02605 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb17">updatePSRefCountForUserMatrixUsage</a>(<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb5">isUserMatrixUsed</a>(), wasUserMatNeeded); +02606 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea9" doxytag="NL3D::CPSEmitterOmni::enumTexs" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NL3D::CPSLocatedBindable::enumTexs </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a03408.html">NLMISC::CSmartPtr</a>< <a class="el" href="a03487.html">ITexture</a> > > & </td> + <td class="mdname" nowrap> <em>dest</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> & </td> + <td class="mdname" nowrap> <em>drv</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a03194.html#NL3D_1_1CPSFanLighta9">NL3D::CPSFanLight</a>, <a class="el" href="a03187.html#NL3D_1_1CPSQuada13">NL3D::CPSQuad</a>, <a class="el" href="a03226.html#NL3D_1_1CPSRibbona10">NL3D::CPSRibbon</a>, <a class="el" href="a03230.html#NL3D_1_1CPSRibbonLookAta10">NL3D::CPSRibbonLookAt</a>, and <a class="el" href="a03233.html#NL3D_1_1CPSShockWavea11">NL3D::CPSShockWave</a>. +<p> +Definition at line <a class="el" href="a06247.html#l00977">977</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00977 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSTailDotz743_0" doxytag="NL3D::CPSEmitterOmni::finalize" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSLocatedBindable::finalize </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +*************************************************************************************** +<p> +this should be called before to delete any bindable inserted in a system, but this is done by the system, so you should never need calling it. This has been introduced because calls in dtor are not polymorphic to derived class (which are already destroyed anyway), and some infos are needed in some dtor. The default behaviour does nothing +<p> +Reimplemented in <a class="el" href="a02689.html#NL3D_1_1CPSZoneSpherea10">NL3D::CPSTargetLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06246.html#l01975">1975</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00974">NL3D::CPSLocatedBindable::getUserMatrixUsageCount()</a>, and <a class="el" href="a06142.html#l01907">NL3D::CParticleSystem::releaseRefForUserSysCoordInfo()</a>. +<p> +<div class="fragment"><pre>01976 { +01977 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()) +01978 { +01979 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->releaseRefForUserSysCoordInfo(<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera46">getUserMatrixUsageCount</a>()); +01980 } +01981 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera11" doxytag="NL3D::CPSEmitterOmni::getBypassAutoLOD" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::getBypassAutoLOD </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00252">252</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00356">NL3D::CPSEmitter::_BypassAutoLOD</a>. +<p> +<div class="fragment"><pre>00252 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp1">_BypassAutoLOD</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6" doxytag="NL3D::CPSEmitterOmni::getClassName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual std::string NLMISC::IClassable::getClassName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [pure virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implemented in <a class="el" href="a02995.html#NLAIAGENT_1_1CNumericIndexz1699_0">NLAIAGENT::CNumericIndex</a>, <a class="el" href="a02145.html#NLAIAGENT_1_1VectorTypez1764_0">NLAIC::IPointerGestion</a>, <a class="el" href="a02650.html#NLAIC_1_1CIdentTypez1766_0">NLAIC::CIdentType</a>, and <a class="el" href="a02241.html#CAutomataDescz1896_0">CAutomataDesc</a>. +<p> +Referenced by <a class="el" href="a05549.html#l00091">NLMISC::CClassRegistry::checkObject()</a>, and <a class="el" href="a06525.html#l00039">NL3D::GetTextureSize()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea14" doxytag="NL3D::CPSEmitterOmni::getDriver" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02434.html">IDriver</a>* NL3D::CPSLocatedBindable::getDriver </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +shortcut to get an instance of the driver +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00890">890</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06246.html#l00705">NL3D::CPSLocated::getDriver()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a06246.html#l02038">NL3D::CPSLocatedBindable::displayIcon2d()</a>, <a class="el" href="a06283.html#l00242">NL3D::CPSTailDot::displayRibbons()</a>, <a class="el" href="a06277.html#l00319">NL3D::CPSRibbonLookAt::displayRibbons()</a>, <a class="el" href="a06273.html#l00471">NL3D::CPSRibbon::displayRibbons()</a>, <a class="el" href="a06226.html#l00122">NL3D::CPSDot::draw()</a>, <a class="el" href="a06231.html#l00055">NL3D::CPSFaceHelper::drawFaces()</a>, <a class="el" href="a06235.html#l00072">NL3D::CPSFanLightHelper::drawFanLight()</a>, <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>, <a class="el" href="a06233.html#l00089">NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion()</a>, <a class="el" href="a06250.html#l00521">NL3D::CPSConstraintMeshHelper::drawMeshs()</a>, <a class="el" href="a06250.html#l00793">NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs()</a>, <a class="el" href="a06287.html#l01375">NL3D::CPSZoneRectangle::show()</a>, <a class="el" href="a06287.html#l01160">NL3D::CPSZoneCylinder::show()</a>, <a class="el" href="a06287.html#l00625">NL3D::CPSZoneDisc::show()</a>, <a class="el" href="a06287.html#l00448">NL3D::CPSZoneSphere::show()</a>, <a class="el" href="a06287.html#l00140">NL3D::CPSZonePlane::show()</a>, <a class="el" href="a06244.html#l00363">NL3D::CPSLight::show()</a>, <a class="el" href="a06239.html#l00900">NL3D::CPSCylindricVortex::show()</a>, <a class="el" href="a06239.html#l00413">NL3D::CPSGravity::show()</a>, <a class="el" href="a06239.html#l00295">NL3D::CPSDirectionnalForce::show()</a>, <a class="el" href="a06229.html#l02491">NL3D::CPSSphericalEmitter::showTool()</a>, <a class="el" href="a06229.html#l02391">NL3D::CPSEmitterRectangle::showTool()</a>, and <a class="el" href="a06229.html#l00447">NL3D::CPSEmitter::showTool()</a>. +<p> +<div class="fragment"><pre>00891 { +00892 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +00893 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getDriver()); +00894 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getDriver(); +00895 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera14" doxytag="NL3D::CPSEmitterOmni::getEmissionType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">TEmissionType</a> NL3D::CPSEmitter::getEmissionType </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the frequency type. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00118">118</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00347">NL3D::CPSEmitter::_EmissionType</a>, and <a class="el" href="a06230.html#l00109">NL3D::CPSEmitter::TEmissionType</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01556">NL3D::CParticleSystem::evalDuration()</a>, and <a class="el" href="a06229.html#l02148">NL3D::CPSEmitter::testEmitForever()</a>. +<p> +<div class="fragment"><pre>00118 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp3">_EmissionType</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera15" doxytag="NL3D::CPSEmitterOmni::getEmitDelay" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float NL3D::CPSEmitter::getEmitDelay </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the delay in seconds before the first emission (regular emitter only). +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00144">144</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00352">NL3D::CPSEmitter::_EmitDelay</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01556">NL3D::CParticleSystem::evalDuration()</a>. +<p> +<div class="fragment"><pre>00144 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera16" doxytag="NL3D::CPSEmitterOmni::getEmittedType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a03214.html">CPSLocated</a>* NL3D::CPSEmitter::getEmittedType </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get const ptr on emitted type. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00098">98</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>. +<p> +<div class="fragment"><pre>00098 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera17" doxytag="NL3D::CPSEmitterOmni::getEmittedType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03214.html">CPSLocated</a>* NL3D::CPSEmitter::getEmittedType </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get emitted type. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00096">96</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01556">NL3D::CParticleSystem::evalDuration()</a>. +<p> +<div class="fragment"><pre>00096 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera18" doxytag="NL3D::CPSEmitterOmni::getEmitteeSpeed" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float NL3D::CPSModulatedEmitter::getEmitteeSpeed </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the modulation speed (valid only if no scheme is used) +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00405">405</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00440">NL3D::CPSModulatedEmitter::_EmitteeSpeed</a>. +<p> +<div class="fragment"><pre>00405 { <span class="keywordflow">return</span> <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp6">_EmitteeSpeed</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera19" doxytag="NL3D::CPSEmitterOmni::getEmitteeSpeedScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a03136.html">CPSAttribMaker</a><float>* NL3D::CPSModulatedEmitter::getEmitteeSpeedScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the speed modulation shceme, or NULL if no one is set (const version) +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00411">411</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00441">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a>. +<p> +<div class="fragment"><pre>00411 { <span class="keywordflow">return</span> <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera20" doxytag="NL3D::CPSEmitterOmni::getEmitteeSpeedScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03136.html">CPSAttribMaker</a><float>* NL3D::CPSModulatedEmitter::getEmitteeSpeedScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the speed modulation shceme, or NULL if no one is set +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00408">408</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00441">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a>. +<p> +<div class="fragment"><pre>00408 { <span class="keywordflow">return</span> <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea15" doxytag="NL3D::CPSEmitterOmni::getExternID" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CPSLocatedBindable::getExternID </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the extern ID of this located bindable +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00964">964</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06247.html#l01027">NL3D::CPSLocatedBindable::_ExternID</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06246.html#l00751">NL3D::CPSLocated::bind()</a>, and <a class="el" href="a06142.html#l01096">NL3D::CParticleSystem::unregisterLocatedBindableExternID()</a>. +<p> +<div class="fragment"><pre>00964 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep3">_ExternID</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea16" doxytag="NL3D::CPSEmitterOmni::getFontGenerator" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a02541.html">CFontGenerator</a>* NL3D::CPSLocatedBindable::getFontGenerator </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Shortcut to get the font generator if one was set (const version). +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00904">904</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06150.html#l00071">NL3D::CParticleSystemProcess::getFontGenerator()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>00905 { +00906 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +00907 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getFontGenerator(); +00908 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea17" doxytag="NL3D::CPSEmitterOmni::getFontGenerator" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02541.html">CFontGenerator</a>* NL3D::CPSLocatedBindable::getFontGenerator </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Shortcut to get the font generator if one was set. +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00897">897</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06150.html#l00071">NL3D::CParticleSystemProcess::getFontGenerator()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a06287.html#l01375">NL3D::CPSZoneRectangle::show()</a>, <a class="el" href="a06287.html#l01160">NL3D::CPSZoneCylinder::show()</a>, <a class="el" href="a06287.html#l00625">NL3D::CPSZoneDisc::show()</a>, <a class="el" href="a06287.html#l00140">NL3D::CPSZonePlane::show()</a>, <a class="el" href="a06239.html#l00900">NL3D::CPSCylindricVortex::show()</a>, <a class="el" href="a06239.html#l00413">NL3D::CPSGravity::show()</a>, and <a class="el" href="a06229.html#l02391">NL3D::CPSEmitterRectangle::showTool()</a>. +<p> +<div class="fragment"><pre>00898 { +00899 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +00900 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getFontGenerator(); +00901 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea18" doxytag="NL3D::CPSEmitterOmni::getFontManager" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a02542.html">CFontManager</a> * NL3D::CPSLocatedBindable::getFontManager </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Shortcut to get the font manager if one was set (const version). +<p> + +<p> +Definition at line <a class="el" href="a06246.html#l02099">2099</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06150.html#l00085">NL3D::CParticleSystemProcess::getFontManager()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>02100 { +02101 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +02102 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getFontManager(); +02103 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea19" doxytag="NL3D::CPSEmitterOmni::getFontManager" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02542.html">CFontManager</a> * NL3D::CPSLocatedBindable::getFontManager </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +*************************************************************************************** +<p> + +<p> +Definition at line <a class="el" href="a06246.html#l02091">2091</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06150.html#l00085">NL3D::CParticleSystemProcess::getFontManager()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a06287.html#l01375">NL3D::CPSZoneRectangle::show()</a>, <a class="el" href="a06287.html#l01160">NL3D::CPSZoneCylinder::show()</a>, <a class="el" href="a06287.html#l00625">NL3D::CPSZoneDisc::show()</a>, <a class="el" href="a06287.html#l00140">NL3D::CPSZonePlane::show()</a>, <a class="el" href="a06239.html#l00900">NL3D::CPSCylindricVortex::show()</a>, <a class="el" href="a06239.html#l00413">NL3D::CPSGravity::show()</a>, and <a class="el" href="a06229.html#l02391">NL3D::CPSEmitterRectangle::showTool()</a>. +<p> +<div class="fragment"><pre>02092 { +02093 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +02094 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getFontManager(); +02095 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera26" doxytag="NL3D::CPSEmitterOmni::getGenNb" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CPSEmitter::getGenNb </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Retrieve the GenNb for emission, valid only if a GenNb scheme is used. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00162">162</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00162 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera27" doxytag="NL3D::CPSEmitterOmni::getGenNbScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a03136.html">CPSAttribMaker</a><<a class="el" href="a04558.html#a11">uint32</a>>* NL3D::CPSEmitter::getGenNbScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Retrieve the GenNb scheme, or null, if there'isnt (const version). +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00174">174</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>. +<p> +<div class="fragment"><pre>00174 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera28" doxytag="NL3D::CPSEmitterOmni::getGenNbScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03136.html">CPSAttribMaker</a><<a class="el" href="a04558.html#a11">uint32</a>>* NL3D::CPSEmitter::getGenNbScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Retrieve the GenNb scheme, or null, if there'isnt. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00171">171</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>. +<p> +<div class="fragment"><pre>00171 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea20" doxytag="NL3D::CPSEmitterOmni::getInvertedSysMat" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & NL3D::CPSLocatedBindable::getInvertedSysMat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +shortcut to get the inverted matrix of the system +<p> + +<p> +Definition at line <a class="el" href="a06246.html#l02116">2116</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06143.html#l00190">NL3D::CParticleSystem::getInvertedSysMat()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>02117 { +02118 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +02119 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->getInvertedSysMat(); +02120 +02121 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea21" doxytag="NL3D::CPSEmitterOmni::getInvertedViewMat" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & NL3D::CPSLocatedBindable::getInvertedViewMat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +shortcut to get the inverted view matrix +<p> + +<p> +Definition at line <a class="el" href="a06246.html#l02134">2134</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06143.html#l00223">NL3D::CParticleSystem::getInvertedViewMat()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>02135 { +02136 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +02137 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->getInvertedViewMat(); +02138 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea22" doxytag="NL3D::CPSEmitterOmni::getLocalToWorldMatrix" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & NL3D::CPSLocatedBindable::getLocalToWorldMatrix </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Shortcut to get the local to world matrix. +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l01144">1144</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06246.html#l00092">NL3D::CPSLocated::getLocalToWorldMatrix()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a06277.html#l00319">NL3D::CPSRibbonLookAt::displayRibbons()</a>, <a class="el" href="a06281.html#l00355">NL3D::CPSSound::newElement()</a>, <a class="el" href="a06287.html#l01375">NL3D::CPSZoneRectangle::show()</a>, <a class="el" href="a06287.html#l01160">NL3D::CPSZoneCylinder::show()</a>, <a class="el" href="a06287.html#l00625">NL3D::CPSZoneDisc::show()</a>, <a class="el" href="a06287.html#l00140">NL3D::CPSZonePlane::show()</a>, <a class="el" href="a06244.html#l00363">NL3D::CPSLight::show()</a>, <a class="el" href="a06239.html#l00413">NL3D::CPSGravity::show()</a>, <a class="el" href="a06229.html#l02391">NL3D::CPSEmitterRectangle::showTool()</a>, <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>, and <a class="el" href="a06250.html#l00295">NL3D::CPSMesh::updatePos()</a>. +<p> +<div class="fragment"><pre>01145 { +01146 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +01147 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getLocalToWorldMatrix(); +01148 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea23" doxytag="NL3D::CPSEmitterOmni::getLOD" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a05363.html#a558">TPSLod</a> NL3D::CPSLocatedBindable::getLOD </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the valid lods for that object +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00954">954</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06247.html#l01029">NL3D::CPSLocatedBindable::_LOD</a>, and <a class="el" href="a06248.html#l00036">NL3D::TPSLod</a>. +<p> +<div class="fragment"><pre>00954 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep4">_LOD</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera34" doxytag="NL3D::CPSEmitterOmni::getMaxEmissionCount" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a> NL3D::CPSEmitter::getMaxEmissionCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the max. number of particle emission (0 means no limit and is the default). Applies with regular emitter only. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00154">154</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00353">NL3D::CPSEmitter::_MaxEmissionCount</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01556">NL3D::CParticleSystem::evalDuration()</a>, and <a class="el" href="a06229.html#l02148">NL3D::CPSEmitter::testEmitForever()</a>. +<p> +<div class="fragment"><pre>00154 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSEmitterOmnib4" doxytag="NL3D::CPSEmitterOmni::getModulatedEmitterOwner" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a03214.html">CPSLocated</a>* NL3D::CPSEmitterOmni::getModulatedEmitterOwner </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implements <a class="el" href="a03182.html#NL3D_1_1CPSModulatedEmitterb1">NL3D::CPSModulatedEmitter</a>. +<p> +Definition at line <a class="el" href="a06230.html#l00526">526</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +<div class="fragment"><pre>00526 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea25" doxytag="NL3D::CPSEmitterOmni::getName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::string NL3D::CPSLocatedBindable::getName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the located bindable name (edition purpose) +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00948">948</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00948 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep5">_Name</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea28" doxytag="NL3D::CPSEmitterOmni::getOwner" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a03214.html">CPSLocated</a>* NL3D::CPSLocatedBindable::getOwner </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the located that owns this bindable (const version) +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00944">944</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00944 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea29" doxytag="NL3D::CPSEmitterOmni::getOwner" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03214.html">CPSLocated</a>* NL3D::CPSLocatedBindable::getOwner </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the located that owns this bindable +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00942">942</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +Referenced by <a class="el" href="a06246.html#l01051">NL3D::CPSLocated::deleteElement()</a>, <a class="el" href="a06144.html#l00208">NL3D::CParticleSystemInstanceUser::emit()</a>, <a class="el" href="a06234.html#l00122">NL3D::CPSFaceLookAt::CSecondSize::getSizeOwner()</a>, <a class="el" href="a06281.html#l00355">NL3D::CPSSound::newElement()</a>, <a class="el" href="a06246.html#l01836">NL3D::CPSLocated::registerIntegrableForce()</a>, <a class="el" href="a06142.html#l01081">NL3D::CParticleSystem::registerLocatedBindableExternID()</a>, <a class="el" href="a06144.html#l00236">NL3D::CParticleSystemInstanceUser::removeByID()</a>, <a class="el" href="a06281.html#l00415">NL3D::CPSSound::resize()</a>, <a class="el" href="a06244.html#l00337">NL3D::CPSLight::resize()</a>, <a class="el" href="a06281.html#l00109">NL3D::CPSSound::step()</a>, <a class="el" href="a06246.html#l01851">NL3D::CPSLocated::unregisterIntegrableForce()</a>, and <a class="el" href="a06142.html#l01096">NL3D::CParticleSystem::unregisterLocatedBindableExternID()</a>. +<p> +<div class="fragment"><pre>00942 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera39" doxytag="NL3D::CPSEmitterOmni::getPeriod" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float NL3D::CPSEmitter::getPeriod </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Retrieve the period for emission, valid only if a period scheme is used. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00126">126</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00348">NL3D::CPSEmitter::_Period</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01556">NL3D::CParticleSystem::evalDuration()</a>. +<p> +<div class="fragment"><pre>00126 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera40" doxytag="NL3D::CPSEmitterOmni::getPeriodScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a03136.html">CPSAttribMaker</a><float>* NL3D::CPSEmitter::getPeriodScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00138">138</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>. +<p> +<div class="fragment"><pre>00138 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera41" doxytag="NL3D::CPSEmitterOmni::getPeriodScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03136.html">CPSAttribMaker</a><float>* NL3D::CPSEmitter::getPeriodScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00135">135</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01556">NL3D::CParticleSystem::evalDuration()</a>. +<p> +<div class="fragment"><pre>00135 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera42" doxytag="NL3D::CPSEmitterOmni::getPriority" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a04558.html#a11">uint32</a> NL3D::CPSEmitter::getPriority </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return priority for emitters. +<p> + +<p> +Implements <a class="el" href="a02691.html#NL3D_1_1CPSTargetLocatedBindablea25">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06230.html#l00067">67</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00067 { <span class="keywordflow">return</span> 500; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterz733_2" doxytag="NL3D::CPSEmitterOmni::getSpeedInheritanceFactor" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float NL3D::CPSEmitter::getSpeedInheritanceFactor </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the speed Inheritance factor. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00190">190</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00346">NL3D::CPSEmitter::_SpeedInheritanceFactor</a>. +<p> +<div class="fragment"><pre>00191 { +00192 <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp21">_SpeedInheritanceFactor</a>; +00193 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea32" doxytag="NL3D::CPSEmitterOmni::getSysMat" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & NL3D::CPSLocatedBindable::getSysMat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +*************************************************************************************** +<p> + +<p> +Definition at line <a class="el" href="a06246.html#l02108">2108</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06143.html#l00184">NL3D::CParticleSystem::getSysMat()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>02109 { +02110 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +02111 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->getSysMat(); +02112 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera45" doxytag="NL3D::CPSEmitterOmni::getType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NL3D::CPSEmitter::getType </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return this bindable type. +<p> + +<p> +Implements <a class="el" href="a02691.html#NL3D_1_1CPSTargetLocatedBindablea29">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06230.html#l00063">63</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06247.html#l00807">NL3D::PSEmitter</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00063 { <span class="keywordflow">return</span> <a class="code" href="a05363.html#a256">PSEmitter</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterz733_3" doxytag="NL3D::CPSEmitterOmni::getUserMatrixModeForEmissionDirection" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a05363.html#a557">TPSMatrixMode</a> NL3D::CPSEmitter::getUserMatrixModeForEmissionDirection </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +=============================================================================== +<p> +Align the direction of emission on the emitter speed. NB This also implies that the coord. system in which the speed vector is expressed if the same than the one of the emitter so the calls to <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_1">enableUserMatrixModeForEmissionDirection()</a> & <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_7">setUserMatrixModeForEmissionDirection()</a> have no effects (but their value is retained) +<p> +Definition at line <a class="el" href="a06230.html#l00222">222</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00358">NL3D::CPSEmitter::_UserDirectionMatrixMode</a>, and <a class="el" href="a06151.html#l00061">NL3D::TPSMatrixMode</a>. +<p> +<div class="fragment"><pre>00222 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp22">_UserDirectionMatrixMode</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera46" doxytag="NL3D::CPSEmitterOmni::getUserMatrixUsageCount" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::getUserMatrixUsageCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Reimplemented from <a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherea36">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06229.html#l02640">2640</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06229.html#l02634">NL3D::CPSEmitter::isUserMatrixUsed()</a>. +<p> +<div class="fragment"><pre>02641 { +02642 <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb5">isUserMatrixUsed</a>() ? 1 : 0; +02643 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea37" doxytag="NL3D::CPSEmitterOmni::getViewMat" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & NL3D::CPSLocatedBindable::getViewMat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +shortcut to get the view matrix +<p> + +<p> +Definition at line <a class="el" href="a06246.html#l02125">2125</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06143.html#l00220">NL3D::CParticleSystem::getViewMat()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a06277.html#l00319">NL3D::CPSRibbonLookAt::displayRibbons()</a>, and <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>. +<p> +<div class="fragment"><pre>02126 { +02127 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +02128 <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->getViewMat(); +02129 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea38" doxytag="NL3D::CPSEmitterOmni::hasEmitters" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::CPSLocatedBindable::hasEmitters </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +tells wether there are alive emitters +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00958">958</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00958 { <span class="keywordflow">return</span> <span class="keyword">false</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera49" doxytag="NL3D::CPSEmitterOmni::hasEmitters" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::CPSEmitter::hasEmitters </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return true if this located bindable derived class holds alive emitters. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00070">70</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>00070 { <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize() != 0; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea39" doxytag="NL3D::CPSEmitterOmni::hasParticles" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NL3D::CPSLocatedBindable::hasParticles </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +tells wether there are alive entities / particles +<p> + +<p> +Reimplemented in <a class="el" href="a03162.html#NL3D_1_1CPSTailDota41">NL3D::CPSParticle</a>. +<p> +Definition at line <a class="el" href="a06247.html#l00956">956</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00956 { <span class="keywordflow">return</span> <span class="keyword">false</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea40" doxytag="NL3D::CPSEmitterOmni::isActive" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSLocatedBindable::isActive </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00844">844</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06247.html#l01033">NL3D::CPSLocatedBindable::_Active</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01738">NL3D::CParticleSystem::hasActiveEmitters()</a>. +<p> +<div class="fragment"><pre>00844 { <span class="keywordflow">return</span> <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep0">_Active</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera52" doxytag="NL3D::CPSEmitterOmni::isConsistentEmissionEnabled" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::isConsistentEmissionEnabled </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00238">238</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00355">NL3D::CPSEmitter::_ConsistentEmission</a>. +<p> +<div class="fragment"><pre>00238 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp2">_ConsistentEmission</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterz733_4" doxytag="NL3D::CPSEmitterOmni::isSpeedBasisEmissionEnabled" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::isSpeedBasisEmissionEnabled </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Check if the direction of emission is aligned on the emitter speed. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_0">enableSpeedBasisEmission()</a></dd></dl> + +<p> +Definition at line <a class="el" href="a06230.html#l00204">204</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00354">NL3D::CPSEmitter::_SpeedBasisEmission</a>. +<p> +<div class="fragment"><pre>00204 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp20">_SpeedBasisEmission</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterz733_5" doxytag="NL3D::CPSEmitterOmni::isUserMatrixModeForEmissionDirectionEnabled" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::isUserMatrixModeForEmissionDirectionEnabled </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +=============================================================================== +<p> +Align the direction of emission on the emitter speed. NB This also implies that the coord. system in which the speed vector is expressed if the same than the one of the emitter so the calls to <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_1">enableUserMatrixModeForEmissionDirection()</a> & <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_7">setUserMatrixModeForEmissionDirection()</a> have no effects (but their value is retained) +<p> +Definition at line <a class="el" href="a06230.html#l00216">216</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00357">NL3D::CPSEmitter::_UserMatrixModeForEmissionDirection</a>. +<p> +<div class="fragment"><pre>00216 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp23">_UserMatrixModeForEmissionDirection</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb5" doxytag="NL3D::CPSEmitterOmni::isUserMatrixUsed" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::isUserMatrixUsed </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l02634">2634</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00354">NL3D::CPSEmitter::_SpeedBasisEmission</a>, <a class="el" href="a06230.html#l00358">NL3D::CPSEmitter::_UserDirectionMatrixMode</a>, <a class="el" href="a06230.html#l00357">NL3D::CPSEmitter::_UserMatrixModeForEmissionDirection</a>, and <a class="el" href="a05363.html#a557a220">NL3D::PSUserMatrix</a>. +<p> +Referenced by <a class="el" href="a06229.html#l02593">NL3D::CPSEmitter::enableSpeedBasisEmission()</a>, <a class="el" href="a06229.html#l02601">NL3D::CPSEmitter::enableUserMatrixModeForEmissionDirection()</a>, <a class="el" href="a06229.html#l02640">NL3D::CPSEmitter::getUserMatrixUsageCount()</a>, and <a class="el" href="a06229.html#l02609">NL3D::CPSEmitter::setUserMatrixModeForEmissionDirection()</a>. +<p> +<div class="fragment"><pre>02635 { +02636 <span class="keywordflow">return</span> !<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp20">_SpeedBasisEmission</a> && <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp23">_UserMatrixModeForEmissionDirection</a> && <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp22">_UserDirectionMatrixMode</a> == <a class="code" href="a05363.html#a557a220">PSUserMatrix</a>; +02637 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea41" doxytag="NL3D::CPSEmitterOmni::motionTypeChanged" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NL3D::CPSLocatedBindable::motionTypeChanged </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>parametric</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +called when a located has switch between incrmental / parametric motion. The default does nothing +<p> + +<p> +Reimplemented in <a class="el" href="a03227.html#NL3D_1_1CPSTailDotb11">NL3D::CPSRibbonBase</a>. +<p> +Definition at line <a class="el" href="a06247.html#l00971">971</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +Referenced by <a class="el" href="a06246.html#l00751">NL3D::CPSLocated::bind()</a>. +<p> +<div class="fragment"><pre>00971 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSEmitterOmnib6" doxytag="NL3D::CPSEmitterOmni::newElement" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitterOmni::newElement </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03214.html">CPSLocated</a> * </td> + <td class="mdname" nowrap> <em>emitter</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>emitterIndex</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Reimplemented from <a class="el" href="a03179.html#NL3D_1_1CPSEmitterb5">NL3D::CPSEmitter</a>. +<p> +Definition at line <a class="el" href="a06229.html#l02230">2230</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00424">NL3D::CPSModulatedEmitter::newEmitteeSpeedElement()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>02231 { +02232 CPSEmitter::newElement(emitter, emitterIndex); +02233 <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterb7">newEmitteeSpeedElement</a>(emitter, emitterIndex); +02234 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb7" doxytag="NL3D::CPSEmitterOmni::newEmitteeSpeedElement" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSModulatedEmitter::newEmitteeSpeedElement </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03214.html">CPSLocated</a> * </td> + <td class="mdname" nowrap> <em>emitter</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>emitterIndex</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00424">424</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00441">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a>, <a class="el" href="a06214.html#l00282">NL3D::CPSAttribMaker< float >::hasMemory()</a>, <a class="el" href="a06214.html#l00290">NL3D::CPSAttribMaker< float >::newElement()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06229.html#l02539">NL3D::CPSSphericalEmitter::newElement()</a>, <a class="el" href="a06229.html#l02360">NL3D::CPSEmitterRectangle::newElement()</a>, <a class="el" href="a06229.html#l02263">NL3D::CPSEmitterDirectionnal::newElement()</a>, and <a class="el" href="a06229.html#l02230">newElement()</a>. +<p> +<div class="fragment"><pre>00425 { +00426 <span class="keywordflow">if</span> (<a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a> && <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>->hasMemory()) <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>->newElement(emitter, emitterIndex); +00427 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSEmitterOmnia51" doxytag="NL3D::CPSEmitterOmni::NLMISC_DECLARE_CLASS" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> NL3D::CPSEmitterOmni::NLMISC_DECLARE_CLASS </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03183.html">CPSEmitterOmni</a> </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera55" doxytag="NL3D::CPSEmitterOmni::notifyTargetRemoved" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::notifyTargetRemoved </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03214.html">CPSLocated</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Inherited from <a class="el" href="a02691.html">CPSLocatedBindable</a> We register to the emitted type, so, this, this will be called when it is destroyed +<p> +Reimplemented from <a class="el" href="a02691.html#NL3D_1_1CPSTailDota46">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06229.html#l00394">394</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06229.html#l00361">NL3D::CPSEmitter::setEmittedType()</a>. +<p> +<div class="fragment"><pre>00395 { +00396 <a class="code" href="a04199.html#a6">nlassert</a>(ptr == _EmittedType && _EmittedType); +00397 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera65">setEmittedType</a>(NULL); +00398 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb8" doxytag="NL3D::CPSEmitterOmni::processEmit" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::processEmit </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>index</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a> </td> + <td class="mdname" nowrap> <em>nbToGenerate</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l00119">119</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a06230.html#l00354">NL3D::CPSEmitter::_SpeedBasisEmission</a>, <a class="el" href="a06230.html#l00346">NL3D::CPSEmitter::_SpeedInheritanceFactor</a>, <a class="el" href="a06230.html#l00358">NL3D::CPSEmitter::_UserDirectionMatrixMode</a>, <a class="el" href="a06230.html#l00357">NL3D::CPSEmitter::_UserMatrixModeForEmissionDirection</a>, <a class="el" href="a03179.html#NL3D_1_1CPSEmitterb3">NL3D::CPSEmitter::emit()</a>, <a class="el" href="a06151.html#l00143">NL3D::CParticleSystemProcess::getMatrixMode()</a>, <a class="el" href="a06247.html#l00334">NL3D::CPSLocated::getPos()</a>, <a class="el" href="a06247.html#l00339">NL3D::CPSLocated::getSpeed()</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a06246.html#l00852">NL3D::CPSLocated::newElement()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01908">NL3D::CPSEmitter::bounceOccured()</a>, <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, <a class="el" href="a06229.html#l00490">NL3D::CPSEmitter::singleEmit()</a>, and <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. +<p> +<div class="fragment"><pre>00120 { +00121 <span class="keyword">static</span> <a class="code" href="a03128.html">NLMISC::CVector</a> speed, pos; +00122 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +00123 <span class="keywordflow">if</span> (!<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp20">_SpeedBasisEmission</a>) +00124 { +00125 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp21">_SpeedInheritanceFactor</a> == 0.f) +00126 { +00127 <span class="keywordflow">if</span> (!<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp23">_UserMatrixModeForEmissionDirection</a>) +00128 { +00129 <span class="keywordflow">while</span> (nbToGenerate > 0) +00130 { +00131 nbToGenerate --; +00132 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getPos()[<a class="code" href="a04223.html#a566">index</a>], <a class="code" href="a04223.html#a566">index</a>, pos, speed); +00133 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, speed, this->_Owner, index, <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMatrixMode(), 0.f); +00134 } +00135 } +00136 <span class="keywordflow">else</span> +00137 { +00138 <span class="keywordflow">while</span> (nbToGenerate > 0) +00139 { +00140 nbToGenerate --; +00141 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getPos()[<a class="code" href="a04223.html#a566">index</a>], <a class="code" href="a04223.html#a566">index</a>, pos, speed); +00142 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, speed, this->_Owner, index, _UserDirectionMatrixMode, 0.f); +00143 } +00144 } +00145 } +00146 <span class="keywordflow">else</span> +00147 { +00148 <span class="keywordflow">while</span> (nbToGenerate --) +00149 { +00150 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getPos()[<a class="code" href="a04223.html#a566">index</a>], <a class="code" href="a04223.html#a566">index</a>, pos, speed); +00151 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, speed + _SpeedInheritanceFactor * <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSpeed()[<a class="code" href="a04223.html#a566">index</a>], this-><a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>, 0, <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMatrixMode(), 0.f); +00152 } +00153 } +00154 } +00155 <span class="keywordflow">else</span> +00156 { +00157 <a class="code" href="a02851.html">NLMISC::CMatrix</a> m; +00158 CPSUtil::buildSchmidtBasis(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSpeed()[<a class="code" href="a04223.html#a566">index</a>], m); +00159 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp21">_SpeedInheritanceFactor</a> == 0.f) +00160 { +00161 <span class="keywordflow">while</span> (nbToGenerate > 0) +00162 { +00163 nbToGenerate --; +00164 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getPos()[<a class="code" href="a04223.html#a566">index</a>], <a class="code" href="a04223.html#a566">index</a>, pos, speed); +00165 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, m * speed, this->_Owner, index, <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMatrixMode(), 0.f); +00166 } +00167 } +00168 <span class="keywordflow">else</span> +00169 { +00170 <span class="keywordflow">while</span> (nbToGenerate --) +00171 { +00172 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getPos()[<a class="code" href="a04223.html#a566">index</a>], <a class="code" href="a04223.html#a566">index</a>, pos, speed); +00173 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, m * speed + _SpeedInheritanceFactor * <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSpeed()[<a class="code" href="a04223.html#a566">index</a>], this-><a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>, <a class="code" href="a04223.html#a566">index</a>, <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMatrixMode(), 0.f); +00174 } +00175 } +00176 } +00177 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb9" doxytag="NL3D::CPSEmitterOmni::processEmitConsistent" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::processEmitConsistent </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>emitterPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>index</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a> </td> + <td class="mdname" nowrap> <em>nbToGenerate</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>deltaT</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>ellapsedTime</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>realEllapsedTimeRatio</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +speed and pos of emittee +<p> +Definition at line <a class="el" href="a06229.html#l00247">247</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a06230.html#l00354">NL3D::CPSEmitter::_SpeedBasisEmission</a>, <a class="el" href="a06230.html#l00346">NL3D::CPSEmitter::_SpeedInheritanceFactor</a>, <a class="el" href="a06230.html#l00358">NL3D::CPSEmitter::_UserDirectionMatrixMode</a>, <a class="el" href="a06230.html#l00357">NL3D::CPSEmitter::_UserMatrixModeForEmissionDirection</a>, <a class="el" href="a06229.html#l00182">NL3D::CompensateEmission()</a>, <a class="el" href="a03179.html#NL3D_1_1CPSEmitterb3">NL3D::CPSEmitter::emit()</a>, <a class="el" href="a06151.html#l00143">NL3D::CParticleSystemProcess::getMatrixMode()</a>, <a class="el" href="a06247.html#l00339">NL3D::CPSLocated::getSpeed()</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a06246.html#l00852">NL3D::CPSLocated::newElement()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, and <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>. +<p> +<div class="fragment"><pre>00254 { +00255 <span class="keyword">static</span> <a class="code" href="a03128.html">NLMISC::CVector</a> speed, pos; +00256 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +00257 <a class="code" href="a04558.html#a14">sint</a> emittedIndex; +00258 <span class="keywordflow">if</span> (!<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp20">_SpeedBasisEmission</a>) +00259 { +00260 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp21">_SpeedInheritanceFactor</a> == 0.f) +00261 { +00262 <span class="keywordflow">if</span> (!<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp23">_UserMatrixModeForEmissionDirection</a>) +00263 { +00264 <span class="keywordflow">while</span> (nbToGenerate > 0) +00265 { +00266 nbToGenerate --; +00267 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(emitterPos, index, pos, speed); +00268 emittedIndex = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, speed, this->_Owner, index, <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMatrixMode(), deltaT); +00269 <span class="keywordflow">if</span> (emittedIndex != - 1) <a class="code" href="a05363.html#a482">CompensateEmission</a>(_EmittedType, emittedIndex, deltaT, ellapsedTime, realEllapsedTimeRatio); +00270 <span class="keywordflow">else</span> <span class="keywordflow">break</span>; +00271 } +00272 } +00273 <span class="keywordflow">else</span> +00274 { +00275 <span class="keywordflow">while</span> (nbToGenerate > 0) +00276 { +00277 nbToGenerate --; +00278 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(emitterPos, index, pos, speed); +00279 emittedIndex = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, speed, this->_Owner, index, _UserDirectionMatrixMode, deltaT); +00280 <span class="keywordflow">if</span> (emittedIndex != - 1) <a class="code" href="a05363.html#a482">CompensateEmission</a>(_EmittedType, emittedIndex, deltaT, ellapsedTime, realEllapsedTimeRatio); +00281 <span class="keywordflow">else</span> <span class="keywordflow">break</span>; +00282 } +00283 } +00284 } +00285 <span class="keywordflow">else</span> +00286 { +00287 <span class="keywordflow">while</span> (nbToGenerate --) +00288 { +00289 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(emitterPos, index, pos, speed); +00290 emittedIndex = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, speed + _SpeedInheritanceFactor * <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSpeed()[<a class="code" href="a04223.html#a566">index</a>], this-><a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>, <a class="code" href="a04223.html#a566">index</a>, <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMatrixMode(), deltaT); +00291 <span class="keywordflow">if</span> (emittedIndex != - 1) <a class="code" href="a05363.html#a482">CompensateEmission</a>(_EmittedType, emittedIndex, deltaT, ellapsedTime, realEllapsedTimeRatio); +00292 <span class="keywordflow">else</span> <span class="keywordflow">break</span>; +00293 } +00294 } +00295 } +00296 <span class="keywordflow">else</span> +00297 { +00298 <a class="code" href="a02851.html">NLMISC::CMatrix</a> m; +00299 CPSUtil::buildSchmidtBasis(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSpeed()[<a class="code" href="a04223.html#a566">index</a>], m); +00300 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp21">_SpeedInheritanceFactor</a> == 0.f) +00301 { +00302 <span class="keywordflow">while</span> (nbToGenerate > 0) +00303 { +00304 nbToGenerate --; +00305 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(emitterPos, index, pos, speed); +00306 emittedIndex = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, m * speed, this->_Owner, index, <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMatrixMode(), deltaT); +00307 <span class="keywordflow">if</span> (emittedIndex != - 1) <a class="code" href="a05363.html#a482">CompensateEmission</a>(_EmittedType, emittedIndex, deltaT, ellapsedTime, realEllapsedTimeRatio); +00308 <span class="keywordflow">else</span> <span class="keywordflow">break</span>; +00309 } +00310 } +00311 <span class="keywordflow">else</span> +00312 { +00313 <span class="keywordflow">while</span> (nbToGenerate --) +00314 { +00315 <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnia8">emit</a>(emitterPos, index, pos, speed); +00316 emittedIndex = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->newElement(pos, m * speed + _SpeedInheritanceFactor * <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSpeed()[<a class="code" href="a04223.html#a566">index</a>], this-><a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>, <a class="code" href="a04223.html#a566">index</a>, <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMatrixMode(), deltaT); +00317 <span class="keywordflow">if</span> (emittedIndex != - 1) <a class="code" href="a05363.html#a482">CompensateEmission</a>(_EmittedType, emittedIndex, deltaT, ellapsedTime, realEllapsedTimeRatio); +00318 <span class="keywordflow">else</span> <span class="keywordflow">break</span>; +00319 } +00320 } +00321 } +00322 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb10" doxytag="NL3D::CPSEmitterOmni::processRegularEmission" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::processRegularEmission </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>ellapsedTime</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>emitLOD</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +is there an emission delay ?<p> +is there an emission delay ? +<p> +Test if 'make' filled our buffer. If this is not the case, we assume that values where precomputed, and that all null period have already been replaced by the threshold +<p> +Definition at line <a class="el" href="a06229.html#l00665">665</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00352">NL3D::CPSEmitter::_EmitDelay</a>, <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, <a class="el" href="a06230.html#l00353">NL3D::CPSEmitter::_MaxEmissionCount</a>, <a class="el" href="a06230.html#l00344">NL3D::CPSEmitter::_NumEmission</a>, <a class="el" href="a06230.html#l00348">NL3D::CPSEmitter::_Period</a>, <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>, <a class="el" href="a06230.html#l00343">NL3D::CPSEmitter::_Phase</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< T >::begin()</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< float >::begin()</a>, <a class="el" href="a06229.html#l00041">NL3D::EMIT_PERIOD_THRESHOLD</a>, <a class="el" href="a06229.html#l00040">NL3D::EMITTER_BUFF_SIZE</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_1">NL3D::CPSAttribMaker< uint32 >::get()</a>, <a class="el" href="a06214.html#l00217">NL3D::CPSAttribMaker< float >::getMaxValue()</a>, <a class="el" href="a06214.html#l00215">NL3D::CPSAttribMaker< float >::getMinValue()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a06143.html#l00992">NL3D::CParticleSystem::isEmitThresholdEnabled()</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_2">NL3D::CPSAttribMaker< float >::make()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a06229.html#l00052">NL3D::replaceNullPeriodsByThreshold()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. +<p> +<div class="fragment"><pre>00666 { +00667 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +00668 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()); +00669 <span class="comment">//</span> +00670 <span class="keyword">const</span> <span class="keywordtype">bool</span> emitThreshold = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->isEmitThresholdEnabled(); +00671 <span class="comment">//</span> +00672 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a> = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize(); +00673 <a class="code" href="a04558.html#a15">uint</a> leftToDo = <a class="code" href="a04223.html#a587">size</a>, toProcess; +00674 <span class="keywordtype">float</span> emitPeriod[<a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a>]; +00675 <span class="keyword">const</span> <span class="keywordtype">float</span> *currEmitPeriod; +00676 <a class="code" href="a04558.html#a15">uint</a> currEmitPeriodPtrInc = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a> ? 1 : 0; +00677 <a class="code" href="a04558.html#a10">sint32</a> nbToGenerate; +00678 +00679 TPSAttribTime::iterator phaseIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(), endPhaseIt; +00680 TPSAttribUInt8::iterator numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.begin(); +00681 +00682 <span class="keywordtype">float</span> ellapsedTimeLOD = emitLOD * ellapsedTime; +00683 <a class="code" href="a04558.html#a15">uint</a> maxEmissionCountLOD = (<a class="code" href="a04558.html#a7">uint8</a>) (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a> * emitLOD); +00684 maxEmissionCountLOD = std::max(1u, maxEmissionCountLOD); +00685 +00686 <span class="comment">// we don't use an iterator here</span> +00687 <span class="comment">// because it could be invalidated if size change (a located could generate itself) </span> +00688 <span class="keywordflow">do</span> +00689 { +00690 toProcess = leftToDo < <a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a> ? leftToDo : <a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a>; +00691 +00692 +00693 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>) +00694 { +00695 currEmitPeriod = (<span class="keywordtype">float</span> *) (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->make(_Owner, size - leftToDo, emitPeriod, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), toProcess, <span class="keyword">true</span>)); +00696 <span class="keywordflow">if</span> (emitThreshold) +00697 { +00698 +00702 <span class="keywordflow">if</span> (currEmitPeriod == emitPeriod) +00703 { +00704 <span class="comment">// if there possibility to have 0 in the scheme ?</span> +00705 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->getMinValue() <= 0.f && <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->getMaxValue() >= 0.f) +00706 { +00707 <a class="code" href="a05363.html#a481">replaceNullPeriodsByThreshold</a>(emitPeriod, toProcess); +00708 } +00709 } +00710 } +00711 } +00712 <span class="keywordflow">else</span> +00713 { +00714 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a> != 0.f || !emitThreshold) +00715 { +00716 currEmitPeriod = &<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a>; +00717 } +00718 <span class="keywordflow">else</span> +00719 { +00720 currEmitPeriod = &<a class="code" href="a05363.html#a240">EMIT_PERIOD_THRESHOLD</a>; +00721 } +00722 } +00723 +00724 endPhaseIt = phaseIt + toProcess; +00725 +00726 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a> == 0) <span class="comment">// no emission count limit</span> +00727 { +00729 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> == 0.f) <span class="comment">// no emission delay</span> +00730 { +00731 <span class="keywordflow">do</span> +00732 { +00733 *phaseIt += ellapsedTimeLOD; +00734 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod) <span class="comment">// phase is greater than period -> must emit</span> +00735 { +00736 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +00737 { +00738 *phaseIt -= ::floorf(*phaseIt / *currEmitPeriod) * *currEmitPeriod; +00739 } +00740 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> k = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +00741 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, k) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00742 <span class="keywordflow">if</span> (nbToGenerate) +00743 { +00744 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +00745 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +00746 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(k, nbToGenerate); +00747 } +00748 } +00749 +00750 ++phaseIt; +00751 currEmitPeriod += currEmitPeriodPtrInc; +00752 } +00753 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +00754 } +00755 <span class="keywordflow">else</span> <span class="comment">// there's an emission delay</span> +00756 { +00757 <span class="keywordflow">do</span> +00758 { +00759 <span class="keywordflow">if</span> (*phaseIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) +00760 { +00761 *phaseIt += ellapsedTime; +00762 <span class="keywordflow">if</span> (*phaseIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) +00763 { +00764 ++phaseIt; +00765 currEmitPeriod += currEmitPeriodPtrInc; +00766 <span class="keywordflow">continue</span>; +00767 } +00768 <span class="keywordflow">else</span> +00769 { +00770 *phaseIt = (*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) * emitLOD + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>; +00771 } +00772 } +00773 <span class="keywordflow">else</span> +00774 { +00775 *phaseIt += ellapsedTimeLOD; +00776 } +00777 +00778 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) <span class="comment">// phase is greater than period -> must emit</span> +00779 { +00780 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +00781 { +00782 *phaseIt -= ::floorf((*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) / *currEmitPeriod) * *currEmitPeriod; +00783 } +00784 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> k = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +00785 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, k) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00786 <span class="keywordflow">if</span> (nbToGenerate) +00787 { +00788 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +00789 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +00790 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(k, nbToGenerate); +00791 } +00792 } +00793 +00794 ++phaseIt; +00795 currEmitPeriod += currEmitPeriodPtrInc; +00796 } +00797 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +00798 } +00799 } +00800 <span class="keywordflow">else</span> <span class="comment">// there's an emission count limit</span> +00801 { +00803 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> == 0.f) <span class="comment">// no emission delay</span> +00804 { +00805 <span class="keywordflow">do</span> +00806 { +00807 <span class="keywordflow">if</span> (*numEmitIt < maxEmissionCountLOD) +00808 { +00809 *phaseIt += ellapsedTimeLOD; +00810 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod) <span class="comment">// phase is greater than period -> must emit</span> +00811 { +00812 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +00813 { +00814 *phaseIt -= ::floorf(*phaseIt / *currEmitPeriod) * *currEmitPeriod; +00815 } +00816 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> k = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +00817 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, k) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00818 <span class="keywordflow">if</span> (nbToGenerate) +00819 { +00820 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +00821 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +00822 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(k, nbToGenerate); +00823 } +00824 ++*numEmitIt; +00825 } +00826 } +00827 <span class="keywordflow">else</span> +00828 { +00829 *numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +00830 } +00831 ++phaseIt; +00832 currEmitPeriod += currEmitPeriodPtrInc; +00833 ++ numEmitIt; +00834 } +00835 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +00836 } +00837 <span class="keywordflow">else</span> <span class="comment">// there's an emission delay</span> +00838 { +00839 <span class="keywordflow">do</span> +00840 { +00841 <span class="keywordflow">if</span> (*numEmitIt < maxEmissionCountLOD) +00842 { +00843 <span class="keywordflow">if</span> (*phaseIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) +00844 { +00845 *phaseIt += ellapsedTime; +00846 <span class="keywordflow">if</span> (*phaseIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) +00847 { +00848 ++phaseIt; +00849 currEmitPeriod += currEmitPeriodPtrInc; +00850 ++numEmitIt; +00851 currEmitPeriod += currEmitPeriodPtrInc; +00852 <span class="keywordflow">continue</span>; +00853 } +00854 <span class="keywordflow">else</span> +00855 { +00856 *phaseIt = (*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) * emitLOD + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>; +00857 } +00858 } +00859 <span class="keywordflow">else</span> +00860 { +00861 *phaseIt += ellapsedTimeLOD; +00862 } +00863 +00864 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) <span class="comment">// phase is greater than period -> must emit</span> +00865 { +00866 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +00867 { +00868 *phaseIt -= ::floorf((*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) / *currEmitPeriod) * *currEmitPeriod; +00869 } +00870 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> k = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +00871 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, k) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00872 <span class="keywordflow">if</span> (nbToGenerate) +00873 { +00874 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (nbToGenerate * emitLOD); +00875 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +00876 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(k, nbToGenerate); +00877 } +00878 ++*numEmitIt; +00879 } +00880 } +00881 <span class="keywordflow">else</span> +00882 { +00883 *numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +00884 } +00885 ++phaseIt; +00886 currEmitPeriod += currEmitPeriodPtrInc; +00887 ++numEmitIt; +00888 } +00889 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +00890 } +00891 } +00892 +00893 leftToDo -= toProcess; +00894 } +00895 <span class="keywordflow">while</span> (leftToDo); +00896 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb11" doxytag="NL3D::CPSEmitterOmni::processRegularEmissionConsistent" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::processRegularEmissionConsistent </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>ellapsedTime</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>realEllapsedTimeRatio</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>emitLOD</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>inverseEmitLOD</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Regular emission processing, with low-framrate compensation +<p> +Test if 'make' filled our buffer. If this is not the case, we assume that values where precomputed, and that all null period have already been replaced by the threshold<p> +Must ensure phase is valid if period decrease over time<p> +Must ensure phase is valid if period decrease over time<p> +Must ensure phase is valid if period decrease over time<p> +Must ensure phase is valid if period decrease over time +<p> +Definition at line <a class="el" href="a06229.html#l01000">1000</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00352">NL3D::CPSEmitter::_EmitDelay</a>, <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, <a class="el" href="a06230.html#l00353">NL3D::CPSEmitter::_MaxEmissionCount</a>, <a class="el" href="a06230.html#l00344">NL3D::CPSEmitter::_NumEmission</a>, <a class="el" href="a06230.html#l00348">NL3D::CPSEmitter::_Period</a>, <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>, <a class="el" href="a06230.html#l00343">NL3D::CPSEmitter::_Phase</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< T >::begin()</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< float >::begin()</a>, <a class="el" href="a06229.html#l00041">NL3D::EMIT_PERIOD_THRESHOLD</a>, <a class="el" href="a06229.html#l00040">NL3D::EMITTER_BUFF_SIZE</a>, <a class="el" href="a06229.html#l00951">NL3D::GenEmitterPositionsWithLOD()</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_1">NL3D::CPSAttribMaker< uint32 >::get()</a>, <a class="el" href="a06214.html#l00217">NL3D::CPSAttribMaker< float >::getMaxValue()</a>, <a class="el" href="a06214.html#l00215">NL3D::CPSAttribMaker< float >::getMinValue()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a06143.html#l00992">NL3D::CParticleSystem::isEmitThresholdEnabled()</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_2">NL3D::CPSAttribMaker< float >::make()</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a06229.html#l00247">NL3D::CPSEmitter::processEmitConsistent()</a>, <a class="el" href="a06229.html#l00052">NL3D::replaceNullPeriodsByThreshold()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. +<p> +<div class="fragment"><pre>01001 { +01003 +01004 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +01005 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()); +01006 <span class="comment">//</span> +01007 <span class="keyword">const</span> <span class="keywordtype">bool</span> emitThreshold = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->isEmitThresholdEnabled(); +01008 <span class="comment">//</span> +01009 +01010 +01011 <span class="keyword">static</span> std::vector<NLMISC::CVector> emitterPositions; +01012 <span class="comment">// Positions for the emitter. They are computed by using a parametric trajectory or by using integration</span> +01013 +01014 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a> = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize(); +01015 <a class="code" href="a04558.html#a15">uint</a> leftToDo = <a class="code" href="a04223.html#a587">size</a>, toProcess; +01016 <span class="keywordtype">float</span> emitPeriod[<a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a>]; +01017 <span class="keyword">const</span> <span class="keywordtype">float</span> *currEmitPeriod; +01018 <a class="code" href="a04558.html#a15">uint</a> currEmitPeriodPtrInc = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a> ? 1 : 0; +01019 <a class="code" href="a04558.html#a10">sint32</a> nbToGenerate; +01020 +01021 +01022 TPSAttribTime::iterator phaseIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(), endPhaseIt; +01023 TPSAttribUInt8::iterator numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.begin(); +01024 +01025 <span class="keywordtype">float</span> ellapsedTimeLOD = ellapsedTime * emitLOD; +01026 <a class="code" href="a04558.html#a15">uint</a> maxEmissionCountLOD = (<a class="code" href="a04558.html#a7">uint8</a>) (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a> * emitLOD); +01027 maxEmissionCountLOD = std::max(1u, maxEmissionCountLOD); +01028 +01029 <span class="comment">// we don't use an iterator here</span> +01030 <span class="comment">// because it could be invalidated if size change (a located could generate itself) </span> +01031 <span class="keywordflow">do</span> +01032 { +01033 toProcess = leftToDo < <a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a> ? leftToDo : <a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a>; +01034 +01035 +01036 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>) +01037 { +01038 currEmitPeriod = (<span class="keywordtype">float</span> *) (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->make(_Owner, size - leftToDo, emitPeriod, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), toProcess, <span class="keyword">true</span>)); +01039 <span class="keywordflow">if</span> (emitThreshold) +01040 { +01041 +01045 <span class="keywordflow">if</span> (currEmitPeriod == emitPeriod) +01046 { +01047 <span class="comment">// if there possibility to have 0 in the scheme ?</span> +01048 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->getMinValue() <= 0.f && <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->getMaxValue() >= 0.f) +01049 { +01050 <a class="code" href="a05363.html#a481">replaceNullPeriodsByThreshold</a>(emitPeriod, toProcess); +01051 } +01052 } +01053 } +01054 } +01055 <span class="keywordflow">else</span> +01056 { +01057 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a> != 0.f || !emitThreshold) +01058 { +01059 currEmitPeriod = &<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a>; +01060 } +01061 <span class="keywordflow">else</span> +01062 { +01063 currEmitPeriod = &<a class="code" href="a05363.html#a240">EMIT_PERIOD_THRESHOLD</a>; +01064 } +01065 } +01066 +01067 endPhaseIt = phaseIt + toProcess; +01068 +01069 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a> == 0) <span class="comment">// no emission count limit</span> +01070 { +01072 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> == 0.f) <span class="comment">// no emission delay</span> +01073 { +01074 <span class="keywordflow">do</span> +01075 { +01076 *phaseIt += ellapsedTimeLOD; +01077 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod) <span class="comment">// phase is greater than period -> must emit</span> +01078 { +01079 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +01080 { +01083 *phaseIt = <a class="code" href="a04061.html#a0">std::min</a>(*phaseIt, *currEmitPeriod + ellapsedTimeLOD); +01084 <span class="comment">//</span> +01086 <span class="comment"></span> <a class="code" href="a04558.html#a15">uint</a> numEmissions = (<a class="code" href="a04558.html#a15">uint</a>) ::floorf(*phaseIt / *currEmitPeriod); +01087 *phaseIt -= *currEmitPeriod * numEmissions; +01088 +01089 <a class="code" href="a04558.html#a15">uint</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01090 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01091 <span class="keywordflow">if</span> (nbToGenerate) +01092 { +01093 <span class="keywordtype">float</span> deltaT = std::max(0.f, *phaseIt); +01094 +01096 numEmissions = <a class="code" href="a05363.html#a484">GenEmitterPositionsWithLOD</a>(_Owner, +01097 _EmittedType, +01098 emitterIndex, +01099 numEmissions, +01100 deltaT, +01101 *currEmitPeriod, +01102 inverseEmitLOD, +01103 emitterPositions +01104 ); +01105 +01107 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01108 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01109 <a class="code" href="a04558.html#a15">uint</a> k = numEmissions; +01110 <span class="keywordtype">float</span> deltaTInc = *currEmitPeriod * inverseEmitLOD; +01111 <span class="keywordflow">do</span> +01112 { +01113 --k; +01114 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a>(emitterPositions[k], +01115 emitterIndex, +01116 nbToGenerate, +01117 deltaT, +01118 ellapsedTime, +01119 realEllapsedTimeRatio); +01120 deltaT += deltaTInc; +01121 } +01122 <span class="keywordflow">while</span> (k); +01123 } +01124 } +01125 <span class="keywordflow">else</span> +01126 { +01127 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> emitterIndex = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +01128 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01129 <span class="keywordflow">if</span> (nbToGenerate) +01130 { +01131 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01132 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01133 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(emitterIndex, nbToGenerate); +01134 } +01135 } +01136 } +01137 +01138 ++phaseIt; +01139 currEmitPeriod += currEmitPeriodPtrInc; +01140 } +01141 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +01142 } +01143 <span class="keywordflow">else</span> <span class="comment">// thhere's an emission delay</span> +01144 { +01145 <span class="keywordflow">do</span> +01146 { +01147 <span class="keywordflow">if</span> (*phaseIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) +01148 { +01149 *phaseIt += ellapsedTime; +01150 <span class="keywordflow">if</span> (*phaseIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) +01151 { +01152 ++phaseIt; +01153 currEmitPeriod += currEmitPeriodPtrInc; +01154 <span class="keywordflow">continue</span>; +01155 } +01156 <span class="keywordflow">else</span> +01157 { +01158 *phaseIt = (*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) * emitLOD + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>; +01159 } +01160 } +01161 <span class="keywordflow">else</span> +01162 { +01163 *phaseIt += ellapsedTimeLOD; +01164 } +01165 +01166 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) <span class="comment">// phase is greater than period -> must emit</span> +01167 { +01168 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +01169 { +01172 *phaseIt = <a class="code" href="a04061.html#a0">std::min</a>(*phaseIt, *currEmitPeriod + ellapsedTimeLOD + _EmitDelay); +01173 <span class="comment">//</span> +01174 <a class="code" href="a04558.html#a15">uint</a> numEmissions = (<a class="code" href="a04558.html#a15">uint</a>) ::floorf((*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) / *currEmitPeriod); +01175 *phaseIt -= *currEmitPeriod * numEmissions; +01176 <span class="keywordtype">float</span> deltaT = std::max(*phaseIt - _EmitDelay, 0.f); +01177 <span class="comment">//nlassert(deltaT >= 0.f);</span> +01179 <span class="comment"></span> <a class="code" href="a04558.html#a15">uint</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01180 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01181 <span class="keywordflow">if</span> (nbToGenerate) +01182 { +01183 +01185 numEmissions = <a class="code" href="a05363.html#a484">GenEmitterPositionsWithLOD</a>( _Owner, +01186 _EmittedType, +01187 emitterIndex, +01188 numEmissions, +01189 deltaT, +01190 *currEmitPeriod, +01191 inverseEmitLOD, +01192 emitterPositions +01193 ); +01194 +01195 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01196 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01197 <a class="code" href="a04558.html#a15">uint</a> k = numEmissions; +01198 <span class="keywordtype">float</span> deltaTInc = *currEmitPeriod * inverseEmitLOD; +01199 <span class="keywordflow">do</span> +01200 { +01201 --k; +01202 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a>(emitterPositions[k], +01203 emitterIndex, +01204 nbToGenerate, +01205 deltaT, +01206 ellapsedTime, +01207 realEllapsedTimeRatio); +01208 deltaT += deltaTInc; +01209 } +01210 <span class="keywordflow">while</span> (k); +01211 } +01212 } +01213 <span class="keywordflow">else</span> +01214 { +01215 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> emitterIndex = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +01216 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01217 <span class="keywordflow">if</span> (nbToGenerate) +01218 { +01219 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01220 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01221 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(emitterIndex, nbToGenerate); +01222 } +01223 } +01224 } +01225 +01226 ++phaseIt; +01227 currEmitPeriod += currEmitPeriodPtrInc; +01228 } +01229 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +01230 } +01231 } +01232 <span class="keywordflow">else</span> <span class="comment">// there's an emission count limit</span> +01233 { +01235 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> == 0.f) <span class="comment">// no emission delay</span> +01236 { +01237 <span class="keywordflow">do</span> +01238 { +01239 <span class="keywordflow">if</span> (*numEmitIt < maxEmissionCountLOD) +01240 { +01241 *phaseIt += ellapsedTimeLOD; +01242 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod) <span class="comment">// phase is greater than period -> must emit</span> +01243 { +01244 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +01245 { +01248 *phaseIt = <a class="code" href="a04061.html#a0">std::min</a>(*phaseIt, *currEmitPeriod + ellapsedTimeLOD); +01249 <span class="comment">//</span> +01250 <a class="code" href="a04558.html#a15">uint</a> numEmissions = (<a class="code" href="a04558.html#a15">uint</a>) ::floorf(*phaseIt / *currEmitPeriod); +01251 *numEmitIt += numEmissions; +01252 *phaseIt -= *currEmitPeriod * numEmissions; +01253 <span class="keywordtype">float</span> deltaT = std::max(*phaseIt, 0.f); +01254 <span class="comment">//nlassert(deltaT >= 0.f);</span> +01255 <a class="code" href="a04558.html#a15">uint</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01256 <span class="keywordflow">if</span> (*numEmitIt > <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) <span class="comment">// make sure we don't go over the emission limit</span> +01257 { +01258 numEmissions -= *numEmitIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +01259 *numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +01260 } +01261 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01262 <span class="keywordflow">if</span> (nbToGenerate) +01263 { +01265 numEmissions = <a class="code" href="a05363.html#a484">GenEmitterPositionsWithLOD</a>(_Owner, +01266 _EmittedType, +01267 emitterIndex, +01268 numEmissions, +01269 deltaT, +01270 *currEmitPeriod, +01271 inverseEmitLOD, +01272 emitterPositions +01273 ); +01274 <a class="code" href="a04558.html#a15">uint</a> k = numEmissions; +01276 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01277 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01278 <span class="keywordtype">float</span> deltaTInc = *currEmitPeriod * inverseEmitLOD; +01279 <span class="keywordflow">do</span> +01280 { +01281 --k; +01282 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a>(emitterPositions[k], +01283 emitterIndex, +01284 nbToGenerate, +01285 deltaT, +01286 ellapsedTime, +01287 realEllapsedTimeRatio); +01288 deltaT += deltaTInc; +01289 } +01290 <span class="keywordflow">while</span> (k); +01291 } +01292 } +01293 <span class="keywordflow">else</span> +01294 { +01295 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01296 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01297 <span class="keywordflow">if</span> (nbToGenerate) +01298 { +01299 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01300 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01301 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(emitterIndex, nbToGenerate); +01302 ++*numEmitIt; +01303 } +01304 } +01305 } +01306 } +01307 <span class="keywordflow">else</span> +01308 { +01309 *numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; <span class="comment">// if the lod change, must ensure that the </span> +01310 } +01311 ++phaseIt; +01312 currEmitPeriod += currEmitPeriodPtrInc; +01313 ++ numEmitIt; +01314 } +01315 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +01316 } +01317 <span class="keywordflow">else</span> <span class="comment">// there's an emission delay</span> +01318 { +01319 <span class="keywordflow">do</span> +01320 { +01321 <span class="keywordflow">if</span> (*numEmitIt < maxEmissionCountLOD) +01322 { +01323 <span class="keywordflow">if</span> (*phaseIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) +01324 { +01325 *phaseIt += ellapsedTime; +01326 <span class="keywordflow">if</span> (*phaseIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) +01327 { +01328 ++phaseIt; +01329 currEmitPeriod += currEmitPeriodPtrInc; +01330 ++numEmitIt; +01331 <span class="keywordflow">continue</span>; +01332 } +01333 <span class="keywordflow">else</span> +01334 { +01335 *phaseIt = (*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) * emitLOD + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>; +01336 } +01337 } +01338 <span class="keywordflow">else</span> +01339 { +01340 *phaseIt += ellapsedTimeLOD; +01341 } +01342 <span class="comment">//</span> +01343 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) <span class="comment">// phase is greater than period -> must emit</span> +01344 { +01345 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +01346 { +01349 *phaseIt = <a class="code" href="a04061.html#a0">std::min</a>(*phaseIt, *currEmitPeriod + ellapsedTimeLOD + _EmitDelay); +01350 <span class="comment">//</span> +01351 <a class="code" href="a04558.html#a15">uint</a> numEmissions = (<a class="code" href="a04558.html#a15">uint</a>) ::floorf((*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) / *currEmitPeriod); +01352 *numEmitIt += numEmissions; +01353 *phaseIt -= *currEmitPeriod * numEmissions; +01354 <span class="keywordtype">float</span> deltaT = std::max(*phaseIt - _EmitDelay, 0.f); +01355 <span class="comment">//nlassert(deltaT >= 0.f);</span> +01356 <a class="code" href="a04558.html#a15">uint</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01357 <span class="keywordflow">if</span> (*numEmitIt > <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) <span class="comment">// make sure we don't go over the emission limit</span> +01358 { +01359 numEmissions -= *numEmitIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +01360 *numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +01361 } +01362 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01363 <span class="keywordflow">if</span> (nbToGenerate) +01364 { +01366 numEmissions = <a class="code" href="a05363.html#a484">GenEmitterPositionsWithLOD</a>( _Owner, +01367 _EmittedType, +01368 emitterIndex, +01369 numEmissions, +01370 deltaT, +01371 *currEmitPeriod, +01372 inverseEmitLOD, +01373 emitterPositions +01374 ); +01375 <a class="code" href="a04558.html#a15">uint</a> k = numEmissions; +01377 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01378 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01379 <span class="keywordtype">float</span> deltaTInc = *currEmitPeriod * inverseEmitLOD; +01380 <span class="keywordflow">do</span> +01381 { +01382 --k; +01383 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a>(emitterPositions[k], +01384 emitterIndex, +01385 nbToGenerate, +01386 deltaT, +01387 ellapsedTime, +01388 realEllapsedTimeRatio); +01389 deltaT += deltaTInc; +01390 } +01391 <span class="keywordflow">while</span> (k); +01392 } +01393 } +01394 <span class="keywordflow">else</span> +01395 { +01396 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> emitterIndex = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +01397 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01398 <span class="keywordflow">if</span> (nbToGenerate) +01399 { +01400 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01401 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01402 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(emitterIndex, nbToGenerate); +01403 ++*numEmitIt; +01404 } +01405 } +01406 } +01407 } +01408 <span class="keywordflow">else</span> +01409 { +01410 *numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; <span class="comment">// if the lod change, must ensure that the </span> +01411 } +01412 ++phaseIt; +01413 currEmitPeriod += currEmitPeriodPtrInc; +01414 ++numEmitIt; +01415 } +01416 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +01417 } +01418 } +01419 +01420 leftToDo -= toProcess; +01421 } +01422 <span class="keywordflow">while</span> (leftToDo); +01423 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb12" doxytag="NL3D::CPSEmitterOmni::processRegularEmissionConsistentWithNoLOD" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>ellapsedTime</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>realEllapsedTimeRatio</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +hmm some code factorisation would do no harm, but we want to keep tests outside the loops as much as possible...<p> +is there an emission delay ?<p> +compute the number of emissions<p> +compute the position of the emitter for the needed dates<p> +process each emission at the right pos at the right date <p> +compute the position of the emitter for the needed date<p> +process each emission at the right pos at the right date <p> +is there an emission delay ?<p> +compute the position of the emitter for the needed date<p> +process each emission at the right pos at the right date <p> +compute the position of the emitter for the needed date<p> +process each emission at the right pos at the right date +<p> +Test if 'make' filled our buffer. If this is not the case, we assume that values where precomputed, and that all null period have already been replaced by the threshold<p> +Must ensure phase is valid if period decrease over time<p> +Must ensure phase is valid if period decrease over time<p> +Must ensure phase is valid if period decrease over time<p> +Must ensure phase is valid if period decrease over time +<p> +Definition at line <a class="el" href="a06229.html#l01426">1426</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00352">NL3D::CPSEmitter::_EmitDelay</a>, <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, <a class="el" href="a06230.html#l00353">NL3D::CPSEmitter::_MaxEmissionCount</a>, <a class="el" href="a06230.html#l00344">NL3D::CPSEmitter::_NumEmission</a>, <a class="el" href="a06230.html#l00348">NL3D::CPSEmitter::_Period</a>, <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>, <a class="el" href="a06230.html#l00343">NL3D::CPSEmitter::_Phase</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< T >::begin()</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< float >::begin()</a>, <a class="el" href="a06229.html#l00041">NL3D::EMIT_PERIOD_THRESHOLD</a>, <a class="el" href="a06229.html#l00040">NL3D::EMITTER_BUFF_SIZE</a>, <a class="el" href="a06229.html#l00901">NL3D::GenEmitterPositions()</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_1">NL3D::CPSAttribMaker< uint32 >::get()</a>, <a class="el" href="a06214.html#l00217">NL3D::CPSAttribMaker< float >::getMaxValue()</a>, <a class="el" href="a06214.html#l00215">NL3D::CPSAttribMaker< float >::getMinValue()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a06143.html#l00992">NL3D::CParticleSystem::isEmitThresholdEnabled()</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_2">NL3D::CPSAttribMaker< float >::make()</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a06229.html#l00247">NL3D::CPSEmitter::processEmitConsistent()</a>, <a class="el" href="a06229.html#l00052">NL3D::replaceNullPeriodsByThreshold()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. +<p> +<div class="fragment"><pre>01427 { +01429 +01430 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +01431 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()); +01432 <span class="comment">//</span> +01433 <span class="keyword">const</span> <span class="keywordtype">bool</span> emitThreshold = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->isEmitThresholdEnabled(); +01434 <span class="comment">//</span> +01435 +01436 +01437 <span class="keyword">static</span> std::vector<NLMISC::CVector> emitterPositions; +01438 <span class="comment">// Positions for the emitter. They are computed by using a parametric trajectory or by using integration</span> +01439 +01440 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a> = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize(); +01441 <a class="code" href="a04558.html#a15">uint</a> leftToDo = <a class="code" href="a04223.html#a587">size</a>, toProcess; +01442 <span class="keywordtype">float</span> emitPeriod[<a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a>]; +01443 <span class="keyword">const</span> <span class="keywordtype">float</span> *currEmitPeriod; +01444 <a class="code" href="a04558.html#a15">uint</a> currEmitPeriodPtrInc = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a> ? 1 : 0; +01445 <a class="code" href="a04558.html#a10">sint32</a> nbToGenerate; +01446 +01447 +01448 TPSAttribTime::iterator phaseIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(), endPhaseIt; +01449 TPSAttribUInt8::iterator numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.begin(); +01450 +01451 <span class="comment">// we don't use an iterator here</span> +01452 <span class="comment">// because it could be invalidated if size change (a located could generate itself) </span> +01453 <span class="keywordflow">do</span> +01454 { +01455 toProcess = leftToDo < <a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a> ? leftToDo : <a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a>; +01456 +01457 +01458 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>) +01459 { +01460 currEmitPeriod = (<span class="keywordtype">float</span> *) (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->make(_Owner, size - leftToDo, emitPeriod, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), toProcess, <span class="keyword">true</span>)); +01461 <span class="keywordflow">if</span> (emitThreshold) +01462 { +01463 +01467 <span class="keywordflow">if</span> (currEmitPeriod == emitPeriod) +01468 { +01469 <span class="comment">// if there possibility to have 0 in the scheme ?</span> +01470 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->getMinValue() <= 0.f && <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->getMaxValue() >= 0.f) +01471 { +01472 <a class="code" href="a05363.html#a481">replaceNullPeriodsByThreshold</a>(emitPeriod, toProcess); +01473 } +01474 } +01475 } +01476 } +01477 <span class="keywordflow">else</span> +01478 { +01479 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a> != 0.f || !emitThreshold) +01480 { +01481 currEmitPeriod = &<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a>; +01482 } +01483 <span class="keywordflow">else</span> +01484 { +01485 currEmitPeriod = &<a class="code" href="a05363.html#a240">EMIT_PERIOD_THRESHOLD</a>; +01486 } +01487 } +01488 +01489 endPhaseIt = phaseIt + toProcess; +01490 +01491 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a> == 0) <span class="comment">// no emission count limit</span> +01492 { +01494 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> == 0.f) <span class="comment">// no emission delay</span> +01495 { +01496 <span class="keywordflow">do</span> +01497 { +01498 *phaseIt += ellapsedTime; +01499 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod) <span class="comment">// phase is greater than period -> must emit</span> +01500 { +01501 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +01502 { +01505 *phaseIt = <a class="code" href="a04061.html#a0">std::min</a>(*phaseIt, *currEmitPeriod + ellapsedTime); +01506 <span class="comment">//</span> +01508 <span class="comment"></span> <a class="code" href="a04558.html#a15">uint</a> numEmissions = (<a class="code" href="a04558.html#a15">uint</a>) ::floorf(*phaseIt / *currEmitPeriod); +01509 *phaseIt -= *currEmitPeriod * numEmissions; +01510 <span class="keywordtype">float</span> deltaT = std::max(0.f, *phaseIt); +01511 <span class="comment">//nlassert(deltaT >= 0.f);</span> +01512 <a class="code" href="a04558.html#a15">uint</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01513 +01515 numEmissions = <a class="code" href="a05363.html#a483">GenEmitterPositions</a>(_Owner, +01516 _EmittedType, +01517 emitterIndex, +01518 numEmissions, +01519 deltaT, +01520 *currEmitPeriod, +01521 emitterPositions +01522 ); +01523 +01525 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01526 <a class="code" href="a04558.html#a15">uint</a> k = numEmissions; +01527 <span class="keywordflow">do</span> +01528 { +01529 --k; +01530 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a>(emitterPositions[k], +01531 emitterIndex, +01532 nbToGenerate, +01533 deltaT, +01534 ellapsedTime, +01535 realEllapsedTimeRatio); +01536 deltaT += *currEmitPeriod; +01537 } +01538 <span class="keywordflow">while</span> (k); +01539 } +01540 <span class="keywordflow">else</span> +01541 { +01542 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> emitterIndex = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +01543 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01544 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(emitterIndex, nbToGenerate); +01545 } +01546 } +01547 +01548 ++phaseIt; +01549 currEmitPeriod += currEmitPeriodPtrInc; +01550 } +01551 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +01552 } +01553 <span class="keywordflow">else</span> <span class="comment">// thhere's an emission delay</span> +01554 { +01555 <span class="keywordflow">do</span> +01556 { +01557 *phaseIt += ellapsedTime; +01558 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) <span class="comment">// phase is greater than period -> must emit</span> +01559 { +01560 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +01561 { +01564 *phaseIt = <a class="code" href="a04061.html#a0">std::min</a>(*phaseIt, *currEmitPeriod + ellapsedTime + _EmitDelay); +01565 <span class="comment">//</span> +01566 <a class="code" href="a04558.html#a15">uint</a> numEmissions = (<a class="code" href="a04558.html#a15">uint</a>) ::floorf((*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) / *currEmitPeriod); +01567 *phaseIt -= *currEmitPeriod * numEmissions; +01568 <span class="keywordtype">float</span> deltaT = std::max(*phaseIt - _EmitDelay, 0.f); +01569 <span class="comment">//nlassert(deltaT >= 0.f);</span> +01570 +01571 <a class="code" href="a04558.html#a15">uint</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01573 numEmissions = <a class="code" href="a05363.html#a483">GenEmitterPositions</a>(_Owner, +01574 _EmittedType, +01575 emitterIndex, +01576 numEmissions, +01577 deltaT, +01578 *currEmitPeriod, +01579 emitterPositions +01580 ); +01582 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01583 <a class="code" href="a04558.html#a15">uint</a> k = numEmissions; +01584 <span class="keywordflow">do</span> +01585 { +01586 --k; +01587 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a>(emitterPositions[k], +01588 emitterIndex, +01589 nbToGenerate, +01590 deltaT, +01591 ellapsedTime, +01592 realEllapsedTimeRatio); +01593 deltaT += *currEmitPeriod; +01594 } +01595 <span class="keywordflow">while</span> (k); +01596 } +01597 <span class="keywordflow">else</span> +01598 { +01599 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> emitterIndex = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +01600 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01601 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(emitterIndex, nbToGenerate); +01602 } +01603 } +01604 +01605 ++phaseIt; +01606 currEmitPeriod += currEmitPeriodPtrInc; +01607 } +01608 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +01609 } +01610 } +01611 <span class="keywordflow">else</span> <span class="comment">// there's an emission count limit</span> +01612 { +01614 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> == 0.f) <span class="comment">// no emission delay</span> +01615 { +01616 <span class="keywordflow">do</span> +01617 { +01618 <span class="keywordflow">if</span> (*numEmitIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) +01619 { +01620 *phaseIt += ellapsedTime; +01621 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod) <span class="comment">// phase is greater than period -> must emit</span> +01622 { +01623 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +01624 { +01627 *phaseIt = <a class="code" href="a04061.html#a0">std::min</a>(*phaseIt, *currEmitPeriod + ellapsedTime); +01628 <span class="comment">//</span> +01629 <a class="code" href="a04558.html#a15">uint</a> numEmissions = (<a class="code" href="a04558.html#a15">uint</a>) ::floorf(*phaseIt / *currEmitPeriod); +01630 *numEmitIt += numEmissions; +01631 *phaseIt -= *currEmitPeriod * numEmissions; +01632 <span class="keywordtype">float</span> deltaT = std::max(*phaseIt, 0.f); +01633 <span class="comment">//nlassert(deltaT >= 0.f);</span> +01634 <a class="code" href="a04558.html#a15">uint</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01635 <span class="keywordflow">if</span> (*numEmitIt > <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) <span class="comment">// make sure we don't go over the emission limit</span> +01636 { +01637 numEmissions -= *numEmitIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +01638 *numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +01639 } +01641 numEmissions = <a class="code" href="a05363.html#a483">GenEmitterPositions</a>(_Owner, +01642 _EmittedType, +01643 emitterIndex, +01644 numEmissions, +01645 deltaT, +01646 *currEmitPeriod, +01647 emitterPositions +01648 ); +01649 <a class="code" href="a04558.html#a15">uint</a> k = numEmissions; +01651 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01652 <span class="keywordflow">do</span> +01653 { +01654 --k; +01655 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a>(emitterPositions[k], +01656 emitterIndex, +01657 nbToGenerate, +01658 deltaT, +01659 ellapsedTime, +01660 realEllapsedTimeRatio); +01661 deltaT += *currEmitPeriod; +01662 } +01663 <span class="keywordflow">while</span> (k); +01664 } +01665 <span class="keywordflow">else</span> +01666 { +01667 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01668 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01669 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(emitterIndex, nbToGenerate); +01670 ++*numEmitIt; +01671 } +01672 } +01673 } +01674 ++phaseIt; +01675 currEmitPeriod += currEmitPeriodPtrInc; +01676 ++ numEmitIt; +01677 } +01678 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +01679 } +01680 <span class="keywordflow">else</span> <span class="comment">// there's an emission delay</span> +01681 { +01682 <span class="keywordflow">do</span> +01683 { +01684 <span class="keywordflow">if</span> (*numEmitIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) +01685 { +01686 *phaseIt += ellapsedTime; +01687 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) <span class="comment">// phase is greater than period -> must emit</span> +01688 { +01689 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +01690 { +01693 *phaseIt = <a class="code" href="a04061.html#a0">std::min</a>(*phaseIt, *currEmitPeriod + ellapsedTime + _EmitDelay); +01694 <span class="comment">//</span> +01695 <a class="code" href="a04558.html#a15">uint</a> numEmissions = (<a class="code" href="a04558.html#a15">uint</a>) ::floorf((*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) / *currEmitPeriod); +01696 *numEmitIt += numEmissions; +01697 *phaseIt -= *currEmitPeriod * numEmissions; +01698 <span class="keywordtype">float</span> deltaT = std::max(*phaseIt - _EmitDelay, 0.f); +01699 <span class="comment">//nlassert(deltaT >= 0.f);</span> +01700 <a class="code" href="a04558.html#a15">uint</a> emitterIndex = phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(); +01701 <span class="keywordflow">if</span> (*numEmitIt > <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) <span class="comment">// make sure we don't go over the emission limit</span> +01702 { +01703 numEmissions -= *numEmitIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +01704 *numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +01705 } +01707 numEmissions = <a class="code" href="a05363.html#a483">GenEmitterPositions</a>(_Owner, +01708 _EmittedType, +01709 emitterIndex, +01710 numEmissions, +01711 deltaT, +01712 *currEmitPeriod, +01713 emitterPositions +01714 ); +01715 <a class="code" href="a04558.html#a15">uint</a> k = numEmissions; +01717 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01718 <span class="keywordflow">do</span> +01719 { +01720 --k; +01721 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb9">processEmitConsistent</a>(emitterPositions[k], +01722 emitterIndex, +01723 nbToGenerate, +01724 deltaT, +01725 ellapsedTime, +01726 realEllapsedTimeRatio); +01727 deltaT += *currEmitPeriod; +01728 } +01729 <span class="keywordflow">while</span> (k); +01730 } +01731 <span class="keywordflow">else</span> +01732 { +01733 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> emitterIndex = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +01734 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, emitterIndex) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +01735 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(emitterIndex, nbToGenerate); +01736 ++*numEmitIt; +01737 } +01738 } +01739 } +01740 ++phaseIt; +01741 currEmitPeriod += currEmitPeriodPtrInc; +01742 ++numEmitIt; +01743 } +01744 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +01745 } +01746 } +01747 +01748 leftToDo -= toProcess; +01749 } +01750 <span class="keywordflow">while</span> (leftToDo); +01751 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb13" doxytag="NL3D::CPSEmitterOmni::processRegularEmissionWithNoLOD" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::processRegularEmissionWithNoLOD </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname1" valign="top" nowrap> <em>ellapsedTime</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +is there an emission delay ?<p> +is there an emission delay ? +<p> +Test if 'make' filled our buffer. If this is not the case, we assume that values where precomputed, and that all null period have already been replaced by the threshold +<p> +Definition at line <a class="el" href="a06229.html#l00500">500</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00352">NL3D::CPSEmitter::_EmitDelay</a>, <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, <a class="el" href="a06230.html#l00353">NL3D::CPSEmitter::_MaxEmissionCount</a>, <a class="el" href="a06230.html#l00344">NL3D::CPSEmitter::_NumEmission</a>, <a class="el" href="a06230.html#l00348">NL3D::CPSEmitter::_Period</a>, <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>, <a class="el" href="a06230.html#l00343">NL3D::CPSEmitter::_Phase</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< T >::begin()</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< float >::begin()</a>, <a class="el" href="a06229.html#l00041">NL3D::EMIT_PERIOD_THRESHOLD</a>, <a class="el" href="a06229.html#l00040">NL3D::EMITTER_BUFF_SIZE</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_1">NL3D::CPSAttribMaker< uint32 >::get()</a>, <a class="el" href="a06214.html#l00217">NL3D::CPSAttribMaker< float >::getMaxValue()</a>, <a class="el" href="a06214.html#l00215">NL3D::CPSAttribMaker< float >::getMinValue()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a06143.html#l00992">NL3D::CParticleSystem::isEmitThresholdEnabled()</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_2">NL3D::CPSAttribMaker< float >::make()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a06229.html#l00052">NL3D::replaceNullPeriodsByThreshold()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. +<p> +<div class="fragment"><pre>00501 { +00502 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +00503 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()); +00504 <span class="comment">//</span> +00505 <span class="keyword">const</span> <span class="keywordtype">bool</span> emitThreshold = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->isEmitThresholdEnabled(); +00506 <span class="comment">//</span> +00507 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a> = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize(); +00508 <a class="code" href="a04558.html#a15">uint</a> leftToDo = <a class="code" href="a04223.html#a587">size</a>, toProcess; +00509 <span class="keywordtype">float</span> emitPeriod[<a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a>]; +00510 <span class="keyword">const</span> <span class="keywordtype">float</span> *currEmitPeriod; +00511 <a class="code" href="a04558.html#a15">uint</a> currEmitPeriodPtrInc = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a> ? 1 : 0; +00512 <a class="code" href="a04558.html#a10">sint32</a> nbToGenerate; +00513 +00514 TPSAttribTime::iterator phaseIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(), endPhaseIt; +00515 TPSAttribUInt8::iterator numEmitIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.begin(); +00516 +00517 <span class="comment">// we don't use an iterator here</span> +00518 <span class="comment">// because it could be invalidated if size change (a located could generate itself) </span> +00519 <span class="keywordflow">do</span> +00520 { +00521 toProcess = leftToDo < <a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a> ? leftToDo : <a class="code" href="a05363.html#a239">EMITTER_BUFF_SIZE</a>; +00522 +00523 +00524 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>) +00525 { +00526 currEmitPeriod = (<span class="keywordtype">float</span> *) (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->make(_Owner, size - leftToDo, emitPeriod, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), toProcess, <span class="keyword">true</span>)); +00527 <span class="keywordflow">if</span> (emitThreshold) +00528 { +00529 +00533 <span class="keywordflow">if</span> (currEmitPeriod == emitPeriod) +00534 { +00535 <span class="comment">// if there possibility to have 0 in the scheme ?</span> +00536 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->getMinValue() <= 0.f && <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>->getMaxValue() >= 0.f) +00537 { +00538 <a class="code" href="a05363.html#a481">replaceNullPeriodsByThreshold</a>(emitPeriod, toProcess); +00539 } +00540 } +00541 } +00542 } +00543 <span class="keywordflow">else</span> +00544 { +00545 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a> != 0.f || !emitThreshold) +00546 { +00547 currEmitPeriod = &<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a>; +00548 } +00549 <span class="keywordflow">else</span> +00550 { +00551 currEmitPeriod = &<a class="code" href="a05363.html#a240">EMIT_PERIOD_THRESHOLD</a>; +00552 } +00553 } +00554 +00555 endPhaseIt = phaseIt + toProcess; +00556 +00557 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a> == 0) <span class="comment">// no emission count limit</span> +00558 { +00560 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> == 0.f) <span class="comment">// no emission delay</span> +00561 { +00562 <span class="keywordflow">do</span> +00563 { +00564 *phaseIt += ellapsedTime; +00565 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod) <span class="comment">// phase is greater than period -> must emit</span> +00566 { +00567 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +00568 { +00569 *phaseIt -= ::floorf(*phaseIt / *currEmitPeriod) * *currEmitPeriod; +00570 } +00571 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> k = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +00572 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, k) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00573 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(k, nbToGenerate); +00574 } +00575 +00576 ++phaseIt; +00577 currEmitPeriod += currEmitPeriodPtrInc; +00578 } +00579 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +00580 } +00581 <span class="keywordflow">else</span> <span class="comment">// there's an emission delay</span> +00582 { +00583 <span class="keywordflow">do</span> +00584 { +00585 *phaseIt += ellapsedTime; +00586 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) <span class="comment">// phase is greater than period -> must emit</span> +00587 { +00588 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +00589 { +00590 *phaseIt -= ::floorf((*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) / *currEmitPeriod) * *currEmitPeriod; +00591 } +00592 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> k = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +00593 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, k) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00594 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(k, nbToGenerate); +00595 } +00596 +00597 ++phaseIt; +00598 currEmitPeriod += currEmitPeriodPtrInc; +00599 } +00600 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +00601 } +00602 } +00603 <span class="keywordflow">else</span> <span class="comment">// there's an emission count limit</span> +00604 { +00606 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> == 0.f) <span class="comment">// no emission delay</span> +00607 { +00608 <span class="keywordflow">do</span> +00609 { +00610 <span class="keywordflow">if</span> (*numEmitIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) +00611 { +00612 *phaseIt += ellapsedTime; +00613 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod) <span class="comment">// phase is greater than period -> must emit</span> +00614 { +00615 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +00616 { +00617 *phaseIt -= ::floorf(*phaseIt / *currEmitPeriod) * *currEmitPeriod; +00618 } +00619 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> k = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +00620 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, k) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00621 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(k, nbToGenerate); +00622 ++*numEmitIt; +00623 } +00624 } +00625 ++phaseIt; +00626 currEmitPeriod += currEmitPeriodPtrInc; +00627 ++ numEmitIt; +00628 } +00629 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +00630 } +00631 <span class="keywordflow">else</span> <span class="comment">// there's an emission delay</span> +00632 { +00633 <span class="keywordflow">do</span> +00634 { +00635 <span class="keywordflow">if</span> (*numEmitIt < <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) +00636 { +00637 *phaseIt += ellapsedTime; +00638 <span class="keywordflow">if</span> ( *phaseIt >= *currEmitPeriod + <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) <span class="comment">// phase is greater than period -> must emit</span> +00639 { +00640 <span class="keywordflow">if</span> (*currEmitPeriod != 0) +00641 { +00642 *phaseIt -= ::floorf((*phaseIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a>) / *currEmitPeriod) * *currEmitPeriod; +00643 } +00644 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> k = phaseIt - (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()); +00645 nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, k) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00646 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(k, nbToGenerate); +00647 ++*numEmitIt; +00648 } +00649 } +00650 ++phaseIt; +00651 currEmitPeriod += currEmitPeriodPtrInc; +00652 ++numEmitIt; +00653 } +00654 <span class="keywordflow">while</span> (phaseIt != endPhaseIt); +00655 } +00656 } +00657 +00658 leftToDo -= toProcess; +00659 } +00660 <span class="keywordflow">while</span> (leftToDo); +00661 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera57" doxytag="NL3D::CPSEmitterOmni::releaseAllRef" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::releaseAllRef </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Release any reference this obj may have to other process of the system For example, this is used when detaching a located bindable from a system. +<p> +Reimplemented from <a class="el" href="a02691.html#NL3D_1_1CPSTailDota47">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06229.html#l00104">104</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06229.html#l00361">NL3D::CPSEmitter::setEmittedType()</a>. +<p> +<div class="fragment"><pre>00105 { +00106 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera65">setEmittedType</a>(NULL); +00107 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera58" doxytag="NL3D::CPSEmitterOmni::releaseRefTo" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::releaseRefTo </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03054.html">CParticleSystemProcess</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>other</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Release any reference this obj may have on the given process. For example, this is used when detaching a located bindable from a system. +<p> +Reimplemented from <a class="el" href="a02691.html#NL3D_1_1CPSTailDota48">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06229.html#l00096">96</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, and <a class="el" href="a06229.html#l00361">NL3D::CPSEmitter::setEmittedType()</a>. +<p> +<div class="fragment"><pre>00097 { +00098 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a> == other) +00099 { +00100 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera65">setEmittedType</a>(NULL); +00101 } +00102 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSEmitterOmnib14" doxytag="NL3D::CPSEmitterOmni::resize" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitterOmni::resize </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>capacity</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Reimplemented from <a class="el" href="a03179.html#NL3D_1_1CPSEmitterb12">NL3D::CPSEmitter</a>. +<p> +Definition at line <a class="el" href="a06229.html#l02244">2244</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06230.html#l00434">NL3D::CPSModulatedEmitter::resizeEmitteeSpeed()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>02245 { +02246 <a class="code" href="a04199.html#a6">nlassert</a>(capacity < (1 << 16)); +02247 CPSEmitter::resize(capacity); +02248 <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterb15">resizeEmitteeSpeed</a>(capacity); +02249 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb15" doxytag="NL3D::CPSEmitterOmni::resizeEmitteeSpeed" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSModulatedEmitter::resizeEmitteeSpeed </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>capacity</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00434">434</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00441">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a>, <a class="el" href="a03182.html#NL3D_1_1CPSModulatedEmitterb1">NL3D::CPSModulatedEmitter::getModulatedEmitterOwner()</a>, <a class="el" href="a06214.html#l00282">NL3D::CPSAttribMaker< float >::hasMemory()</a>, <a class="el" href="a06214.html#l00296">NL3D::CPSAttribMaker< float >::resize()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06229.html#l02555">NL3D::CPSSphericalEmitter::resize()</a>, <a class="el" href="a06229.html#l02380">NL3D::CPSEmitterRectangle::resize()</a>, <a class="el" href="a06229.html#l02277">NL3D::CPSEmitterDirectionnal::resize()</a>, and <a class="el" href="a06229.html#l02244">resize()</a>. +<p> +<div class="fragment"><pre>00435 { +00436 <span class="keywordflow">if</span> (<a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a> && <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>->hasMemory()) <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>->resize(capacity, <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnib4">getModulatedEmitterOwner</a>()->getSize()); +00437 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSEmitterOmnia55" doxytag="NL3D::CPSEmitterOmni::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitterOmni::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> throw (<a class="el" href="a03781.html">NLMISC::EStream</a>)<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Reimplemented from <a class="el" href="a03179.html#NL3D_1_1CPSEmittera49">NL3D::CPSEmitter</a>. +<p> +Definition at line <a class="el" href="a06229.html#l02222">2222</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +<div class="fragment"><pre>02223 { +02224 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a>(1); +02225 CPSEmitter::serial(f); +02226 CPSModulatedEmitter::serialEmitteeSpeedScheme(f); +02227 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera60" doxytag="NL3D::CPSEmitterOmni::serialEmitteeSpeedScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSModulatedEmitter::serialEmitteeSpeedScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> throw (<a class="el" href="a03781.html">NLMISC::EStream</a>)<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +serialization +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l02180">2180</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +<div class="fragment"><pre>02181 { +02182 <span class="keywordtype">bool</span> useScheme; +02183 <span class="keywordflow">if</span> (!f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +02184 { +02185 useScheme = <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmittera90">useEmitteeSpeedScheme</a>(); +02186 } +02187 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(useScheme); +02188 <span class="keywordflow">if</span> (useScheme) +02189 { +02190 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_6">serialPolyPtr</a>(_EmitteeSpeedScheme); +02191 } +02192 <span class="keywordflow">else</span> +02193 { +02194 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_EmitteeSpeed); +02195 } +02196 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea49" doxytag="NL3D::CPSEmitterOmni::setActive" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSLocatedBindable::setActive </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>active</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Activate / Deactivate this object. When not active, the owning system won't try to call the 'step' method. +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00843">843</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06247.html#l01033">NL3D::CPSLocatedBindable::_Active</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01718">NL3D::CParticleSystem::activateEmitters()</a>, and <a class="el" href="a06144.html#l00320">NL3D::CParticleSystemInstanceUser::setActive()</a>. +<p> +<div class="fragment"><pre>00843 { <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep0">_Active</a> = active; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera62" doxytag="NL3D::CPSEmitterOmni::setBypassAutoLOD" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setBypassAutoLOD </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>bypass</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00251">251</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00356">NL3D::CPSEmitter::_BypassAutoLOD</a>. +<p> +<div class="fragment"><pre>00251 { <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp1">_BypassAutoLOD</a> = bypass; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittere0" doxytag="NL3D::CPSEmitterOmni::setBypassEmitOnDeath" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setBypassEmitOnDeath </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>bypass</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, static, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For edition only : avoid that a call to <a class="el" href="a03214.html#NL3D_1_1CPSLocateda8">CPSLocated::deleteElement()</a> causes emitters flagged with 'emitOnDeath' to emit +<p> +Definition at line <a class="el" href="a06230.html#l00256">256</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06229.html#l00042">NL3D::CPSEmitter::_BypassEmitOnDeath</a>. +<p> +<div class="fragment"><pre>00256 { <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittert0">_BypassEmitOnDeath</a> = bypass; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera63" doxytag="NL3D::CPSEmitterOmni::setEmissionType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::setEmissionType </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">TEmissionType</a> </td> + <td class="mdname1" valign="top" nowrap> <em>freqType</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Set the frequency type. Please note that if the type is externEmit, this located need to have been attached to the system (the system is holding the ID-Located map) <dl compact><dt><b>Returns:</b></dt><dd>true if the operation could be performed. It can fail when this cause the system the system to last forever, which is incompatible with the 'BypassMaxNumIntegrationSteps' in <a class="el" href="a03041.html">CParticleSystem</a></dd></dl> + +<p> +Definition at line <a class="el" href="a06229.html#l00326">326</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00347">NL3D::CPSEmitter::_EmissionType</a>, <a class="el" href="a06143.html#l00538">NL3D::CParticleSystem::getBypassMaxNumIntegrationSteps()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06142.html#l01521">NL3D::CParticleSystem::systemDurationChanged()</a>, <a class="el" href="a06230.html#l00109">NL3D::CPSEmitter::TEmissionType</a>, <a class="el" href="a06229.html#l02148">NL3D::CPSEmitter::testEmitForever()</a>, and <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>. +<p> +<div class="fragment"><pre>00327 { +00328 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()) +00329 { +00330 CParticleSystem *ps = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner(); +00331 <span class="keywordflow">if</span> (ps->getBypassMaxNumIntegrationSteps()) +00332 { +00333 <span class="keywordflow">if</span> (!<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>) +00334 { +00335 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"<CPSEmitter::setEmissionType> The emitter should be inserted in a CPSLocated instance"</span>); +00336 <a class="code" href="a04199.html#a6">nlassert</a>(0); +00337 } +00338 <span class="comment">// check if the new value is valid</span> +00339 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">TEmissionType</a> oldType = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp3">_EmissionType</a>; +00340 _EmissionType = freqType; +00341 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera89">testEmitForever</a>() == <span class="keyword">true</span>) +00342 { +00343 _EmissionType = oldType; +00344 std::string mess = <span class="stringliteral">"<CPSEmitter::setEmissionType> can't set emission type to '"</span> + +00345 <a class="code" href="a05378.html#a244">NLMISC::toString</a>(freqType) + +00346 <span class="stringliteral">"' with the current configuration : the system has been flagged with \</span> +00347 <span class="stringliteral"> 'BypassMaxNumIntegrationSteps', and should have a finite duration. \</span> +00348 <span class="stringliteral"> The flag is not set"</span>; +00349 <a class="code" href="a04199.html#a2">nlwarning</a>(mess.c_str()); +00350 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00351 +00352 } +00353 } +00354 ps->systemDurationChanged(); +00355 } +00356 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp3">_EmissionType</a> = freqType; +00357 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00358 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera64" doxytag="NL3D::CPSEmitterOmni::setEmitDelay" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setEmitDelay </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>delay</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l02080">2080</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00352">NL3D::CPSEmitter::_EmitDelay</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, and <a class="el" href="a06142.html#l01521">NL3D::CParticleSystem::systemDurationChanged()</a>. +<p> +<div class="fragment"><pre>02081 { +02082 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">_EmitDelay</a> = delay; +02083 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()) +02084 { +02085 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->systemDurationChanged(); +02086 } +02087 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera65" doxytag="NL3D::CPSEmitterOmni::setEmittedType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::setEmittedType </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03214.html">CPSLocated</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>et</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Set the type of located to be emitted. The default is NULL which mean that no emission will occur <dl compact><dt><b>Returns:</b></dt><dd>true if the operation could be performed. It can fail when this cause the system the system to last forever, which is incompatible with the 'BypassMaxNumIntegrationSteps' in <a class="el" href="a03041.html">CParticleSystem</a></dd></dl> + +<p> +Definition at line <a class="el" href="a06229.html#l00361">361</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a06142.html#l01462">NL3D::CParticleSystem::canFinish()</a>, <a class="el" href="a06143.html#l00538">NL3D::CParticleSystem::getBypassMaxNumIntegrationSteps()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06246.html#l00824">NL3D::CPSLocated::registerDtorObserver()</a>, <a class="el" href="a06142.html#l01521">NL3D::CParticleSystem::systemDurationChanged()</a>, and <a class="el" href="a06246.html#l00834">NL3D::CPSLocated::unregisterDtorObserver()</a>. +<p> +Referenced by <a class="el" href="a06229.html#l00394">NL3D::CPSEmitter::notifyTargetRemoved()</a>, <a class="el" href="a06229.html#l00104">NL3D::CPSEmitter::releaseAllRef()</a>, and <a class="el" href="a06229.html#l00096">NL3D::CPSEmitter::releaseRefTo()</a>. +<p> +<div class="fragment"><pre>00362 { +00363 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>) +00364 { +00365 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>->unregisterDtorObserver(<span class="keyword">this</span>); +00366 } +00367 <span class="keywordflow">if</span> (et) +00368 { +00369 et->registerDtorObserver(<span class="keyword">this</span>); +00370 } +00371 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpheren0">CPSLocated</a> *oldType = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>; +00372 _EmittedType = et; +00373 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()) +00374 { +00375 CParticleSystem *ps = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner(); +00376 <span class="keywordflow">if</span> (_EmittedType) +00377 { +00378 <span class="keywordflow">if</span> (ps->getBypassMaxNumIntegrationSteps()) +00379 { +00380 <span class="keywordflow">if</span> (!ps->canFinish()) +00381 { +00382 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera65">setEmittedType</a>(oldType); +00383 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"<CPSLocated::setEmittedType> Can't set new emitted type : this causes the system to last forever, and it has been flagged with 'BypassMaxNumIntegrationSteps'. New emitted type is not set"</span>); +00384 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00385 } +00386 } +00387 } +00388 ps->systemDurationChanged(); +00389 } +00390 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00391 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera66" doxytag="NL3D::CPSEmitterOmni::setEmitteeSpeed" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSModulatedEmitter::setEmitteeSpeed </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>speed</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +set a constant speed modulation for emittee +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00396">396</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00440">NL3D::CPSModulatedEmitter::_EmitteeSpeed</a>, and <a class="el" href="a06230.html#l00441">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a>. +<p> +<div class="fragment"><pre>00397 { +00398 <span class="keyword">delete</span> <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>; +00399 <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a> = NULL; +00400 <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp6">_EmitteeSpeed</a> = speed; +00401 +00402 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera67" doxytag="NL3D::CPSEmitterOmni::setEmitteeSpeedScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSModulatedEmitter::setEmitteeSpeedScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03136.html">CPSAttribMaker</a>< float > * </td> + <td class="mdname1" valign="top" nowrap> <em>scheme</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set a new scheme for speed modulation. It must have been allocated with new, and will be destriyed by this object +<p> +Definition at line <a class="el" href="a06230.html#l00387">387</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00441">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a>, <a class="el" href="a03182.html#NL3D_1_1CPSModulatedEmitterb1">NL3D::CPSModulatedEmitter::getModulatedEmitterOwner()</a>, and <a class="el" href="a06214.html#l00296">NL3D::CPSAttribMaker< T >::resize()</a>. +<p> +<div class="fragment"><pre>00388 { +00389 <span class="keyword">delete</span> <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a>; +00390 <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a> = scheme; +00391 <span class="keywordflow">if</span> (<a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnib4">getModulatedEmitterOwner</a>() && scheme->hasMemory()) +00392 scheme->resize(<a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnib4">getModulatedEmitterOwner</a>()->getMaxSize(), <a class="code" href="a03183.html#NL3D_1_1CPSEmitterOmnib4">getModulatedEmitterOwner</a>()->getSize()); +00393 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea52" doxytag="NL3D::CPSEmitterOmni::setExternID" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSLocatedBindable::setExternID </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>id</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +*************************************************************************************** +<p> +set the extern ID of this located bindable. 0 means no extern access. The map of ID-locatedBindable. Is in th particle system, so this located bindable must have been attached to a particle system, otherwise an assertion is raised +<p> +Definition at line <a class="el" href="a06246.html#l02149">2149</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a06247.html#l01027">NL3D::CPSLocatedBindable::_ExternID</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06142.html#l01081">NL3D::CParticleSystem::registerLocatedBindableExternID()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a06142.html#l01096">NL3D::CParticleSystem::unregisterLocatedBindableExternID()</a>. +<p> +<div class="fragment"><pre>02150 { +02151 <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep3">_ExternID</a>) <span class="keywordflow">return</span>; +02152 CParticleSystem *ps = NULL; +02153 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()) +02154 { +02155 ps = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner(); +02156 } +02157 <span class="keywordflow">if</span> (ps) +02158 { +02159 ps->unregisterLocatedBindableExternID(<span class="keyword">this</span>); +02160 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep3">_ExternID</a> = 0; +02161 } +02162 <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != 0) +02163 { +02164 <span class="keywordflow">if</span> (ps) ps->registerLocatedBindableExternID(<span class="keywordtype">id</span>, <span class="keyword">this</span>); +02165 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep3">_ExternID</a> = <span class="keywordtype">id</span>; +02166 } +02167 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera69" doxytag="NL3D::CPSEmitterOmni::setGenNb" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setGenNb </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>GenNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Set a constant number of particle to be generated at once any previous scheme is discarded +<p> +Definition at line <a class="el" href="a06229.html#l00428">428</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00429 { +00430 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>) +00431 { +00432 <span class="keyword">delete</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>; +00433 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> = NULL; +00434 } +00435 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a> = genNb; +00436 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera70" doxytag="NL3D::CPSEmitterOmni::setGenNbScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setGenNbScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03136.html">CPSAttribMaker</a>< <a class="el" href="a04558.html#a11">uint32</a> > * </td> + <td class="mdname1" valign="top" nowrap> <em>scheme</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l00439">439</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, <a class="el" href="a06247.html#l00369">NL3D::CPSLocated::getMaxSize()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, and <a class="el" href="a06214.html#l00296">NL3D::CPSAttribMaker< T >::resize()</a>. +<p> +<div class="fragment"><pre>00440 { +00441 <span class="keyword">delete</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>; +00442 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> = scheme; +00443 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && scheme->hasMemory()) scheme->resize(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMaxSize(), <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize()); +00444 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea53" doxytag="NL3D::CPSEmitterOmni::setLOD" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSLocatedBindable::setLOD </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a558">TPSLod</a> </td> + <td class="mdname1" valign="top" nowrap> <em>lod</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +set the LODs that apply to that object (warning : it is based on the position of the system, and don't act on a per instance basis ...) To have per instance precision, you must use an attribute maker that has LOD as its input +<p> +Definition at line <a class="el" href="a06247.html#l00952">952</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a06247.html#l01029">NL3D::CPSLocatedBindable::_LOD</a>. +<p> +<div class="fragment"><pre>00952 { <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep4">_LOD</a> = lod; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera73" doxytag="NL3D::CPSEmitterOmni::setMaxEmissionCount" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::setMaxEmissionCount </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> </td> + <td class="mdname1" valign="top" nowrap> <em>count</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Set a max. number of particle emission (0 means no limit and is the default). Applies with regular emitter only. NB : the emitter should be inserted in a system for this call to work <dl compact><dt><b>Returns:</b></dt><dd>true if the operation could be performed. It can fail when this cause the system the system to last forever, which is incompatible with the 'BypassMaxNumIntegrationSteps' in <a class="el" href="a03041.html">CParticleSystem</a></dd></dl> + +<p> +Definition at line <a class="el" href="a06229.html#l02090">2090</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00353">NL3D::CPSEmitter::_MaxEmissionCount</a>, <a class="el" href="a05646.html#l00240">count</a>, <a class="el" href="a06143.html#l00538">NL3D::CParticleSystem::getBypassMaxNumIntegrationSteps()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06142.html#l01521">NL3D::CParticleSystem::systemDurationChanged()</a>, <a class="el" href="a06229.html#l02148">NL3D::CPSEmitter::testEmitForever()</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a06229.html#l02059">NL3D::CPSEmitter::updateMaxCountVect()</a>. +<p> +<div class="fragment"><pre>02091 { +02092 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a577">count</a> == <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>; +02093 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()); +02094 CParticleSystem *ps = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner(); +02095 <span class="keywordflow">if</span> (ps->getBypassMaxNumIntegrationSteps()) +02096 { +02097 <a class="code" href="a04558.html#a7">uint8</a> oldEmissiontCount = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a>; +02098 <span class="comment">// should check that the new value is valid</span> +02099 _MaxEmissionCount = <a class="code" href="a04223.html#a577">count</a>; +02100 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera89">testEmitForever</a>()) +02101 { +02102 _MaxEmissionCount = oldEmissiontCount; +02103 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"<CPSEmitter::setMaxEmissionCount> can't set max emission count to %d \</span> +02104 <span class="stringliteral"> with the current configuration : the system has been flagged with \</span> +02105 <span class="stringliteral"> 'BypassMaxNumIntegrationSteps', and should have a finite duration. \</span> +02106 <span class="stringliteral"> The new value is not set"</span>, (<span class="keywordtype">int</span>) count); +02107 <span class="keywordflow">return</span> <span class="keyword">false</span>; +02108 } +02109 } +02110 ps->systemDurationChanged(); +02111 _MaxEmissionCount = <a class="code" href="a04223.html#a577">count</a>; +02112 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb16">updateMaxCountVect</a>(); +02113 <span class="keywordflow">return</span> <span class="keyword">true</span>; +02114 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea55" doxytag="NL3D::CPSEmitterOmni::setName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSLocatedBindable::setName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +set the located bindable name (edition purpose) +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l00946">946</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>00946 { <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep5">_Name</a> = name; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera76" doxytag="NL3D::CPSEmitterOmni::setOwner" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setOwner </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03214.html">CPSLocated</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>psl</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Reimplemented from <a class="el" href="a02691.html#NL3D_1_1CPSZoneSphereb7">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06229.html#l00111">111</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06229.html#l02059">NL3D::CPSEmitter::updateMaxCountVect()</a>. +<p> +<div class="fragment"><pre>00112 { +00113 CPSLocatedBindable::setOwner(psl); +00114 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb16">updateMaxCountVect</a>(); +00115 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera77" doxytag="NL3D::CPSEmitterOmni::setPeriod" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setPeriod </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>period</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Set a constant period for emission (expressed in second) any previous period scheme is discarded +<p> +Definition at line <a class="el" href="a06229.html#l00401">401</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00348">NL3D::CPSEmitter::_Period</a>, <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, and <a class="el" href="a06142.html#l01521">NL3D::CParticleSystem::systemDurationChanged()</a>. +<p> +<div class="fragment"><pre>00402 { +00403 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>) +00404 { +00405 <span class="keyword">delete</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>; +00406 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a> = NULL; +00407 } +00408 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">_Period</a> = period; +00409 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()) +00410 { +00411 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->systemDurationChanged(); +00412 } +00413 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera78" doxytag="NL3D::CPSEmitterOmni::setPeriodScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setPeriodScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03136.html">CPSAttribMaker</a>< float > * </td> + <td class="mdname1" valign="top" nowrap> <em>scheme</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l00416">416</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>, <a class="el" href="a06247.html#l00369">NL3D::CPSLocated::getMaxSize()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a06214.html#l00296">NL3D::CPSAttribMaker< T >::resize()</a>, and <a class="el" href="a06142.html#l01521">NL3D::CParticleSystem::systemDurationChanged()</a>. +<p> +<div class="fragment"><pre>00417 { +00418 <span class="keyword">delete</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a>; +00419 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a> = scheme; +00420 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && scheme->hasMemory()) scheme->resize(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMaxSize(), <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize()); +00421 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()) +00422 { +00423 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->systemDurationChanged(); +00424 } +00425 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterz733_6" doxytag="NL3D::CPSEmitterOmni::setSpeedInheritanceFactor" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setSpeedInheritanceFactor </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>fact</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set a factor, to add the emitter speed to the emittee creation speed. this can be < 0 The default is 0 +<p> +Definition at line <a class="el" href="a06230.html#l00184">184</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00346">NL3D::CPSEmitter::_SpeedInheritanceFactor</a>. +<p> +<div class="fragment"><pre>00185 { +00186 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp21">_SpeedInheritanceFactor</a> = fact; +00187 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea59" doxytag="NL3D::CPSEmitterOmni::setupDriverModelMatrix" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSLocatedBindable::setupDriverModelMatrix </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +shortcut to setup the model matrix (system basis or world basis) +<p> + +<p> +Definition at line <a class="el" href="a06246.html#l02142">2142</a> of file <a class="el" href="a06246.html">ps_located.cpp</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06246.html#l01775">NL3D::CPSLocated::setupDriverModelMatrix()</a>. +<p> +Referenced by <a class="el" href="a06246.html#l02038">NL3D::CPSLocatedBindable::displayIcon2d()</a>, <a class="el" href="a06283.html#l00242">NL3D::CPSTailDot::displayRibbons()</a>, <a class="el" href="a06277.html#l00319">NL3D::CPSRibbonLookAt::displayRibbons()</a>, <a class="el" href="a06273.html#l00471">NL3D::CPSRibbon::displayRibbons()</a>, <a class="el" href="a06226.html#l00122">NL3D::CPSDot::draw()</a>, <a class="el" href="a06231.html#l00055">NL3D::CPSFaceHelper::drawFaces()</a>, <a class="el" href="a06235.html#l00072">NL3D::CPSFanLightHelper::drawFanLight()</a>, <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>, <a class="el" href="a06233.html#l00089">NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion()</a>, <a class="el" href="a06250.html#l00521">NL3D::CPSConstraintMeshHelper::drawMeshs()</a>, <a class="el" href="a06250.html#l00793">NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs()</a>, <a class="el" href="a06287.html#l01375">NL3D::CPSZoneRectangle::show()</a>, <a class="el" href="a06287.html#l01160">NL3D::CPSZoneCylinder::show()</a>, <a class="el" href="a06287.html#l00625">NL3D::CPSZoneDisc::show()</a>, <a class="el" href="a06287.html#l00448">NL3D::CPSZoneSphere::show()</a>, <a class="el" href="a06287.html#l00140">NL3D::CPSZonePlane::show()</a>, <a class="el" href="a06239.html#l00900">NL3D::CPSCylindricVortex::show()</a>, <a class="el" href="a06239.html#l00295">NL3D::CPSDirectionnalForce::show()</a>, <a class="el" href="a06229.html#l02491">NL3D::CPSSphericalEmitter::showTool()</a>, <a class="el" href="a06229.html#l02391">NL3D::CPSEmitterRectangle::showTool()</a>, and <a class="el" href="a06229.html#l00447">NL3D::CPSEmitter::showTool()</a>. +<p> +<div class="fragment"><pre>02143 { +02144 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +02145 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->setupDriverModelMatrix(); +02146 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterz733_7" doxytag="NL3D::CPSEmitterOmni::setUserMatrixModeForEmissionDirection" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::setUserMatrixModeForEmissionDirection </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a557">TPSMatrixMode</a> </td> + <td class="mdname1" valign="top" nowrap> <em>matrixMode</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +=============================================================================== +<p> +Set the coord. system in with the direction is expressed. This value is taken in account only if enableUserMatrixModeForEmissionDirection(true) has been called. NB : if <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterz733_4">isSpeedBasisEmissionEnabled()</a> == true then this value is meaningless +<p> +Definition at line <a class="el" href="a06229.html#l02609">2609</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00358">NL3D::CPSEmitter::_UserDirectionMatrixMode</a>, <a class="el" href="a06229.html#l02634">NL3D::CPSEmitter::isUserMatrixUsed()</a>, and <a class="el" href="a06229.html#l02618">NL3D::CPSEmitter::updatePSRefCountForUserMatrixUsage()</a>. +<p> +<div class="fragment"><pre>02610 { +02611 <span class="keywordtype">bool</span> wasUserMatNeeded = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb5">isUserMatrixUsed</a>(); +02612 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp22">_UserDirectionMatrixMode</a> = matrixMode; +02613 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb17">updatePSRefCountForUserMatrixUsage</a>(<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb5">isUserMatrixUsed</a>(), wasUserMatNeeded); +02614 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea60" doxytag="NL3D::CPSEmitterOmni::setZBias" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NL3D::CPSLocatedBindable::setZBias </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>value</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a03177.html#NL3D_1_1CPSDota61">NL3D::CPSDot</a>, <a class="el" href="a03194.html#NL3D_1_1CPSFanLighta82">NL3D::CPSFanLight</a>, <a class="el" href="a03218.html#NL3D_1_1CPSMesha69">NL3D::CPSMesh</a>, <a class="el" href="a03161.html#NL3D_1_1CPSConstraintMesha88">NL3D::CPSConstraintMesh</a>, <a class="el" href="a03162.html#NL3D_1_1CPSRibbonBasea51">NL3D::CPSParticle</a>, <a class="el" href="a03187.html#NL3D_1_1CPSQuada104">NL3D::CPSQuad</a>, <a class="el" href="a03226.html#NL3D_1_1CPSRibbona75">NL3D::CPSRibbon</a>, <a class="el" href="a03230.html#NL3D_1_1CPSRibbonLookAta66">NL3D::CPSRibbonLookAt</a>, <a class="el" href="a03233.html#NL3D_1_1CPSShockWavea98">NL3D::CPSShockWave</a>, and <a class="el" href="a03240.html#NL3D_1_1CPSTailDota60">NL3D::CPSTailDot</a>. +<p> +Definition at line <a class="el" href="a06247.html#l00980">980</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +References <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00980 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSRadialEmittera80" doxytag="NL3D::CPSEmitterOmni::showTool" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::showTool </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Reimplemented in <a class="el" href="a03184.html#NL3D_1_1CPSEmitterRectanglea87">NL3D::CPSEmitterRectangle</a>, and <a class="el" href="a03238.html#NL3D_1_1CPSSphericalEmittera83">NL3D::CPSSphericalEmitter</a>. +<p> +Definition at line <a class="el" href="a06229.html#l00447">447</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06247.html#l00931">NL3D::CPSLocatedBindable::computeI()</a>, <a class="el" href="a06247.html#l00940">NL3D::CPSLocatedBindable::computeK()</a>, <a class="el" href="a06143.html#l00411">NL3D::CParticleSystem::getCurrentEditedElement()</a>, <a class="el" href="a06247.html#l00890">NL3D::CPSLocatedBindable::getDriver()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00334">NL3D::CPSLocated::getPos()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05641.html#l00064">NL3D::CMaterial::setBlend()</a>, <a class="el" href="a05641.html#l00091">NL3D::CMaterial::setBlendFunc()</a>, <a class="el" href="a05641.html#l00118">NL3D::CMaterial::setColor()</a>, <a class="el" href="a05641.html#l00127">NL3D::CMaterial::setLighting()</a>, <a class="el" href="a06246.html#l02142">NL3D::CPSLocatedBindable::setupDriverModelMatrix()</a>, <a class="el" href="a05641.html#l00099">NL3D::CMaterial::setZFunc()</a>, <a class="el" href="a05641.html#l00105">NL3D::CMaterial::setZWrite()</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. +<p> +<div class="fragment"><pre>00448 { +00449 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a587">size</a> = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize(); +00450 <span class="keywordflow">if</span> (!<a class="code" href="a04223.html#a587">size</a>) <span class="keywordflow">return</span>; +00451 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherea59">setupDriverModelMatrix</a>(); +00452 +00453 <span class="keyword">const</span> CVector I = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherea3">computeI</a>(); +00454 <span class="keyword">const</span> CVector K = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherea5">computeK</a>(); +00455 +00456 <span class="comment">// ugly slow code, but not for runtime</span> +00457 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k = 0; k < <a class="code" href="a04223.html#a587">size</a>; ++k) +00458 { +00459 <span class="comment">// center of the current particle</span> +00460 <span class="keyword">const</span> CVector p = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getPos()[k]; +00461 <span class="keyword">const</span> <span class="keywordtype">float</span> sSize =0.1f; +00462 std::vector<NLMISC::CLine> lines; +00463 <a class="code" href="a02759.html">NLMISC::CLine</a> <a class="code" href="a05373.html#a2">l</a>; +00464 <a class="code" href="a05373.html#a2">l</a>.V0 = p - sSize * I; <a class="code" href="a05373.html#a2">l</a>.V1 = p + sSize * I; lines.push_back(l); +00465 <a class="code" href="a05373.html#a2">l</a>.V0 = p - sSize * K; <a class="code" href="a05373.html#a2">l</a>.V1 = p + sSize * K; lines.push_back(l); +00466 <a class="code" href="a05373.html#a2">l</a>.V0 = p - sSize * (I + K); <a class="code" href="a05373.html#a2">l</a>.V1 = p + sSize * (I + K); lines.push_back(l); +00467 <a class="code" href="a05373.html#a2">l</a>.V0 = p - sSize * (I - K); <a class="code" href="a05373.html#a2">l</a>.V1 = p + sSize * (I - K); lines.push_back(l); +00468 +00469 CMaterial mat; +00470 mat.setBlendFunc(CMaterial::one, CMaterial::one); +00471 mat.setZWrite(<span class="keyword">false</span>); +00472 mat.setLighting(<span class="keyword">false</span>); +00473 mat.setBlend(<span class="keyword">true</span>); +00474 mat.setZFunc(CMaterial::less); +00475 +00476 +00477 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpheren0">CPSLocated</a> *loc; +00478 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a566">index</a>; +00479 <a class="code" href="a02691.html#NL3D_1_1CPSLocatedBindablez743_0">CPSLocatedBindable</a> *lb; +00480 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->getCurrentEditedElement(loc, index, lb); +00481 +00482 mat.setColor((lb == NULL || <span class="keyword">this</span> == lb) && loc == _Owner && index == k ? CRGBA::Red : <a class="code" href="a03337.html">CRGBA</a>(127, 127, 127)); +00483 +00484 +00485 CDRU::drawLinesUnlit(lines, mat, *<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherea14">getDriver</a>() ); +00486 } +00487 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera84" doxytag="NL3D::CPSEmitterOmni::singleEmit" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::singleEmit </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname" nowrap> <em>index</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>quantity</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l00490">490</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_1">NL3D::CPSAttribMaker< uint32 >::get()</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06246.html#l01051">NL3D::CPSLocated::deleteElement()</a>, and <a class="el" href="a06144.html#l00208">NL3D::CParticleSystemInstanceUser::emit()</a>. +<p> +<div class="fragment"><pre>00491 { +00492 <a class="code" href="a04199.html#a6">nlassert</a>(_Owner); +00493 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner,0) : <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a>; +00494 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(index, quantity * nbToGenerate); +00495 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera85" doxytag="NL3D::CPSEmitterOmni::step" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::step </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a556">TPSProcessPass</a> </td> + <td class="mdname" nowrap> <em>pass</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>ellapsedTime</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05363.html#a366">TAnimationTime</a> </td> + <td class="mdname" nowrap> <em>realEllapsedTime</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Process the emissions. The standard behaviuour will call "emit" each time is needed. So you don't need to redefine this most of the time +<p> +Implements <a class="el" href="a02691.html#NL3D_1_1CPSTargetLocatedBindablea46">NL3D::CPSLocatedBindable</a>. +<p> +Definition at line <a class="el" href="a06229.html#l01755">1755</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00356">NL3D::CPSEmitter::_BypassAutoLOD</a>, <a class="el" href="a06230.html#l00355">NL3D::CPSEmitter::_ConsistentEmission</a>, <a class="el" href="a06230.html#l00347">NL3D::CPSEmitter::_EmissionType</a>, <a class="el" href="a06230.html#l00339">NL3D::CPSEmitter::_EmittedType</a>, <a class="el" href="a06230.html#l00350">NL3D::CPSEmitter::_GenNb</a>, <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>, <a class="el" href="a06230.html#l00343">NL3D::CPSEmitter::_Phase</a>, <a class="el" href="a06213.html#l00353">NL3D::CPSAttrib< float >::begin()</a>, <a class="el" href="a06213.html#l00356">NL3D::CPSAttrib< float >::end()</a>, <a class="el" href="a03136.html#NL3D_1_1CPSAttribMakerz714_1">NL3D::CPSAttribMaker< uint32 >::get()</a>, <a class="el" href="a06143.html#l01211">NL3D::CParticleSystem::getAutoLODEmitRatio()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a06143.html#l00606">NL3D::CParticleSystem::isAutoLODEnabled()</a>, <a class="el" href="a06143.html#l00135">NL3D::CParticleSystem::isSharingEnabled()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, <a class="el" href="a05363.html#a556a212">NL3D::PSEmit</a>, <a class="el" href="a05363.html#a556a217">NL3D::PSToolRender</a>, <a class="el" href="a06229.html#l00447">NL3D::CPSEmitter::showTool()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05454.html#l00044">NL3D::TAnimationTime</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>01756 { +01757 <span class="keywordflow">if</span> (pass == <a class="code" href="a05363.html#a556a217">PSToolRender</a>) +01758 { +01759 <a class="code" href="a03179.html#NL3D_1_1CPSRadialEmittera80">showTool</a>(); +01760 <span class="keywordflow">return</span>; +01761 } +01762 <span class="keywordflow">if</span> (pass != <a class="code" href="a05363.html#a556a212">PSEmit</a> || !<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">_EmittedType</a>) <span class="keywordflow">return</span>; +01763 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a587">size</a> = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize(); +01764 <span class="keywordflow">if</span> (!<a class="code" href="a04223.html#a587">size</a>) <span class="keywordflow">return</span>; +01765 +01766 <span class="keywordflow">if</span> (ellapsedTime == 0.f) <span class="keywordflow">return</span>; <span class="comment">// do nothing when paused</span> +01767 +01768 CParticleSystem *ps = <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner(); +01769 <a class="code" href="a04199.html#a6">nlassert</a>(ps); +01770 <span class="keywordtype">float</span> emitLOD; +01771 <span class="keywordflow">if</span> (ps->isAutoLODEnabled() && !ps->isSharingEnabled() && !<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp1">_BypassAutoLOD</a>) +01772 { +01773 <span class="comment">// temp test for auto lod</span> +01774 emitLOD = ps->getAutoLODEmitRatio(); +01775 } +01776 <span class="keywordflow">else</span> +01777 { +01778 emitLOD = 1.f; +01779 } +01780 +01781 +01782 <span class="comment">// our behaviour depend of the frequency</span> +01783 <span class="keywordflow">switch</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp3">_EmissionType</a>) +01784 { +01785 <span class="keywordflow">case</span> CPSEmitter::once : +01786 { +01787 <span class="keywordflow">if</span> (!<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> && <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">_GenNb</a> == 0) <span class="keywordflow">return</span>; +01788 TPSAttribTime::iterator timeIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(), timeEndIt = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.end(); +01789 +01790 <span class="keywordflow">if</span> (emitLOD == 1.f) +01791 { +01792 <span class="keywordflow">while</span> (timeIt != timeEndIt) +01793 { +01794 <span class="keywordflow">if</span> (*timeIt == 0.f) +01795 { +01796 <span class="keyword">const</span> <a class="code" href="a04558.html#a11">uint32</a> nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, timeIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()) : _GenNb; +01797 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(timeIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(), nbToGenerate); +01798 *timeIt = 1.f; +01799 } +01800 ++timeIt; +01801 } +01802 } +01803 <span class="keywordflow">else</span> +01804 { +01805 <span class="keywordflow">while</span> (timeIt != timeEndIt) +01806 { +01807 <span class="keywordflow">if</span> (*timeIt == 0.f) +01808 { +01809 <a class="code" href="a04558.html#a11">uint32</a> nbToGenerate = <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> ? <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a>->get(_Owner, timeIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin()) : _GenNb; +01810 <span class="keywordflow">if</span> (nbToGenerate > 0) +01811 { +01812 nbToGenerate = (<a class="code" href="a04558.html#a10">sint32</a>) (emitLOD * nbToGenerate); +01813 <span class="keywordflow">if</span> (!nbToGenerate) nbToGenerate = 1; +01814 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb8">processEmit</a>(timeIt - <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">_Phase</a>.begin(), nbToGenerate); +01815 } +01816 *timeIt = 1.f; +01817 } +01818 ++timeIt; +01819 } +01820 +01821 } +01822 } +01823 <span class="keywordflow">break</span>; +01824 <span class="keywordflow">case</span> (CPSEmitter::regular): +01825 { +01826 <span class="keywordflow">if</span> (!<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp2">_ConsistentEmission</a>) +01827 { +01828 <span class="keywordflow">if</span> (emitLOD != 1.f) +01829 { +01830 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb10">processRegularEmission</a>(ellapsedTime, emitLOD); +01831 } +01832 <span class="keywordflow">else</span> +01833 { +01834 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb13">processRegularEmissionWithNoLOD</a>(ellapsedTime); +01835 } +01836 } +01837 <span class="keywordflow">else</span> +01838 { +01839 <span class="keywordflow">if</span> (emitLOD != 1.f) +01840 { +01841 <span class="keywordflow">if</span> (emitLOD != 0.f) +01842 { +01843 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb11">processRegularEmissionConsistent</a>(ellapsedTime, realEllapsedTime / ellapsedTime, emitLOD, 1.f / emitLOD); +01844 } +01845 } +01846 <span class="keywordflow">else</span> +01847 { +01848 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterb12">processRegularEmissionConsistentWithNoLOD</a>(ellapsedTime, realEllapsedTime / ellapsedTime); +01849 } +01850 } +01851 } +01852 <span class="keywordflow">break</span>; +01853 <span class="keywordflow">default</span>: <span class="keywordflow">break</span>; +01854 } +01855 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherea65" doxytag="NL3D::CPSEmitterOmni::systemDateChanged" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NL3D::CPSLocatedBindable::systemDateChanged </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +PRIVATE USE : called by the system when its date has been manually changed. This his usually for object that expect time to be always increasing, so that they can reset their datas +<p> +Reimplemented in <a class="el" href="a03227.html#NL3D_1_1CPSRibbonBased6">NL3D::CPSRibbonBase</a>. +<p> +Definition at line <a class="el" href="a06247.html#l01038">1038</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +<div class="fragment"><pre>01038 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera89" doxytag="NL3D::CPSEmitterOmni::testEmitForever" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::testEmitForever </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +Test is the emitter will emit an infinite amount of particles (e.g it doesn't stop after a while) NB : If the emitter isn't inserted in a <a class="el" href="a03214.html">CPSLocated</a> instance, an assertion will be reaised +<p> +Definition at line <a class="el" href="a06229.html#l02148">2148</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00118">NL3D::CPSEmitter::getEmissionType()</a>, <a class="el" href="a06247.html#l00326">NL3D::CPSLocated::getLastForever()</a>, <a class="el" href="a06230.html#l00154">NL3D::CPSEmitter::getMaxEmissionCount()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05622.html#l00135">nlwarning</a>. +<p> +Referenced by <a class="el" href="a06142.html#l01462">NL3D::CParticleSystem::canFinish()</a>, <a class="el" href="a06229.html#l00326">NL3D::CPSEmitter::setEmissionType()</a>, and <a class="el" href="a06229.html#l02090">NL3D::CPSEmitter::setMaxEmissionCount()</a>. +<p> +<div class="fragment"><pre>02149 { +02150 <span class="keywordflow">if</span> (!<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>) +02151 { +02152 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"<CPSEmitter::testEmitForever> The emitter should be inserted in a CPSLocated instance for this call to work."</span>); +02153 <a class="code" href="a04199.html#a6">nlassert</a>(0); +02154 <span class="keywordflow">return</span> <span class="keyword">true</span>; +02155 } +02156 <span class="keywordflow">if</span> (!<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getLastForever()) <span class="keywordflow">return</span> <span class="keyword">false</span>; +02157 <span class="keywordflow">switch</span>(<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera14">getEmissionType</a>()) +02158 { +02159 <span class="keywordflow">case</span> CPSEmitter::onBounce: +02160 <span class="keywordflow">case</span> CPSEmitter::externEmit: +02161 <span class="keywordflow">case</span> CPSEmitter::regular: +02162 <span class="comment">// it is ok only if a limited number of located is emitted</span> +02163 <span class="keywordflow">if</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmittera34">getMaxEmissionCount</a>() == 0) <span class="keywordflow">return</span> <span class="keyword">true</span>; +02164 <span class="keywordflow">break</span>; +02165 <span class="keywordflow">case</span> CPSEmitter::onDeath: <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// the emitter never dies, so ..</span> +02166 <span class="keywordflow">case</span> CPSEmitter::once: <span class="keywordflow">return</span> <span class="keyword">false</span>; +02167 <span class="keywordflow">break</span>; +02168 <span class="keywordflow">default</span>: +02169 <a class="code" href="a04199.html#a6">nlassert</a>(0); <span class="comment">// not a known type</span> +02170 <span class="keywordflow">break</span>; +02171 } +02172 <span class="keywordflow">return</span> <span class="keyword">false</span>; +02173 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb16" doxytag="NL3D::CPSEmitterOmni::updateMaxCountVect" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::updateMaxCountVect </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l02059">2059</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06230.html#l00353">NL3D::CPSEmitter::_MaxEmissionCount</a>, <a class="el" href="a06230.html#l00344">NL3D::CPSEmitter::_NumEmission</a>, <a class="el" href="a06247.html#l00369">NL3D::CPSLocated::getMaxSize()</a>, <a class="el" href="a06247.html#l00361">NL3D::CPSLocated::getSize()</a>, <a class="el" href="a06213.html#l00303">NL3D::CPSAttrib< T >::getSize()</a>, <a class="el" href="a06213.html#l00413">NL3D::CPSAttrib< T >::insert()</a>, <a class="el" href="a06213.html#l00425">NL3D::CPSAttrib< T >::remove()</a>, and <a class="el" href="a06213.html#l00404">NL3D::CPSAttrib< T >::resize()</a>. +<p> +Referenced by <a class="el" href="a06229.html#l02090">NL3D::CPSEmitter::setMaxEmissionCount()</a>, and <a class="el" href="a06229.html#l00111">NL3D::CPSEmitter::setOwner()</a>. +<p> +<div class="fragment"><pre>02060 { +02061 <span class="keywordflow">if</span> (!<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">_MaxEmissionCount</a> || !<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>) +02062 { +02063 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.resize(0); +02064 } +02065 <span class="keywordflow">else</span> +02066 { +02067 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.resize(<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getMaxSize()); +02068 <span class="keywordflow">while</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.getSize() != 0) +02069 { +02070 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.remove(0); +02071 } +02072 <span class="keywordflow">while</span> (<a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.getSize() != <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getSize()) +02073 { +02074 <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">_NumEmission</a>.insert(0); +02075 } +02076 } +02077 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterb17" doxytag="NL3D::CPSEmitterOmni::updatePSRefCountForUserMatrixUsage" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NL3D::CPSEmitter::updatePSRefCountForUserMatrixUsage </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname" nowrap> <em>matrixIsNeededNow</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>matrixWasNeededBefore</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +========================================================================== +<p> +The particle system maintains a ref counter to see how many object requires the user matrix for their computation (if it isn't required, a significant amount of memory used for maintenance can be saved) This tool function helps increasing / decreasing that count by seeing if the matrix is still required or not +<p> +Definition at line <a class="el" href="a06229.html#l02618">2618</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +References <a class="el" href="a06142.html#l01894">NL3D::CParticleSystem::addRefForUserSysCoordInfo()</a>, <a class="el" href="a06151.html#l00111">NL3D::CParticleSystemProcess::getOwner()</a>, and <a class="el" href="a06142.html#l01907">NL3D::CParticleSystem::releaseRefForUserSysCoordInfo()</a>. +<p> +Referenced by <a class="el" href="a06229.html#l02593">NL3D::CPSEmitter::enableSpeedBasisEmission()</a>, <a class="el" href="a06229.html#l02601">NL3D::CPSEmitter::enableUserMatrixModeForEmissionDirection()</a>, and <a class="el" href="a06229.html#l02609">NL3D::CPSEmitter::setUserMatrixModeForEmissionDirection()</a>. +<p> +<div class="fragment"><pre>02619 { +02620 <span class="keywordflow">if</span> (<a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a> && <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()) +02621 { +02622 <span class="keywordflow">if</span> (matrixIsNeededNow && !matrixWasNeededBefore) +02623 { +02624 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->addRefForUserSysCoordInfo(); +02625 } +02626 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!matrixIsNeededNow && matrixWasNeededBefore) +02627 { +02628 <a class="code" href="a02691.html#NL3D_1_1CPSZoneSpherep6">_Owner</a>->getOwner()->releaseRefForUserSysCoordInfo(); +02629 } +02630 } +02631 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera90" doxytag="NL3D::CPSEmitterOmni::useEmitteeSpeedScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSModulatedEmitter::useEmitteeSpeedScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +check wether a speed modulation scheme is being used +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00414">414</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00441">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a>. +<p> +<div class="fragment"><pre>00414 { <span class="keywordflow">return</span> <a class="code" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">_EmitteeSpeedScheme</a> != NULL; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera91" doxytag="NL3D::CPSEmitterOmni::useGenNbScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::useGenNbScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Indicate whether a GenNb scheme is used or not. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00165">165</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00351">NL3D::CPSEmitter::_GenNbScheme</a>. +<p> +<div class="fragment"><pre>00165 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">_GenNbScheme</a> != NULL; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittera92" doxytag="NL3D::CPSEmitterOmni::usePeriodScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NL3D::CPSEmitter::usePeriodScheme </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Indicate whether a period scheme is used or not. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00129">129</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +References <a class="el" href="a06230.html#l00349">NL3D::CPSEmitter::_PeriodScheme</a>. +<p> +<div class="fragment"><pre>00129 { <span class="keywordflow">return</span> <a class="code" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">_PeriodScheme</a> != NULL; } +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CPSZoneSpheren0" doxytag="NL3D::CPSEmitterOmni::CPSLocated" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> friend class <a class="el" href="a03214.html">CPSLocated</a><code> [friend, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02690.html#NL3D_1_1CPSTurbuln1">NL3D::CPSForce</a>. +<p> +Definition at line <a class="el" href="a06247.html#l00986">986</a> of file <a class="el" href="a06247.html">ps_located.h</a>. </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NL3D_1_1CPSZoneSpherep0" doxytag="NL3D::CPSEmitterOmni::_Active" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep0">NL3D::CPSLocatedBindable::_Active</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l01033">1033</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +Referenced by <a class="el" href="a06247.html#l00844">NL3D::CPSLocatedBindable::isActive()</a>, and <a class="el" href="a06247.html#l00843">NL3D::CPSLocatedBindable::setActive()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp1" doxytag="NL3D::CPSEmitterOmni::_BypassAutoLOD" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp1">NL3D::CPSEmitter::_BypassAutoLOD</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00356">356</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00252">NL3D::CPSEmitter::getBypassAutoLOD()</a>, <a class="el" href="a06230.html#l00251">NL3D::CPSEmitter::setBypassAutoLOD()</a>, and <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmittert0" doxytag="NL3D::CPSEmitterOmni::_BypassEmitOnDeath" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmittert0">NL3D::CPSEmitter::_BypassEmitOnDeath</a> = false<code> [static, protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06229.html#l00042">42</a> of file <a class="el" href="a06229.html">ps_emitter.cpp</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, and <a class="el" href="a06230.html#l00256">NL3D::CPSEmitter::setBypassEmitOnDeath()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp2" doxytag="NL3D::CPSEmitterOmni::_ConsistentEmission" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp2">NL3D::CPSEmitter::_ConsistentEmission</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00355">355</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00236">NL3D::CPSEmitter::enableConsistenEmission()</a>, <a class="el" href="a06230.html#l00238">NL3D::CPSEmitter::isConsistentEmissionEnabled()</a>, and <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp3" doxytag="NL3D::CPSEmitterOmni::_EmissionType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterw6">TEmissionType</a> <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp3">NL3D::CPSEmitter::_EmissionType</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00347">347</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01908">NL3D::CPSEmitter::bounceOccured()</a>, <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06230.html#l00118">NL3D::CPSEmitter::getEmissionType()</a>, <a class="el" href="a06229.html#l00326">NL3D::CPSEmitter::setEmissionType()</a>, and <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp4" doxytag="NL3D::CPSEmitterOmni::_EmitDelay" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp4">NL3D::CPSEmitter::_EmitDelay</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00352">352</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00144">NL3D::CPSEmitter::getEmitDelay()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, and <a class="el" href="a06229.html#l02080">NL3D::CPSEmitter::setEmitDelay()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp5" doxytag="NL3D::CPSEmitterOmni::_EmittedType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03214.html">CPSLocated</a>* <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp5">NL3D::CPSEmitter::_EmittedType</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +A pointer on the type to be emitted. +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00339">339</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01908">NL3D::CPSEmitter::bounceOccured()</a>, <a class="el" href="a06229.html#l02117">NL3D::CPSEmitter::checkLoop()</a>, <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06230.html#l00096">NL3D::CPSEmitter::getEmittedType()</a>, <a class="el" href="a06229.html#l00394">NL3D::CPSEmitter::notifyTargetRemoved()</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a06229.html#l00247">NL3D::CPSEmitter::processEmitConsistent()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00096">NL3D::CPSEmitter::releaseRefTo()</a>, <a class="el" href="a06229.html#l00361">NL3D::CPSEmitter::setEmittedType()</a>, <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>, and <a class="el" href="a06229.html#l00084">NL3D::CPSEmitter::~CPSEmitter()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp6" doxytag="NL3D::CPSEmitterOmni::_EmitteeSpeed" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float <a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmitterp6">NL3D::CPSModulatedEmitter::_EmitteeSpeed</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00440">440</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00374">NL3D::CPSModulatedEmitter::CPSModulatedEmitter()</a>, <a class="el" href="a06230.html#l00405">NL3D::CPSModulatedEmitter::getEmitteeSpeed()</a>, and <a class="el" href="a06230.html#l00396">NL3D::CPSModulatedEmitter::setEmitteeSpeed()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp7" doxytag="NL3D::CPSEmitterOmni::_EmitteeSpeedScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03136.html">CPSAttribMaker</a><float>* <a class="el" href="a03182.html#NL3D_1_1CPSSphericalEmitterp7">NL3D::CPSModulatedEmitter::_EmitteeSpeedScheme</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00441">441</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00374">NL3D::CPSModulatedEmitter::CPSModulatedEmitter()</a>, <a class="el" href="a06230.html#l00429">NL3D::CPSModulatedEmitter::deleteEmitteeSpeedElement()</a>, <a class="el" href="a06230.html#l00408">NL3D::CPSModulatedEmitter::getEmitteeSpeedScheme()</a>, <a class="el" href="a06230.html#l00424">NL3D::CPSModulatedEmitter::newEmitteeSpeedElement()</a>, <a class="el" href="a06230.html#l00434">NL3D::CPSModulatedEmitter::resizeEmitteeSpeed()</a>, <a class="el" href="a06230.html#l00396">NL3D::CPSModulatedEmitter::setEmitteeSpeed()</a>, <a class="el" href="a06230.html#l00387">NL3D::CPSModulatedEmitter::setEmitteeSpeedScheme()</a>, <a class="el" href="a06230.html#l00414">NL3D::CPSModulatedEmitter::useEmitteeSpeedScheme()</a>, and <a class="el" href="a06230.html#l00379">NL3D::CPSModulatedEmitter::~CPSModulatedEmitter()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherep3" doxytag="NL3D::CPSEmitterOmni::_ExternID" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep3">NL3D::CPSLocatedBindable::_ExternID</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l01027">1027</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +Referenced by <a class="el" href="a06247.html#l00964">NL3D::CPSLocatedBindable::getExternID()</a>, <a class="el" href="a06246.html#l02149">NL3D::CPSLocatedBindable::setExternID()</a>, and <a class="el" href="a06246.html#l01984">NL3D::CPSLocatedBindable::~CPSLocatedBindable()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp9" doxytag="NL3D::CPSEmitterOmni::_GenNb" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp9">NL3D::CPSEmitter::_GenNb</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00350">350</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01908">NL3D::CPSEmitter::bounceOccured()</a>, <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06230.html#l00162">NL3D::CPSEmitter::getGenNb()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, <a class="el" href="a06229.html#l00428">NL3D::CPSEmitter::setGenNb()</a>, <a class="el" href="a06229.html#l00490">NL3D::CPSEmitter::singleEmit()</a>, and <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp10" doxytag="NL3D::CPSEmitterOmni::_GenNbScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03136.html">CPSAttribMaker</a><<a class="el" href="a04558.html#a11">uint32</a>>* <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp10">NL3D::CPSEmitter::_GenNbScheme</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00351">351</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01908">NL3D::CPSEmitter::bounceOccured()</a>, <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06230.html#l00171">NL3D::CPSEmitter::getGenNbScheme()</a>, <a class="el" href="a06229.html#l01858">NL3D::CPSEmitter::newElement()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, <a class="el" href="a06229.html#l01895">NL3D::CPSEmitter::resize()</a>, <a class="el" href="a06229.html#l00428">NL3D::CPSEmitter::setGenNb()</a>, <a class="el" href="a06229.html#l00439">NL3D::CPSEmitter::setGenNbScheme()</a>, <a class="el" href="a06229.html#l00490">NL3D::CPSEmitter::singleEmit()</a>, <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>, <a class="el" href="a06230.html#l00165">NL3D::CPSEmitter::useGenNbScheme()</a>, and <a class="el" href="a06229.html#l00084">NL3D::CPSEmitter::~CPSEmitter()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherep4" doxytag="NL3D::CPSEmitterOmni::_LOD" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a05363.html#a558">TPSLod</a> <a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep4">NL3D::CPSLocatedBindable::_LOD</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +tells when this object must be dealt with +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l01029">1029</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +Referenced by <a class="el" href="a06247.html#l00954">NL3D::CPSLocatedBindable::getLOD()</a>, and <a class="el" href="a06247.html#l00952">NL3D::CPSLocatedBindable::setLOD()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp12" doxytag="NL3D::CPSEmitterOmni::_MaxEmissionCount" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a> <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp12">NL3D::CPSEmitter::_MaxEmissionCount</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00353">353</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06230.html#l00154">NL3D::CPSEmitter::getMaxEmissionCount()</a>, <a class="el" href="a06229.html#l01858">NL3D::CPSEmitter::newElement()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, <a class="el" href="a06229.html#l01895">NL3D::CPSEmitter::resize()</a>, <a class="el" href="a06229.html#l02090">NL3D::CPSEmitter::setMaxEmissionCount()</a>, and <a class="el" href="a06229.html#l02059">NL3D::CPSEmitter::updateMaxCountVect()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherep5" doxytag="NL3D::CPSEmitterOmni::_Name" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::string <a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep5">NL3D::CPSLocatedBindable::_Name</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l01031">1031</a> of file <a class="el" href="a06247.html">ps_located.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp14" doxytag="NL3D::CPSEmitterOmni::_NumEmission" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03135.html">TPSAttribUInt8</a> <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp14">NL3D::CPSEmitter::_NumEmission</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00344">344</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06229.html#l01858">NL3D::CPSEmitter::newElement()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, <a class="el" href="a06229.html#l01895">NL3D::CPSEmitter::resize()</a>, and <a class="el" href="a06229.html#l02059">NL3D::CPSEmitter::updateMaxCountVect()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSZoneSpherep6" doxytag="NL3D::CPSEmitterOmni::_Owner" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03214.html">CPSLocated</a>* <a class="el" href="a02691.html#NL3D_1_1CPSZoneSpherep6">NL3D::CPSLocatedBindable::_Owner</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06247.html#l01026">1026</a> of file <a class="el" href="a06247.html">ps_located.h</a>. +<p> +Referenced by <a class="el" href="a06231.html#l00055">NL3D::CPSFaceHelper::drawFaces()</a>, <a class="el" href="a06235.html#l00072">NL3D::CPSFanLightHelper::drawFanLight()</a>, <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>, <a class="el" href="a06233.html#l00089">NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion()</a>, <a class="el" href="a06250.html#l00521">NL3D::CPSConstraintMeshHelper::drawMeshs()</a>, and <a class="el" href="a06250.html#l00793">NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp16" doxytag="NL3D::CPSEmitterOmni::_Period" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp16">NL3D::CPSEmitter::_Period</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00348">348</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00126">NL3D::CPSEmitter::getPeriod()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, and <a class="el" href="a06229.html#l00401">NL3D::CPSEmitter::setPeriod()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp17" doxytag="NL3D::CPSEmitterOmni::_PeriodScheme" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03136.html">CPSAttribMaker</a><float>* <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp17">NL3D::CPSEmitter::_PeriodScheme</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00349">349</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06230.html#l00135">NL3D::CPSEmitter::getPeriodScheme()</a>, <a class="el" href="a06229.html#l01858">NL3D::CPSEmitter::newElement()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, <a class="el" href="a06229.html#l01895">NL3D::CPSEmitter::resize()</a>, <a class="el" href="a06229.html#l00401">NL3D::CPSEmitter::setPeriod()</a>, <a class="el" href="a06229.html#l00416">NL3D::CPSEmitter::setPeriodScheme()</a>, <a class="el" href="a06230.html#l00129">NL3D::CPSEmitter::usePeriodScheme()</a>, and <a class="el" href="a06229.html#l00084">NL3D::CPSEmitter::~CPSEmitter()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp18" doxytag="NL3D::CPSEmitterOmni::_Phase" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03135.html">TPSAttribFloat</a> <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp18">NL3D::CPSEmitter::_Phase</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The phase ( 0 < phase < period of emission). This is the time ellapsed since the last emission +<p> +Definition at line <a class="el" href="a06230.html#l00343">343</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l01873">NL3D::CPSEmitter::deleteElement()</a>, <a class="el" href="a06229.html#l01858">NL3D::CPSEmitter::newElement()</a>, <a class="el" href="a06229.html#l00665">NL3D::CPSEmitter::processRegularEmission()</a>, <a class="el" href="a06229.html#l01000">NL3D::CPSEmitter::processRegularEmissionConsistent()</a>, <a class="el" href="a06229.html#l01426">NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD()</a>, <a class="el" href="a06229.html#l00500">NL3D::CPSEmitter::processRegularEmissionWithNoLOD()</a>, <a class="el" href="a06229.html#l01895">NL3D::CPSEmitter::resize()</a>, and <a class="el" href="a06229.html#l01755">NL3D::CPSEmitter::step()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp20" doxytag="NL3D::CPSEmitterOmni::_SpeedBasisEmission" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp20">NL3D::CPSEmitter::_SpeedBasisEmission</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00354">354</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l02593">NL3D::CPSEmitter::enableSpeedBasisEmission()</a>, <a class="el" href="a06230.html#l00204">NL3D::CPSEmitter::isSpeedBasisEmissionEnabled()</a>, <a class="el" href="a06229.html#l02634">NL3D::CPSEmitter::isUserMatrixUsed()</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, and <a class="el" href="a06229.html#l00247">NL3D::CPSEmitter::processEmitConsistent()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp21" doxytag="NL3D::CPSEmitterOmni::_SpeedInheritanceFactor" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> float <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp21">NL3D::CPSEmitter::_SpeedInheritanceFactor</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00346">346</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00190">NL3D::CPSEmitter::getSpeedInheritanceFactor()</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a06229.html#l00247">NL3D::CPSEmitter::processEmitConsistent()</a>, and <a class="el" href="a06230.html#l00184">NL3D::CPSEmitter::setSpeedInheritanceFactor()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp22" doxytag="NL3D::CPSEmitterOmni::_UserDirectionMatrixMode" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a05363.html#a557">TPSMatrixMode</a> <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp22">NL3D::CPSEmitter::_UserDirectionMatrixMode</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00358">358</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06230.html#l00222">NL3D::CPSEmitter::getUserMatrixModeForEmissionDirection()</a>, <a class="el" href="a06229.html#l02634">NL3D::CPSEmitter::isUserMatrixUsed()</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, <a class="el" href="a06229.html#l00247">NL3D::CPSEmitter::processEmitConsistent()</a>, and <a class="el" href="a06229.html#l02609">NL3D::CPSEmitter::setUserMatrixModeForEmissionDirection()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CPSSphericalEmitterp23" doxytag="NL3D::CPSEmitterOmni::_UserMatrixModeForEmissionDirection" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03179.html#NL3D_1_1CPSSphericalEmitterp23">NL3D::CPSEmitter::_UserMatrixModeForEmissionDirection</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06230.html#l00357">357</a> of file <a class="el" href="a06230.html">ps_emitter.h</a>. +<p> +Referenced by <a class="el" href="a06229.html#l02601">NL3D::CPSEmitter::enableUserMatrixModeForEmissionDirection()</a>, <a class="el" href="a06230.html#l00216">NL3D::CPSEmitter::isUserMatrixModeForEmissionDirectionEnabled()</a>, <a class="el" href="a06229.html#l02634">NL3D::CPSEmitter::isUserMatrixUsed()</a>, <a class="el" href="a06229.html#l00119">NL3D::CPSEmitter::processEmit()</a>, and <a class="el" href="a06229.html#l00247">NL3D::CPSEmitter::processEmitConsistent()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a06230.html">ps_emitter.h</a><li><a class="el" href="a06229.html">ps_emitter.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 07:09:45 2004 for NeL by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 > +</a>1.3.6 </small></address> +</body> +</html> |