aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02457.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/a02457.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/a02457.html1616
1 files changed, 1616 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02457.html b/docs/doxygen/nel/a02457.html
new file mode 100644
index 00000000..8c2d94e1
--- /dev/null
+++ b/docs/doxygen/nel/a02457.html
@@ -0,0 +1,1616 @@
+<!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: NLSOUND::CEnvSoundUser 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&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>NLSOUND::CEnvSoundUser Class Reference</h1><code>#include &lt;<a class="el" href="a05677.html">env_sound_user.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLSOUND::CEnvSoundUser:
+<p><center><img src="a02457.png" usemap="#NLSOUND::CEnvSoundUser_map" border="0" alt=""></center>
+<map name="NLSOUND::CEnvSoundUser_map">
+<area href="a02458.html" alt="NLSOUND::UEnvSound" shape="rect" coords="0,0,171,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Implementation of <a class="el" href="a02458.html">UEnvSound</a><p>
+An envsound object is a node of an envsound tree, the root of which is returned by CAudioMixerUser::loadEnvSounds() and getEnvSounds(). The root is the world envsound: it has no bounds. The areas of children envsounds have bounds and they must be totally included in the area of their parent envsound.<p>
+Here is an example of an envsound tree:<p>
+<pre class="fragment"><div>
+ * Root (world envsound)
+ * / \
+ * Transition Transition
+ * | |
+ * Cave1 City
+ * / \
+ * Transition Transition
+ * | |
+ * Building1 Building2
+ * </div></pre><p>
+In a transition, the _Source object is the center source played when the listener not in the child area (<a class="el" href="a03395.html">CSimpleSource</a>). In a non-transition envsound, the _Source object is the ambiant source (<a class="el" href="a02194.html">CAmbiantSource</a>) which plays a stereo mix.<p>
+<dl compact><dt><b>Author:</b></dt><dd>Olivier Cado <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00082">82</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera0">addChild</a> (<a class="el" href="a02457.html">CEnvSoundUser</a> *child)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a child (EDIT). <a href="#NLSOUND_1_1CEnvSoundUsera0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera1">addEnvTag</a> (IPlayable *source, const std::string &amp;tag="")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera2">CEnvSoundUser</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NLSOUND_1_1CEnvSoundUsera2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>IBoundingShape *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera3">getBoundingShape</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the bounding shape (EDIT). <a href="#NLSOUND_1_1CEnvSoundUsera3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::vector&lt; <a class="el" href="a02458.html">UEnvSound</a> * &gt; &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera4">getChildren</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the children envsounds. <a href="#NLSOUND_1_1CEnvSoundUsera4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02457.html">CEnvSoundUser</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera5">getParent</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the parent (EDIT). <a href="#NLSOUND_1_1CEnvSoundUsera5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02458.html#NLSOUND_1_1UEnvSounda1">getPos</a> (<a class="el" href="a03128.html">NLMISC::CVector</a> &amp;pos) const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the position. <a href="#NLSOUND_1_1UEnvSounda1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera7">getPos</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the position. <a href="#NLSOUND_1_1CEnvSoundUsera7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>IPlayable *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera8">getSource</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the source (EDIT). <a href="#NLSOUND_1_1CEnvSoundUsera8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera9">mustPlay</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the play flag. <a href="#NLSOUND_1_1CEnvSoundUsera9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera10">play</a> (bool children_too=false)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Play this node, and all descendants if children_too is true. <a href="#NLSOUND_1_1CEnvSoundUsera10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera11">recompute</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Recompute the EnvSound. Call this method after having moved the 3D source (call only on the root env). <a href="#NLSOUND_1_1CEnvSoundUsera11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera12">selectEnv</a> (const char *tag, bool children_too=false)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select the current env for this node, and for all descendants if children_too is true. <a href="#NLSOUND_1_1CEnvSoundUsera12"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera13">setPos</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;pos)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Moves the envsound (and its transition envsound if it has one). <a href="#NLSOUND_1_1CEnvSoundUsera13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera14">setProperties</a> (bool transition, IBoundingShape *bshape)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set properties (EDIT) (set a NULL shape for all world). <a href="#NLSOUND_1_1CEnvSoundUsera14"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera15">stop</a> (bool children_too=false)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop playing this node, and all descendants if children_too is true. <a href="#NLSOUND_1_1CEnvSoundUsera15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera16">update</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update the stereo mixes (call evenly on the root) (recursive). <a href="#NLSOUND_1_1CEnvSoundUsera16"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUsera17">~CEnvSoundUser</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NLSOUND_1_1CEnvSoundUsera17"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserb0">applySourcesMarks</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02457.html">CEnvSoundUser</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserb1">findCurrentEnv</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;listenerpos)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the area where the listener is located (recursive). <a href="#NLSOUND_1_1CEnvSoundUserb1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserb2">getCount</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count the envs in the tree (call on the root). <a href="#NLSOUND_1_1CEnvSoundUserb2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserb3">isRoot</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the envsound is the root of the hierarchy tree. <a href="#NLSOUND_1_1CEnvSoundUserb3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserb4">markSources</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;listenerpos, float gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserb5">playSub</a> (bool children_too=false)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Play this node, and all descendants if children_too is true, but do not recompute. <a href="#NLSOUND_1_1CEnvSoundUserb5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserb6">stopSub</a> (bool children_too=false)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop playing this node, and all descendants if children_too is true, but do not recompute. <a href="#NLSOUND_1_1CEnvSoundUserb6"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>IBoundingShape *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a02457.html">CEnvSoundUser</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr2">_Gain</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr3">_Mark</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02457.html">CEnvSoundUser</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr5">_Play</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>IPlayable *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; IPlayable * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr7">_SrcBank</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr8">_Tags</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr9">_Transition</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera2" doxytag="NLSOUND::CEnvSoundUser::CEnvSoundUser" ></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"> NLSOUND::CEnvSoundUser::CEnvSoundUser </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00043">43</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+<div class="fragment"><pre>00043 : <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr5">_Play</a>(<span class="keyword">false</span>), <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a>(NULL), <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a>(NULL), <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr9">_Transition</a>(<span class="keyword">false</span>), <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>(NULL), <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr3">_Mark</a>(<span class="keyword">false</span>), <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr2">_Gain</a>(1.0f)
+00044 {
+00045 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera17" doxytag="NLSOUND::CEnvSoundUser::~CEnvSoundUser" ></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"> NLSOUND::CEnvSoundUser::~<a class="el" href="a02457.html">CEnvSoundUser</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Destructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00051">51</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00178">_SrcBank</a>.
+<p>
+<div class="fragment"><pre>00052 {
+00053 vector&lt;CEnvSoundUser*&gt;::iterator ipe;
+00054 <span class="keywordflow">for</span> ( ipe=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin(); ipe!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end(); ++ipe )
+00055 {
+00056 <span class="keyword">delete</span> (*ipe);
+00057 }
+00058
+00059 vector&lt;IPlayable*&gt;::iterator ipp;
+00060 <span class="keywordflow">for</span> ( ipp=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr7">_SrcBank</a>.begin(); ipp!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr7">_SrcBank</a>.end(); ++ipp )
+00061 {
+00062 <span class="comment">// An IPlayable object can be a CAmbiantSource or a CSimpleSource.</span>
+00063 <span class="comment">// A CAmbiantSource removes its source (channels) in destructor, but not a CSimpleSource</span>
+00064 <span class="keywordflow">if</span> ( dynamic_cast&lt;CSimpleSource*&gt;(*ipp) )
+00065 {
+00066 CAudioMixerUser::instance()-&gt;removeSource( static_cast&lt;CSimpleSource*&gt;(*ipp) );
+00067 }
+00068 <span class="keywordflow">else</span>
+00069 {
+00070 <span class="keywordflow">if</span> ( (*ipp) != NULL )
+00071 {
+00072 <span class="keyword">delete</span> (*ipp);
+00073 }
+00074 }
+00075 }
+00076
+00077 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a> != NULL )
+00078 {
+00079 <span class="keyword">delete</span> <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a>;
+00080 }
+00081 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera0" doxytag="NLSOUND::CEnvSoundUser::addChild" ></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 NLSOUND::CEnvSoundUser::addChild </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02457.html">CEnvSoundUser</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>child</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a child (EDIT).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00588">588</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00188">_Parent</a>.
+<p>
+<div class="fragment"><pre>00589 {
+00590 child-&gt;_Parent = <span class="keyword">this</span>;
+00591 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.push_back( child );
+00592 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera1" doxytag="NLSOUND::CEnvSoundUser::addEnvTag" ></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 NLSOUND::CEnvSoundUser::addEnvTag </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">IPlayable *&nbsp;</td>
+ <td class="mdname" nowrap> <em>source</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>tag</em> = ""</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add an environment source/tag (EDIT) (set a NULL source for no source at all). The current source always becomes the first one.
+<p>
+Definition at line <a class="el" href="a05676.html#l00487">487</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00177">_Source</a>, and <a class="el" href="a05677.html#l00178">_SrcBank</a>.
+<p>
+<div class="fragment"><pre>00488 {
+00489 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr7">_SrcBank</a>.push_back( source );
+00490 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr8">_Tags</a>.push_back( tag );
+00491
+00492 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a> == NULL ) <span class="comment">// becomes the first one and stays there</span>
+00493 {
+00494 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a> = source;
+00495 }
+00496 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserb0" doxytag="NLSOUND::CEnvSoundUser::applySourcesMarks" ></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 NLSOUND::CEnvSoundUser::applySourcesMarks </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00452">452</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00192">_Mark</a>, and <a class="el" href="a05677.html#l00177">_Source</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00385">recompute()</a>.
+<p>
+<div class="fragment"><pre>00453 {
+00454 <span class="keywordflow">if</span> ( ! <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr5">_Play</a> )
+00455 {
+00456 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr3">_Mark</a> = <span class="keyword">false</span>;
+00457 }
+00458 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a> != NULL )
+00459 {
+00460 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a>-&gt;enable( _Mark, _Gain );
+00461 }
+00462 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr3">_Mark</a> = <span class="keyword">false</span>;
+00463
+00464 <span class="comment">// Apply on children</span>
+00465 vector&lt;CEnvSoundUser*&gt;::iterator ipe;
+00466 <span class="keywordflow">for</span> ( ipe=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin(); ipe!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end(); ++ipe )
+00467 {
+00468 (*ipe)-&gt;applySourcesMarks();
+00469 }
+00470 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserb1" doxytag="NLSOUND::CEnvSoundUser::findCurrentEnv" ></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="a02457.html">CEnvSoundUser</a> * NLSOUND::CEnvSoundUser::findCurrentEnv </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>listenerpos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Find the area where the listener is located (recursive).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00303">303</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00385">recompute()</a>.
+<p>
+<div class="fragment"><pre>00304 {
+00305 <span class="comment">// Find in children first (check from leaves to root)</span>
+00306 vector&lt;CEnvSoundUser*&gt;::iterator ipe = <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin();
+00307 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUsera2">CEnvSoundUser</a> *found = NULL;
+00308 <span class="keywordflow">while</span> ( ! ( (found) || (ipe==<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end()) ) )
+00309 {
+00310 found = (*ipe)-&gt;findCurrentEnv( listenerpos );
+00311 ipe++;
+00312 }
+00313 <span class="keywordflow">if</span> ( found )
+00314 <span class="keywordflow">return</span> found;
+00315 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a> == NULL) || (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a>-&gt;include( listenerpos )) )
+00316 <span class="keywordflow">return</span> <span class="keyword">this</span>;
+00317 <span class="keywordflow">else</span>
+00318 <span class="keywordflow">return</span> NULL;
+00319 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera3" doxytag="NLSOUND::CEnvSoundUser::getBoundingShape" ></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"> IBoundingShape* NLSOUND::CEnvSoundUser::getBoundingShape </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the bounding shape (EDIT).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00136">136</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+<div class="fragment"><pre>00136 { <span class="keywordflow">return</span> <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera4" doxytag="NLSOUND::CEnvSoundUser::getChildren" ></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::vector&lt; <a class="el" href="a02458.html">UEnvSound</a> * &gt; &amp; NLSOUND::CEnvSoundUser::getChildren </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the children envsounds.
+<p>
+
+<p>
+Implements <a class="el" href="a02458.html#NLSOUND_1_1UEnvSounda0">NLSOUND::UEnvSound</a>.
+<p>
+Definition at line <a class="el" href="a05676.html#l00376">376</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+<div class="fragment"><pre>00377 {
+00378 <span class="keywordflow">return</span> (vector&lt;UEnvSound*&gt;&amp;)(<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>);
+00379 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserb2" doxytag="NLSOUND::CEnvSoundUser::getCount" ></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> NLSOUND::CEnvSoundUser::getCount </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Count the envs in the tree (call on the root).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00248">248</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00249 {
+00250 <a class="code" href="a04558.html#a11">uint32</a> cnt=1;
+00251 vector&lt;CEnvSoundUser*&gt;::const_iterator ipe;
+00252 <span class="keywordflow">for</span> ( ipe=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin(); ipe!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end(); ++ipe )
+00253 {
+00254 cnt += (*ipe)-&gt;getCount();
+00255 }
+00256 <span class="keywordflow">return</span> cnt;
+00257 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera5" doxytag="NLSOUND::CEnvSoundUser::getParent" ></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="a02457.html">CEnvSoundUser</a>* NLSOUND::CEnvSoundUser::getParent </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the parent (EDIT).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00140">140</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+References <a class="el" href="a05677.html#l00188">_Parent</a>.
+<p>
+<div class="fragment"><pre>00140 { <span class="keywordflow">return</span> <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1UEnvSounda1" doxytag="NLSOUND::CEnvSoundUser::getPos" ></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 NLSOUND::UEnvSound::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [pure virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the position.
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera7" doxytag="NLSOUND::CEnvSoundUser::getPos" ></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 const <a class="el" href="a03128.html">NLMISC::CVector</a>&amp; NLSOUND::CEnvSoundUser::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the position.
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera8" doxytag="NLSOUND::CEnvSoundUser::getSource" ></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"> IPlayable* NLSOUND::CEnvSoundUser::getSource </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the source (EDIT).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00138">138</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+References <a class="el" href="a05677.html#l00177">_Source</a>.
+<p>
+<div class="fragment"><pre>00138 { <span class="keywordflow">return</span> <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserb3" doxytag="NLSOUND::CEnvSoundUser::isRoot" ></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 NLSOUND::CEnvSoundUser::isRoot </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return true if the envsound is the root of the hierarchy tree.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00148">148</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+References <a class="el" href="a05677.html#l00188">_Parent</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00385">recompute()</a>.
+<p>
+<div class="fragment"><pre>00148 { <span class="keywordflow">return</span> <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>==NULL; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserb4" doxytag="NLSOUND::CEnvSoundUser::markSources" ></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 NLSOUND::CEnvSoundUser::markSources </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>listenerpos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>gain</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Prepare the related sources to play (recursive). In each children branch, there must be an env which is not a transition, for the recursion to stop
+<p>
+Definition at line <a class="el" href="a05676.html#l00408">408</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00192">_Mark</a>, <a class="el" href="a05677.html#l00188">_Parent</a>, <a class="el" href="a05677.html#l00185">_Transition</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00385">recompute()</a>.
+<p>
+<div class="fragment"><pre>00409 {
+00410 <span class="comment">// Is the listener in a transition area ?</span>
+00411 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr9">_Transition</a> )
+00412 {
+00413 <span class="comment">//nldebug( "AM: EnvSound: Marking sources for transition between child and parent" );</span>
+00414
+00415 <span class="comment">// Compute the listener position to find the ratio between up and down envs</span>
+00416 <a class="code" href="a04199.html#a6">nlassert</a>( (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.size() == 1) &amp;&amp; (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>[0] != NULL) &amp;&amp; (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a> != NULL) );
+00417 <a class="code" href="a04199.html#a6">nlassert</a>( _BoundingShape &amp;&amp; _Children[0]-&gt;_BoundingShape );
+00418 <span class="keywordtype">float</span> ratio = <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a>-&gt;getRatio( listenerpos, _Children[0]-&gt;_BoundingShape );
+00419 <a class="code" href="a04199.html#a6">nlassert</a>( ratio &gt;= 0.0f &amp;&amp; ratio &lt;= 1.0f );
+00420
+00421 <span class="comment">// The child env plays at gain*ratio</span>
+00422 <span class="comment">// The recursion stops because the child env is not a transition area</span>
+00423 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>[0]-&gt;markSources( listenerpos, gain * ratio );
+00424
+00425 <span class="comment">// The parent env (therefore the 3d source of the current env as well) plays at gain*(1-ratio)</span>
+00426 <span class="comment">// The recursion stops because the parent env is not a transition area</span>
+00427 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;markSources( listenerpos, gain * (1.0f-ratio) );
+00428 }
+00429 <span class="keywordflow">else</span>
+00430 {
+00431 <span class="comment">//nldebug( "AM: EnvSound: Marking sources for environnement" );</span>
+00432
+00433 <span class="comment">// The listener in an environment, containing other environments (e.g. a town) or not (e.g. a room).</span>
+00434 <span class="comment">// The current env plays</span>
+00435 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr3">_Mark</a> = <span class="keyword">true</span>;
+00436 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr2">_Gain</a> = gain;
+00437
+00438 <span class="comment">// The children env (next level only) play</span>
+00439 vector&lt;CEnvSoundUser*&gt;::iterator ipe;
+00440 <span class="keywordflow">for</span>( ipe=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin(); ipe!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end(); ++ipe )
+00441 {
+00442 (*ipe)-&gt;_Mark = <span class="keyword">true</span>;
+00443 (*ipe)-&gt;_Gain = gain;
+00444 }
+00445 }
+00446 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera9" doxytag="NLSOUND::CEnvSoundUser::mustPlay" ></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 NLSOUND::CEnvSoundUser::mustPlay </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the play flag.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00122">122</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+<div class="fragment"><pre>00122 { <span class="keywordflow">return</span> <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr5">_Play</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera10" doxytag="NLSOUND::CEnvSoundUser::play" ></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 NLSOUND::CEnvSoundUser::play </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>children_too</em> = false </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Play this node, and all descendants if children_too is true.
+<p>
+
+<p>
+Implements <a class="el" href="a02458.html#NLSOUND_1_1UEnvSounda2">NLSOUND::UEnvSound</a>.
+<p>
+Definition at line <a class="el" href="a05676.html#l00516">516</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05676.html#l00538">playSub()</a>.
+<p>
+<div class="fragment"><pre>00517 {
+00518 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserb5">playSub</a>( children_too );
+00519
+00520 CAudioMixerUser::instance()-&gt;getEnvSounds()-&gt;recompute();
+00521 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserb5" doxytag="NLSOUND::CEnvSoundUser::playSub" ></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 NLSOUND::CEnvSoundUser::playSub </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>children_too</em> = false </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Play this node, and all descendants if children_too is true, but do not recompute.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00538">538</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00188">_Parent</a>, <a class="el" href="a05677.html#l00174">_Play</a>, and <a class="el" href="a05677.html#l00185">_Transition</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00516">play()</a>.
+<p>
+<div class="fragment"><pre>00539 {
+00540 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr5">_Play</a> = <span class="keyword">true</span>;
+00541
+00542 <span class="comment">// Start transition as well</span>
+00543 <span class="keywordflow">if</span> ( (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a> != NULL) &amp;&amp; ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_Transition ) )
+00544 {
+00545 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_Play = <span class="keyword">true</span>;
+00546 }
+00547
+00548 <span class="comment">// Apply to descendants</span>
+00549 <span class="keywordflow">if</span> ( children_too )
+00550 {
+00551 vector&lt;CEnvSoundUser*&gt;::iterator ipc;
+00552 <span class="keywordflow">for</span> ( ipc=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin(); ipc!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end(); ++ipc )
+00553 {
+00554 (*ipc)-&gt;playSub( children_too );
+00555 }
+00556 }
+00557 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera11" doxytag="NLSOUND::CEnvSoundUser::recompute" ></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 NLSOUND::CEnvSoundUser::recompute </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Recompute the EnvSound. Call this method after having moved the 3D source (call only on the root env).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00385">385</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05676.html#l00452">applySourcesMarks()</a>, <a class="el" href="a05676.html#l00303">findCurrentEnv()</a>, <a class="el" href="a05677.html#l00148">isRoot()</a>, <a class="el" href="a05676.html#l00408">markSources()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+<div class="fragment"><pre>00386 {
+00387 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserb3">isRoot</a>() );
+00388
+00389 <span class="comment">// Find the area of the listener</span>
+00390 CVector listenerpos;
+00391 CAudioMixerUser::instance()-&gt;getListener()-&gt;getPos( listenerpos );
+00392 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUsera2">CEnvSoundUser</a> *current = <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserb1">findCurrentEnv</a>( listenerpos );
+00393
+00394 <span class="comment">// Mark the envs that have to play their source</span>
+00395 <span class="keywordflow">if</span> ( current != NULL )
+00396 {
+00397 current-&gt;markSources( listenerpos, 1.0f );
+00398 }
+00399
+00400 <span class="comment">// Enable/disable the sources in the hierarchy, and reset the marks</span>
+00401 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserb0">applySourcesMarks</a>();
+00402 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera12" doxytag="NLSOUND::CEnvSoundUser::selectEnv" ></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 NLSOUND::CEnvSoundUser::selectEnv </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>tag</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>children_too</em> = false</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Select the current env for this node, and for all descendants if children_too is true.
+<p>
+
+<p>
+Implements <a class="el" href="a02458.html#NLSOUND_1_1UEnvSounda3">NLSOUND::UEnvSound</a>.
+<p>
+Definition at line <a class="el" href="a05676.html#l00190">190</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00177">_Source</a>, <a class="el" href="a05677.html#l00178">_SrcBank</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00191 {
+00192 <a class="code" href="a04558.html#a15">uint</a> i;
+00193 <span class="keywordflow">for</span> ( i=0; i!= <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr8">_Tags</a>.size(); i++ )
+00194 {
+00195 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr8">_Tags</a>[i] == string(tag) )
+00196 {
+00197 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a> != NULL )
+00198 {
+00199 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a>-&gt;enable( <span class="keyword">false</span>, 1.0f );
+00200 }
+00201 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a> = <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr7">_SrcBank</a>[i];
+00202 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"AM: EnvSound: Environment changed to %s"</span>, tag );
+00203 CAudioMixerUser::instance()-&gt;getEnvSounds()-&gt;recompute();
+00204 <span class="keywordflow">break</span>;
+00205 }
+00206 }
+00207 <span class="comment">//nldebug( "AM: EnvSound: Environment %s not found", tag );</span>
+00208 <span class="comment">// Don't change _Source if not found</span>
+00209
+00210 <span class="comment">// Apply to descendants</span>
+00211 <span class="keywordflow">if</span> ( children_too )
+00212 {
+00213 vector&lt;CEnvSoundUser*&gt;::iterator ipc;
+00214 <span class="keywordflow">for</span> ( ipc=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin(); ipc!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end(); ++ipc )
+00215 {
+00216 (*ipc)-&gt;selectEnv( tag, children_too );
+00217 }
+00218 }
+00219 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera13" doxytag="NLSOUND::CEnvSoundUser::setPos" ></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 NLSOUND::CEnvSoundUser::setPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Moves the envsound (and its transition envsound if it has one).
+<p>
+
+<p>
+Implements <a class="el" href="a02458.html#NLSOUND_1_1UEnvSounda4">NLSOUND::UEnvSound</a>.
+<p>
+Definition at line <a class="el" href="a05676.html#l00341">341</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00182">_BoundingShape</a>, <a class="el" href="a05677.html#l00188">_Parent</a>, <a class="el" href="a05677.html#l00177">_Source</a>, and <a class="el" href="a05677.html#l00185">_Transition</a>.
+<p>
+<div class="fragment"><pre>00342 {
+00343 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a> != NULL )
+00344 {
+00345 <span class="comment">// Get the vector between the pos of this envsound and the pos of its transition envsound</span>
+00346 CVector newpos;
+00347 <span class="keywordflow">if</span> ( (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a> != NULL) &amp;&amp; ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_Transition ) )
+00348 {
+00349 newpos = pos + <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_BoundingShape-&gt;getCenter() - <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a>-&gt;getCenter();
+00350 }
+00351 <span class="keywordflow">else</span>
+00352 {
+00353 newpos = pos;
+00354 }
+00355
+00356 <span class="comment">// Set the new pos</span>
+00357 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a>-&gt;setCenter( pos );
+00358 <span class="keywordflow">if</span> ( (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a> != NULL) &amp;&amp; ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_Transition ) )
+00359 {
+00360 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_BoundingShape-&gt;setCenter( newpos );
+00361 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_Source != NULL )
+00362 {
+00363 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_Source-&gt;moveTo( newpos );
+00364 }
+00365 }
+00366
+00367 <span class="comment">// Recompute the entire tree</span>
+00368 CAudioMixerUser::instance()-&gt;getEnvSounds()-&gt;recompute();
+00369 }
+00370 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera14" doxytag="NLSOUND::CEnvSoundUser::setProperties" ></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 NLSOUND::CEnvSoundUser::setProperties </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>transition</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>IBoundingShape *&nbsp;</td>
+ <td class="mdname" nowrap> <em>bshape</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set properties (EDIT) (set a NULL shape for all world).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00476">476</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00185">_Transition</a>.
+<p>
+<div class="fragment"><pre>00477 {
+00478 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr9">_Transition</a> = transition;
+00479 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">_BoundingShape</a> = bshape;
+00480 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera15" doxytag="NLSOUND::CEnvSoundUser::stop" ></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 NLSOUND::CEnvSoundUser::stop </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>children_too</em> = false </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stop playing this node, and all descendants if children_too is true.
+<p>
+
+<p>
+Implements <a class="el" href="a02458.html#NLSOUND_1_1UEnvSounda5">NLSOUND::UEnvSound</a>.
+<p>
+Definition at line <a class="el" href="a05676.html#l00527">527</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05676.html#l00563">stopSub()</a>.
+<p>
+<div class="fragment"><pre>00528 {
+00529 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserb6">stopSub</a>( children_too );
+00530
+00531 CAudioMixerUser::instance()-&gt;getEnvSounds()-&gt;recompute();
+00532 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserb6" doxytag="NLSOUND::CEnvSoundUser::stopSub" ></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 NLSOUND::CEnvSoundUser::stopSub </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>children_too</em> = false </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stop playing this node, and all descendants if children_too is true, but do not recompute.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00563">563</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00188">_Parent</a>, <a class="el" href="a05677.html#l00174">_Play</a>, and <a class="el" href="a05677.html#l00185">_Transition</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00527">stop()</a>.
+<p>
+<div class="fragment"><pre>00564 {
+00565 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr5">_Play</a> = <span class="keyword">false</span>;
+00566
+00567 <span class="comment">// Stop transition as well</span>
+00568 <span class="keywordflow">if</span> ( (<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a> != NULL) &amp;&amp; ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_Transition ) )
+00569 {
+00570 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">_Parent</a>-&gt;_Play = <span class="keyword">false</span>;
+00571 }
+00572
+00573 <span class="comment">// Apply to descendants</span>
+00574 <span class="keywordflow">if</span> ( children_too )
+00575 {
+00576 vector&lt;CEnvSoundUser*&gt;::iterator ipc;
+00577 <span class="keywordflow">for</span> ( ipc=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin(); ipc!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end(); ++ipc )
+00578 {
+00579 (*ipc)-&gt;stopSub( children_too );
+00580 }
+00581 }
+00582 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUsera16" doxytag="NLSOUND::CEnvSoundUser::update" ></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 NLSOUND::CEnvSoundUser::update </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Update the stereo mixes (call evenly on the root) (recursive).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05676.html#l00286">286</a> of file <a class="el" href="a05676.html">env_sound_user.cpp</a>.
+<p>
+References <a class="el" href="a05677.html#l00177">_Source</a>.
+<p>
+<div class="fragment"><pre>00287 {
+00288 <span class="keywordflow">if</span> ( <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a> != NULL )
+00289 {
+00290 <a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">_Source</a>-&gt;update();
+00291 }
+00292 vector&lt;CEnvSoundUser*&gt;::iterator ipe;
+00293 <span class="keywordflow">for</span> ( ipe=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.begin(); ipe!=<a class="code" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">_Children</a>.end(); ++ipe )
+00294 {
+00295 (*ipe)-&gt;update();
+00296 }
+00297 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr0" doxytag="NLSOUND::CEnvSoundUser::_BoundingShape" ></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"> IBoundingShape* <a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr0">NLSOUND::CEnvSoundUser::_BoundingShape</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00182">182</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00341">setPos()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr1" doxytag="NLSOUND::CEnvSoundUser::_Children" ></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::vector&lt;<a class="el" href="a02457.html">CEnvSoundUser</a>*&gt; <a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr1">NLSOUND::CEnvSoundUser::_Children</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00189">189</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr2" doxytag="NLSOUND::CEnvSoundUser::_Gain" ></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="a02457.html#NLSOUND_1_1CEnvSoundUserr2">NLSOUND::CEnvSoundUser::_Gain</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00193">193</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr3" doxytag="NLSOUND::CEnvSoundUser::_Mark" ></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="a02457.html#NLSOUND_1_1CEnvSoundUserr3">NLSOUND::CEnvSoundUser::_Mark</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00192">192</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00452">applySourcesMarks()</a>, and <a class="el" href="a05676.html#l00408">markSources()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr4" doxytag="NLSOUND::CEnvSoundUser::_Parent" ></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="a02457.html">CEnvSoundUser</a>* <a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr4">NLSOUND::CEnvSoundUser::_Parent</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00188">188</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00588">addChild()</a>, <a class="el" href="a05677.html#l00140">getParent()</a>, <a class="el" href="a05677.html#l00148">isRoot()</a>, <a class="el" href="a05676.html#l00408">markSources()</a>, <a class="el" href="a05676.html#l00538">playSub()</a>, <a class="el" href="a05676.html#l00341">setPos()</a>, and <a class="el" href="a05676.html#l00563">stopSub()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr5" doxytag="NLSOUND::CEnvSoundUser::_Play" ></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="a02457.html#NLSOUND_1_1CEnvSoundUserr5">NLSOUND::CEnvSoundUser::_Play</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00174">174</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00538">playSub()</a>, and <a class="el" href="a05676.html#l00563">stopSub()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr6" doxytag="NLSOUND::CEnvSoundUser::_Source" ></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"> IPlayable* <a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr6">NLSOUND::CEnvSoundUser::_Source</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00177">177</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00487">addEnvTag()</a>, <a class="el" href="a05676.html#l00452">applySourcesMarks()</a>, <a class="el" href="a05677.html#l00138">getSource()</a>, <a class="el" href="a05676.html#l00190">selectEnv()</a>, <a class="el" href="a05676.html#l00341">setPos()</a>, and <a class="el" href="a05676.html#l00286">update()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr7" doxytag="NLSOUND::CEnvSoundUser::_SrcBank" ></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::vector&lt;IPlayable*&gt; <a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr7">NLSOUND::CEnvSoundUser::_SrcBank</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00178">178</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00487">addEnvTag()</a>, <a class="el" href="a05676.html#l00190">selectEnv()</a>, and <a class="el" href="a05676.html#l00051">~CEnvSoundUser()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr8" doxytag="NLSOUND::CEnvSoundUser::_Tags" ></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::vector&lt;std::string&gt; <a class="el" href="a02457.html#NLSOUND_1_1CEnvSoundUserr8">NLSOUND::CEnvSoundUser::_Tags</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00179">179</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CEnvSoundUserr9" doxytag="NLSOUND::CEnvSoundUser::_Transition" ></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="a02457.html#NLSOUND_1_1CEnvSoundUserr9">NLSOUND::CEnvSoundUser::_Transition</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05677.html#l00185">185</a> of file <a class="el" href="a05677.html">env_sound_user.h</a>.
+<p>
+Referenced by <a class="el" href="a05676.html#l00408">markSources()</a>, <a class="el" href="a05676.html#l00538">playSub()</a>, <a class="el" href="a05676.html#l00341">setPos()</a>, <a class="el" href="a05676.html#l00476">setProperties()</a>, and <a class="el" href="a05676.html#l00563">stopSub()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05677.html">env_sound_user.h</a><li><a class="el" href="a05676.html">env_sound_user.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:38: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>