aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a06146.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a06146.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a06146.html')
-rw-r--r--docs/doxygen/nel/a06146.html300
1 files changed, 300 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a06146.html b/docs/doxygen/nel/a06146.html
new file mode 100644
index 00000000..41f545b0
--- /dev/null
+++ b/docs/doxygen/nel/a06146.html
@@ -0,0 +1,300 @@
+<!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: particle_system_manager.cpp Source File</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&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>particle_system_manager.cpp</h1><a href="a04723.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
+00007 <span class="comment">/* Copyright, 2000 - 2002 Nevrax Ltd.</span>
+00008 <span class="comment"> *</span>
+00009 <span class="comment"> * This file is part of NEVRAX NEL.</span>
+00010 <span class="comment"> * NEVRAX NEL is free software; you can redistribute it and/or modify</span>
+00011 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
+00012 <span class="comment"> * the Free Software Foundation; either version 2, or (at your option)</span>
+00013 <span class="comment"> * any later version.</span>
+00014 <span class="comment"></span>
+00015 <span class="comment"> * NEVRAX NEL is distributed in the hope that it will be useful, but</span>
+00016 <span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+00017 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
+00018 <span class="comment"> * General Public License for more details.</span>
+00019 <span class="comment"></span>
+00020 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
+00021 <span class="comment"> * along with NEVRAX NEL; see the file COPYING. If not, write to the</span>
+00022 <span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</span>
+00023 <span class="comment"> * MA 02111-1307, USA.</span>
+00024 <span class="comment"> */</span>
+00025
+00026 <span class="preprocessor">#include "<a class="code" href="a05015.html">std3d.h</a>"</span>
+00027
+00028 <span class="preprocessor">#include "<a class="code" href="a04724.html">3d/particle_system_manager.h</a>"</span>
+00029 <span class="preprocessor">#include "<a class="code" href="a04726.html">3d/particle_system_model.h</a>"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="a04926.html">3d/scene.h</a>"</span>
+00031 <span class="preprocessor">#include "<a class="code" href="a04971.html">3d/skeleton_model.h</a>"</span>
+00032
+00033
+00034 <span class="keyword">namespace </span>NL3D {
+00035
+00036
+<a name="l00037"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerh0">00037</a> <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagery1">CParticleSystemManager::TManagerList</a> &amp;CParticleSystemManager::getManagerList()
+00038 {
+00039 <span class="keyword">static</span> <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagery1">TManagerList</a> *manager = NULL;
+00040 <span class="keywordflow">if</span> (manager == NULL)
+00041 {
+00042 manager = <span class="keyword">new</span> <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagery1">TManagerList</a>;
+00043 }
+00044 <span class="keywordflow">return</span> *manager;
+00045 }
+00046
+00047
+00048
+00049
+<a name="l00051"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagera0">00051</a> CParticleSystemManager::CParticleSystemManager() : _NumModels(0)
+00052 {
+00053 <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr0">_CurrListIterator</a> = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.end();
+00054 <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerh0">getManagerList</a>().push_front(<span class="keyword">this</span>);
+00055 <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr1">_GlobalListHandle</a> = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerh0">getManagerList</a>().begin();
+00056 }
+00057
+<a name="l00059"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagera5">00059</a> CParticleSystemManager::~CParticleSystemManager()
+00060 {
+00061 <span class="comment">// remove from global list</span>
+00062 <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerh0">getManagerList</a>().erase(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr1">_GlobalListHandle</a>);
+00063 }
+00064
+<a name="l00066"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagera3">00066</a> <span class="keywordtype">void</span> CParticleSystemManager::refreshModels(<span class="keyword">const</span> std::vector&lt;NLMISC::CPlane&gt; &amp;worldFrustumPyramid, <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> &amp;viewerPos)
+00067 {
+00068 <span class="preprocessor"> #ifdef NL_DEBUG</span>
+00069 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a> == <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.size());
+00070 <span class="preprocessor"> #endif</span>
+00071 <span class="preprocessor"></span>
+00072 <span class="keywordflow">if</span> (<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a> == 0) <span class="keywordflow">return</span>;
+00073 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> toProcess = <a class="code" href="a04061.html#a0">std::min</a>(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a>, (<a class="code" href="a04558.html#a15">uint</a>) <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerw0NL3D_1_1CParticleSystemManagerw1">NumProcessToRefresh</a>);
+00074 TModelList::iterator nextIt;
+00075 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k = 0; k &lt; toProcess; ++k)
+00076 {
+00077 <span class="keywordflow">if</span> (<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr0">_CurrListIterator</a> == <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.end())
+00078 {
+00079 <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr0">_CurrListIterator</a> = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.begin();
+00080 }
+00081 nextIt = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr0">_CurrListIterator</a>;
+00082 ++ nextIt;
+00083 (*_CurrListIterator)-&gt;refreshRscDeletion(worldFrustumPyramid, viewerPos);
+00084 _CurrListIterator = nextIt;
+00085 <span class="keywordflow">if</span> (<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a> == 0) <span class="keywordflow">break</span>;
+00086 }
+00087
+00088 <span class="preprocessor"> #ifdef NL_DEBUG</span>
+00089 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a> == <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.size());
+00090 <span class="preprocessor"> #endif</span>
+00091 <span class="preprocessor"></span>}
+00092
+<a name="l00094"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerd1">00094</a> <a class="code" href="a03051.html">CParticleSystemManager::TModelHandle</a> CParticleSystemManager::addSystemModel(<a class="code" href="a03052.html">CParticleSystemModel</a> *model)
+00095 {
+00096 <span class="preprocessor"> #ifdef NL_DEBUG</span>
+00097 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>(std::find(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.begin(), <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.end(), model) == <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.end());
+00098 <span class="preprocessor"> #endif</span>
+00099 <span class="preprocessor"></span> <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.push_front(model);
+00100 ++<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a>;
+00101
+00102 <span class="preprocessor"> #ifdef NL_DEBUG</span>
+00103 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a> == <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.size());
+00104 <span class="preprocessor"> #endif</span>
+00105 <span class="preprocessor"></span>
+00106 <a class="code" href="a03051.html">TModelHandle</a> handle;
+00107 handle.<a class="code" href="a03051.html#NL3D_1_1CParticleSystemManager_1_1TModelHandleo1">Valid</a> = <span class="keyword">true</span>;
+00108 handle.<a class="code" href="a03051.html#NL3D_1_1CParticleSystemManager_1_1TModelHandleo0">Iter</a> = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.begin();
+00109 <span class="keywordflow">return</span> handle;
+00110 }
+00111
+00112
+<a name="l00114"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerd3">00114</a> <span class="keywordtype">void</span> CParticleSystemManager::removeSystemModel(<a class="code" href="a03051.html">TModelHandle</a> &amp;handle)
+00115 {
+00116 <a class="code" href="a04199.html#a6">nlassert</a>(handle.<a class="code" href="a03051.html#NL3D_1_1CParticleSystemManager_1_1TModelHandleo1">Valid</a>);
+00117 <span class="preprocessor"> #ifdef NL_DEBUG</span>
+00118 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a> == <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.size());
+00119 <span class="preprocessor"> #endif</span>
+00120 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a> != 0);
+00121 <span class="keywordflow">if</span> (handle.<a class="code" href="a03051.html#NL3D_1_1CParticleSystemManager_1_1TModelHandleo0">Iter</a> == <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr0">_CurrListIterator</a>)
+00122 {
+00123 ++<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr0">_CurrListIterator</a>;
+00124 }
+00125
+00126 <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.erase(handle.<a class="code" href="a03051.html#NL3D_1_1CParticleSystemManager_1_1TModelHandleo0">Iter</a>);
+00127 --<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a>;
+00128 handle.<a class="code" href="a03051.html#NL3D_1_1CParticleSystemManager_1_1TModelHandleo1">Valid</a> = <span class="keyword">false</span>;
+00129 <span class="preprocessor"> #ifdef NL_DEBUG</span>
+00130 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr3">_NumModels</a> == <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.size());
+00131 <span class="preprocessor"> #endif</span>
+00132 <span class="preprocessor"></span>}
+00133
+00134
+<a name="l00136"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerd0">00136</a> <a class="code" href="a03050.html">CParticleSystemManager::TAlwaysAnimatedModelHandle</a> CParticleSystemManager::addPermanentlyAnimatedSystem(<a class="code" href="a03052.html">CParticleSystemModel</a> *ps)
+00137 {
+00138 <span class="preprocessor"> #ifdef NL_DEBUG</span>
+00139 <span class="preprocessor"></span> <span class="keywordflow">for</span>(TAlwaysAnimatedModelList::iterator it = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr4">_PermanentlyAnimatedModelList</a>.begin(); it != <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr4">_PermanentlyAnimatedModelList</a>.end(); ++it)
+00140 {
+00141 <a class="code" href="a04199.html#a6">nlassert</a>(it-&gt;Model != ps);
+00142 }
+00143 <span class="preprocessor"> #endif</span>
+00144 <span class="preprocessor"></span> <a class="code" href="a03049.html">CAlwaysAnimatedPS</a> aaps;
+00145 aaps.<a class="code" href="a03049.html#NL3D_1_1CParticleSystemManager_1_1CAlwaysAnimatedPSo2">Model</a> = ps;
+00146 aaps.<a class="code" href="a03049.html#NL3D_1_1CParticleSystemManager_1_1CAlwaysAnimatedPSo0">HasAncestorSkeleton</a> = <span class="keyword">false</span>; <span class="comment">// even if there's an ancestor skeleton yet, force the manager to recompute relative pos of the system when clipped </span>
+00147 <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr4">_PermanentlyAnimatedModelList</a>.push_front(aaps);
+00148
+00149
+00150 <a class="code" href="a03050.html">TAlwaysAnimatedModelHandle</a> handle;
+00151 handle.<a class="code" href="a03050.html#NL3D_1_1CParticleSystemManager_1_1TAlwaysAnimatedModelHandleo1">Valid</a> = <span class="keyword">true</span>;
+00152 handle.<a class="code" href="a03050.html#NL3D_1_1CParticleSystemManager_1_1TAlwaysAnimatedModelHandleo0">Iter</a> = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr4">_PermanentlyAnimatedModelList</a>.begin();
+00153 <span class="keywordflow">return</span> handle;
+00154 }
+00155
+<a name="l00157"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerd2">00157</a> <span class="keywordtype">void</span> CParticleSystemManager::removePermanentlyAnimatedSystem(<a class="code" href="a03050.html">CParticleSystemManager::TAlwaysAnimatedModelHandle</a> &amp;handle)
+00158 {
+00159 <a class="code" href="a04199.html#a6">nlassert</a>(handle.<a class="code" href="a03050.html#NL3D_1_1CParticleSystemManager_1_1TAlwaysAnimatedModelHandleo1">Valid</a>);
+00160 <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr4">_PermanentlyAnimatedModelList</a>.erase(handle.<a class="code" href="a03050.html#NL3D_1_1CParticleSystemManager_1_1TAlwaysAnimatedModelHandleo0">Iter</a>);
+00161 handle.<a class="code" href="a03050.html#NL3D_1_1CParticleSystemManager_1_1TAlwaysAnimatedModelHandleo1">Valid</a> = <span class="keyword">false</span>;
+00162 }
+00163
+<a name="l00165"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagera1">00165</a> <span class="keywordtype">void</span> CParticleSystemManager::processAnimate(<a class="code" href="a05363.html#a366">TAnimationTime</a> deltaT)
+00166 {
+00167 <span class="keywordflow">for</span> (TAlwaysAnimatedModelList::iterator it = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr4">_PermanentlyAnimatedModelList</a>.begin(); it != <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr4">_PermanentlyAnimatedModelList</a>.end();)
+00168 {
+00169 <a class="code" href="a03052.html">CParticleSystemModel</a> &amp;psm = *(it-&gt;Model);
+00170 <a class="code" href="a03041.html">CParticleSystem</a> *ps = psm.<a class="code" href="a03052.html#NL3D_1_1CParticleSystemModelz618_1">getPS</a>();
+00171 TAlwaysAnimatedModelList::iterator nextIt = it;
+00172 nextIt++;
+00173 <span class="keywordflow">if</span> (ps)
+00174 {
+00175 <span class="comment">// test if already auto-animated</span>
+00176 <span class="keywordflow">if</span> (ps-&gt;<a class="code" href="a03041.html#NL3D_1_1CParticleSystemz601_7">getAnimType</a>() != CParticleSystem::AnimAlways)
+00177 {
+00178 psm.<a class="code" href="a03052.html#NL3D_1_1CParticleSystemModeld4">invalidateAutoAnimatedHandle</a>();
+00179 it = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr4">_PermanentlyAnimatedModelList</a>.erase(it);
+00180 <span class="keywordflow">continue</span>;
+00181 }
+00182 <span class="comment">// special case for sticked fxs :</span>
+00183 <span class="comment">// When a fx is sticked as a son of a skeleton model, the skeleton matrix is not updated </span>
+00184 <span class="comment">// when the skeleton is not visible (clipped)</span>
+00185 <span class="comment">// This is a concern when fx generate trails because when the skeleton becomes visible again,</span>
+00186 <span class="comment">// a trail will appear between the previous visible pos and the new visible pos</span>
+00187 <span class="comment">// to solve this :</span>
+00188 <span class="comment">// When the ancestor skeleton is visible, we backup the relative position to the ancestor skeleton.</span>
+00189 <span class="comment">// - if it is not visible at start, we must evaluate the position of the stick point anyway</span>
+00190 <span class="comment">// When the father skeleton is clipped, we use the relative position </span>
+00191 <span class="keywordflow">if</span> (psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela6">getAncestorSkeletonModel</a>())
+00192 {
+00193 <span class="keywordflow">if</span>(psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela6">getAncestorSkeletonModel</a>()-&gt;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela24">getVisibility</a>() != CHrcTrav::Hide) <span class="comment">// matrix of ancestor is irrelevant if the system is hidden (because sticked to hidden parent for example)</span>
+00194 {
+00195 <span class="keywordflow">if</span> (!psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela28">isClipVisible</a>()) <span class="comment">// the system may not be visible because of clod</span>
+00196 {
+00197 <span class="keywordflow">if</span> (!it-&gt;IsRelMatrix) <span class="comment">// relative matrix already computed ?</span>
+00198 {
+00199 <span class="keywordflow">if</span> (!it-&gt;HasAncestorSkeleton)
+00200 {
+00201 psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelb2">forceCompute</a>();
+00202 }
+00203 it-&gt;OldAncestorMatOrRelPos = it-&gt;OldAncestorMatOrRelPos.inverted() * psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>();
+00204 it-&gt;IsRelMatrix = <span class="keyword">true</span>;
+00205 }
+00206 psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela45">setWorldMatrix</a>(psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela6">getAncestorSkeletonModel</a>()-&gt;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>() * it-&gt;OldAncestorMatOrRelPos);
+00207 }
+00208 <span class="keywordflow">else</span>
+00209 {
+00210 <span class="comment">// backup ancestor position matrix relative to the ancestor skeleton</span>
+00211 it-&gt;HasAncestorSkeleton = <span class="keyword">true</span>;
+00212 it-&gt;OldAncestorMatOrRelPos = psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela6">getAncestorSkeletonModel</a>()-&gt;<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>();
+00213 it-&gt;IsRelMatrix = <span class="keyword">false</span>;
+00214 }
+00215 }
+00216 }
+00217 psm.<a class="code" href="a03052.html#NL3D_1_1CParticleSystemModeld2">doAnimate</a>();
+00218 <span class="keywordflow">if</span> (!psm.<a class="code" href="a03052.html#NL3D_1_1CParticleSystemModelz623_1">getEditionMode</a>())
+00219 {
+00220 <span class="comment">// test deletion condition (no more particle, no more particle and emitters)</span>
+00221 <span class="keywordflow">if</span> (ps-&gt;<a class="code" href="a03041.html#NL3D_1_1CParticleSystemz601_16">isDestroyConditionVerified</a>())
+00222 {
+00223 psm.<a class="code" href="a03052.html#NL3D_1_1CParticleSystemModeld9">releaseRscAndInvalidate</a>();
+00224 }
+00225 }
+00226
+00227 }
+00228 it = nextIt;
+00229 }
+00230 }
+00231
+<a name="l00233"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagera4">00233</a> <span class="keywordtype">void</span> CParticleSystemManager::stopSound()
+00234 {
+00235 <span class="keywordflow">for</span>(TModelList::iterator it = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.begin(); it != <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.end(); ++it)
+00236 {
+00237 <a class="code" href="a03052.html">CParticleSystemModel</a> &amp;psm = *(*it);
+00238 <a class="code" href="a03041.html">CParticleSystem</a> *ps = psm.<a class="code" href="a03052.html#NL3D_1_1CParticleSystemModelz618_1">getPS</a>();
+00239 <span class="keywordflow">if</span> (ps)
+00240 {
+00241 ps-&gt;<a class="code" href="a03041.html#NL3D_1_1CParticleSystemz603_1">stopSound</a>();
+00242 }
+00243 }
+00244 }
+00245
+<a name="l00247"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagera2">00247</a> <span class="keywordtype">void</span> CParticleSystemManager::reactivateSound()
+00248 {
+00249 <span class="keywordflow">for</span>(TModelList::iterator it = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.begin(); it != <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerr2">_ModelList</a>.end(); ++it)
+00250 {
+00251 <a class="code" href="a03052.html">CParticleSystemModel</a> &amp;psm = *(*it);
+00252 <a class="code" href="a03041.html">CParticleSystem</a> *ps = psm.<a class="code" href="a03052.html#NL3D_1_1CParticleSystemModelz618_1">getPS</a>();
+00253 <span class="keywordflow">if</span> (ps)
+00254 {
+00255 ps-&gt;<a class="code" href="a03041.html#NL3D_1_1CParticleSystemz603_0">reactivateSound</a>();
+00256 }
+00257 }
+00258 }
+00259
+<a name="l00261"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagere1">00261</a> <span class="keywordtype">void</span> CParticleSystemManager::stopSoundForAllManagers()
+00262 {
+00263 <span class="keywordflow">for</span>(TManagerList::iterator it = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerh0">getManagerList</a>().begin(); it != <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerh0">getManagerList</a>().end(); ++it)
+00264 {
+00265 <a class="code" href="a04199.html#a6">nlassert</a>(*it);
+00266 (*it)-&gt;stopSound();
+00267 }
+00268 }
+00269
+<a name="l00271"></a><a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagere0">00271</a> <span class="keywordtype">void</span> CParticleSystemManager::reactivateSoundForAllManagers()
+00272 {
+00273 <span class="keywordflow">for</span>(TManagerList::iterator it = <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerh0">getManagerList</a>().begin(); it != <a class="code" href="a03048.html#NL3D_1_1CParticleSystemManagerh0">getManagerList</a>().end(); ++it)
+00274 {
+00275 <a class="code" href="a04199.html#a6">nlassert</a>(*it);
+00276 (*it)-&gt;reactivateSound();
+00277 }
+00278 }
+00279
+00280
+00281
+00282 } <span class="comment">// NL3D</span>
+00283
+00284
+00285
+00286
+00287
+00288
+00289
+00290
+00291
+00292
+00293
+00294
+00295
+00296
+00297
+00298
+00299
+00300
+00301
+00302
+00303
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:30:53 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>