diff options
Diffstat (limited to 'docs/doxygen/nel/a06146.html')
-rw-r--r-- | docs/doxygen/nel/a06146.html | 300 |
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 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>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> &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<NLMISC::CPlane> &worldFrustumPyramid, <span class="keyword">const</span> <a class="code" href="a03128.html">NLMISC::CVector</a> &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 < 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)->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> &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->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> &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> &psm = *(it->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-><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>()-><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->IsRelMatrix) <span class="comment">// relative matrix already computed ?</span> +00198 { +00199 <span class="keywordflow">if</span> (!it->HasAncestorSkeleton) +00200 { +00201 psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModelb2">forceCompute</a>(); +00202 } +00203 it->OldAncestorMatOrRelPos = it->OldAncestorMatOrRelPos.inverted() * psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>(); +00204 it->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>()-><a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>() * it->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->HasAncestorSkeleton = <span class="keyword">true</span>; +00212 it->OldAncestorMatOrRelPos = psm.<a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela6">getAncestorSkeletonModel</a>()-><a class="code" href="a02316.html#NL3D_1_1CWaveMakerModela25">getWorldMatrix</a>(); +00213 it->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-><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> &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-><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> &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-><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)->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)->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> |