diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/particle__system_8h-source.html | 766 |
1 files changed, 766 insertions, 0 deletions
diff --git a/docs/doxygen/nel/particle__system_8h-source.html b/docs/doxygen/nel/particle__system_8h-source.html new file mode 100644 index 00000000..b9cbd4da --- /dev/null +++ b/docs/doxygen/nel/particle__system_8h-source.html @@ -0,0 +1,766 @@ +<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> +<HTML> +<HEAD> + <TITLE>nevrax.org : docs</TITLE> + <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css"> + <link href="doxygen.css" rel="stylesheet" type="text/css"> +</HEAD> +<BODY MARGINHEIGHT="0" MARGINWIDTH="0"> + +<!-- uplinks --> +<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0> + <TR> + <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD> + <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD> + <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD> + <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle> <A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A> </TD> + <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle> <A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A> </TD> + </TR> +</TABLE> + +<!-- banner Nevrax --> +<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%> + <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR> +</TABLE> + +<!-- main table --> +<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%> + <TR> + <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD> + <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT=""> + + <!------ Begin Box ------> + <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black> + <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF> + <TABLE cellspacing=0 cellpadding=1 border=0> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-gpl.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="License">License</a></td></tr> + </TABLE> + </TD></TR></TABLE></TD></TR></TABLE> + <!------ End Box ------> + + </TD> + <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD> + <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT=""> + +<!-- title --> +<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td> +<A HREF="http://www.nevrax.org/docs/"><img src="http://www.nevrax.org/inc/img/t_docs.gif" ALT="Docs" HEIGHT=20 BORDER=0></A> +</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT=""> +</td></tr></table> + + +<!-- block --> +<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD> + <TD><B>Documentation</B></TD> + <TD ALIGN=RIGHT> </td> +</tr></table> +<!-- Generated by Doxygen 1.2.14 --> +<center> +<a class="qindex" href="index.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">Compound List</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">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> <a class="qindexRef" doxygen="_cgi:http://www.nevrax.org/cgi-bin/nel-search.cgi" href="http://www.nevrax.org/cgi-bin/nel-search.cgi">Search</a> </center> +<hr><h1>particle_system.h</h1><a href="particle__system_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 +00007 <font class="comment">/* Copyright, 2001 Nevrax Ltd.</font> +00008 <font class="comment"> *</font> +00009 <font class="comment"> * This file is part of NEVRAX NEL.</font> +00010 <font class="comment"> * NEVRAX NEL is free software; you can redistribute it and/or modify</font> +00011 <font class="comment"> * it under the terms of the GNU General Public License as published by</font> +00012 <font class="comment"> * the Free Software Foundation; either version 2, or (at your option)</font> +00013 <font class="comment"> * any later version.</font> +00014 <font class="comment"></font> +00015 <font class="comment"> * NEVRAX NEL is distributed in the hope that it will be useful, but</font> +00016 <font class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font> +00017 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</font> +00018 <font class="comment"> * General Public License for more details.</font> +00019 <font class="comment"></font> +00020 <font class="comment"> * You should have received a copy of the GNU General Public License</font> +00021 <font class="comment"> * along with NEVRAX NEL; see the file COPYING. If not, write to the</font> +00022 <font class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</font> +00023 <font class="comment"> * MA 02111-1307, USA.</font> +00024 <font class="comment"> */</font> +00025 +00026 <font class="preprocessor">#ifndef NL_PARTICLE_SYSTEM_H</font> +00027 <font class="preprocessor"></font><font class="preprocessor">#define NL_PARTICLE_SYSTEM_H</font> +00028 <font class="preprocessor"></font> +00029 <font class="preprocessor">#include "<a class="code" href="types__nl_8h.html">nel/misc/types_nl.h</a>"</font> +00030 <font class="preprocessor">#include "<a class="code" href="matrix_8h.html">nel/misc/matrix.h</a>"</font> +00031 <font class="preprocessor">#include "<a class="code" href="aabbox_8h.html">nel/misc/aabbox.h</a>"</font> +00032 <font class="preprocessor">#include "<a class="code" href="smart__ptr_8h.html">nel/misc/smart_ptr.h</a>"</font> +00033 <font class="preprocessor">#include "<a class="code" href="rgba_8h.html">nel/misc/rgba.h</a>"</font> +00034 <font class="preprocessor">#include "<a class="code" href="animation__time_8h.html">nel/3d/animation_time.h</a>"</font> +00035 <font class="preprocessor">#include "<a class="code" href="mot_8h.html">3d/mot.h</a>"</font> +00036 <font class="preprocessor">#include "<a class="code" href="animated__value_8h.html">3d/animated_value.h</a>"</font> +00037 <font class="preprocessor">#include "<a class="code" href="particle__system__process_8h.html">3d/particle_system_process.h</a>"</font> +00038 <font class="preprocessor">#include "<a class="code" href="ps__lod_8h.html">3d/ps_lod.h</a>"</font> +00039 <font class="preprocessor">#include "<a class="code" href="ps__attrib__maker_8h.html">3d/ps_attrib_maker.h</a>"</font> +00040 +00041 <font class="preprocessor">#include <map></font> +00042 +00043 +00044 +00045 <font class="keyword">namespace </font>NL3D +00046 { +00047 +00048 <font class="keyword">class </font>CParticleSystemShape; +00049 <font class="keyword">class </font>CPSLocatedBindable; +00050 <font class="keyword">class </font>CFontGenerator; +00051 <font class="keyword">class </font>CFontManager; +00052 <font class="keyword">class </font>CPSCopyHelper; +00053 <font class="keyword">class </font>CScene; +00054 <font class="keyword">class </font>CPSLocated; +00055 <font class="keyword">class </font>IDriver; +00056 <font class="keyword">struct </font>UPSSoundServer; +00057 +00058 +00059 +00061 <font class="keyword">const</font> uint <a class="code" href="namespaceNL3D.html#a165">MaxPSUserParam</a> = 4; +00062 +00063 +<a name="l00083"></a><a class="code" href="classNL3D_1_1CParticleSystem.html">00083</a> <font class="keyword">class </font>CParticleSystem : <font class="keyword">public</font> NLMISC::CRefCount +00084 { +00085 <font class="keyword">public</font>: +00086 <font class="comment">// the pass that is applied on particles</font> +<a name="l00087"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#s18">00087</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#s18">TPass</a> { <a class="code" href="classNL3D_1_1CParticleSystem.html#s18s0">Anim</a>, <a class="code" href="classNL3D_1_1CParticleSystem.html#s18s1">SolidRender</a>, <a class="code" href="classNL3D_1_1CParticleSystem.html#s18s2">BlendRender</a>, <a class="code" href="classNL3D_1_1CParticleSystem.html#s18s3">ToolRender</a> }; +00088 <font class="keyword">public</font>: +00089 <font class="comment">//*****************************************************************************************************</font> +00090 +00092 +00093 +00094 <a class="code" href="classNL3D_1_1CParticleSystem.html#z633_0">CParticleSystem</a>(); +00096 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z633_1">~CParticleSystem</a>(); +00098 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z633_2">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &f) <font class="keywordflow">throw</font>(NLMISC::EStream); +00102 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z633_3">merge</a>(CParticleSystemShape *toMerge); +00103 +00104 <font class="comment">/*** duplication method NOT SUPPORTED for now (duplication is using streams, but it may not last)</font> +00105 <font class="comment"> * \param ch for private use, set to null by default</font> +00106 <font class="comment"> */</font> +00107 <font class="comment">// CParticleSystem *clone(CPSCopyHelper *ch = NULL) ;</font> +00109 <font class="comment"></font> +00110 <font class="comment">//*****************************************************************************************************</font> +00111 +00113 +00114 +<a name="l00122"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z634_0">00122</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z634_0">enableSharing</a>(<font class="keywordtype">bool</font> enabled = <font class="keyword">true</font>) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o46">_Sharing</a> = enabled; } +00123 +<a name="l00125"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z634_1">00125</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z634_1">isSharingEnabled</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o46">_Sharing</a>; } +00127 +00128 <font class="comment">//***************************************************************************************************** </font> +00129 +00131 +00132 +<a name="l00133"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z635_0">00133</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z635_0">setDriver</a>(IDriver *driver) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o1">_Driver</a> = driver; } +00134 +<a name="l00136"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z635_1">00136</a> IDriver *<a class="code" href="classNL3D_1_1CParticleSystem.html#z635_1">getDriver</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o1">_Driver</a>; } +00138 <font class="comment">//*****************************************************************************************************</font> +00139 +00141 +00142 +<a name="l00145"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z636_0">00145</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z636_0">setScene</a>(CScene *scene) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o17">_Scene</a> = scene; } +00146 +<a name="l00148"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z636_1">00148</a> CScene *<a class="code" href="classNL3D_1_1CParticleSystem.html#z636_1">getScene</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o17">_Scene</a>; } +00150 +00151 <font class="comment">//*****************************************************************************************************</font> +00152 +00154 +00155 +00156 +00164 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z637_0">setSysMat</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &m); +00165 +<a name="l00167"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z637_1">00167</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &<a class="code" href="classNL3D_1_1CParticleSystem.html#z637_1">getSysMat</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o7">_SysMat</a>; } +00168 +<a name="l00170"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z637_2">00170</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &<a class="code" href="classNL3D_1_1CParticleSystem.html#z637_2">getOldSysMat</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o7">_SysMat</a>; } +00171 +<a name="l00173"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z637_3">00173</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &<a class="code" href="classNL3D_1_1CParticleSystem.html#z637_3">getInvertedSysMat</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o9">_InvSysMat</a>; } +00174 +00178 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z637_4">setViewMat</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &m); +00179 +<a name="l00181"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z637_5">00181</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &<a class="code" href="classNL3D_1_1CParticleSystem.html#z637_5">getViewMat</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o5">_ViewMat</a>; } +00182 +<a name="l00184"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z637_6">00184</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &<a class="code" href="classNL3D_1_1CParticleSystem.html#z637_6">getInvertedViewMat</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o6">_InvertedViewMat</a>; } +00185 +00187 +00188 +00189 <font class="comment">//*****************************************************************************************************</font> +00190 +00192 +00193 +00200 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z638_0">step</a>(<a class="code" href="classNL3D_1_1CParticleSystem.html#s18">TPass</a> pass, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> ellapsedTime); +00202 +00203 +00204 +00206 <font class="keyword">static</font> uint32 <a class="code" href="classNL3D_1_1CParticleSystem.html#p0">NbParticlesDrawn</a>; +00207 +00208 <font class="comment">//*****************************************************************************************************</font> +00209 +00219 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z639_0">attach</a>(CParticleSystemProcess *process); +00220 +00223 CParticleSystemProcess *<a class="code" href="classNL3D_1_1CParticleSystem.html#z639_1">detach</a>(uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>); +00224 +00227 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z639_2">isProcess</a>(CParticleSystemProcess *process) <font class="keyword">const</font>; +00228 +00232 uint <a class="code" href="classNL3D_1_1CParticleSystem.html#z639_3">getIndexOf</a>(<font class="keyword">const</font> CParticleSystemProcess *process) <font class="keyword">const</font>; +00233 +00238 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z639_4">remove</a>(CParticleSystemProcess *process); +00239 +<a name="l00241"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z639_5">00241</a> uint32 <a class="code" href="classNL3D_1_1CParticleSystem.html#z639_5">getNbProcess</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o2">_ProcessVect</a>.size(); } +00242 +<a name="l00247"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z639_6">00247</a> CParticleSystemProcess *<a class="code" href="classNL3D_1_1CParticleSystem.html#z639_6">getProcess</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>) +00248 { +00249 <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a> < <a class="code" href="classNL3D_1_1CParticleSystem.html#o2">_ProcessVect</a>.size()); +00250 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o2">_ProcessVect</a>[<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>]; +00251 } +00252 +<a name="l00257"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z639_7">00257</a> <font class="keyword">const</font> CParticleSystemProcess *<a class="code" href="classNL3D_1_1CParticleSystem.html#z639_6">getProcess</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>)<font class="keyword"> const</font> +00258 <font class="keyword"> </font>{ +00259 <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a> < <a class="code" href="classNL3D_1_1CParticleSystem.html#o2">_ProcessVect</a>.size()); +00260 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o2">_ProcessVect</a>[<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>]; +00261 } +00262 +00264 +00265 <font class="comment">//*****************************************************************************************************</font> +00266 +00268 +00269 +<a name="l00271"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z640_0">00271</a> <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z640_0">getSystemDate</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o20">_SystemDate</a>; } +00272 +<a name="l00277"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z640_1">00277</a> uint64 <a class="code" href="classNL3D_1_1CParticleSystem.html#z640_1">getDate</a>(<font class="keywordtype">void</font>)<font class="keyword"> const</font> +00278 <font class="keyword"> </font>{ +00279 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o12">_Date</a>; +00280 } +00282 +00283 <font class="comment">//*****************************************************************************************************</font> +00284 +<a name="l00293"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z641_0">00293</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_0">setUserParam</a>(uint userParamIndex, <font class="keywordtype">float</font> <a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>) +00294 { +00295 <a class="code" href="debug_8h.html#a6">nlassert</a>(userParamIndex < <a class="code" href="namespaceNL3D.html#a165">MaxPSUserParam</a>); +00296 <a class="code" href="namespaceNLMISC.html#a215">NLMISC::clamp</a>(<a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>, 0, <a class="code" href="namespaceNL3D.html#a186">MaxInputValue</a>); +00297 <a class="code" href="classNL3D_1_1CParticleSystem.html#o31">_UserParam</a>[userParamIndex] = <a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>; +00298 } +00299 +<a name="l00303"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z641_1">00303</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_1">getUserParam</a>(uint userParamIndex)<font class="keyword"> const</font> +00304 <font class="keyword"> </font>{ +00305 <a class="code" href="debug_8h.html#a6">nlassert</a>(userParamIndex < <a class="code" href="namespaceNL3D.html#a165">MaxPSUserParam</a>); +00306 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o31">_UserParam</a>[userParamIndex]; +00307 } +00308 +00314 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_2">bindGlobalValueToUserParam</a>(<font class="keyword">const</font> std::string &globalValueName, uint userParamIndex); +00315 <font class="comment">// Get name of a global value, or NULL if no global value is bound to that user param</font> +00316 std::string <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_3">getGlobalValueName</a>(uint userParamIndex) <font class="keyword">const</font>; +00317 <font class="comment">// Set a global value</font> +00318 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_4">setGlobalValue</a>(<font class="keyword">const</font> std::string &name, <font class="keywordtype">float</font> <a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>); +00319 <font class="comment">// Get a global value</font> +00320 <font class="keyword">static</font> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_5">getGlobalValue</a>(<font class="keyword">const</font> std::string &name); +00324 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_6">setGlobalVectorValue</a>(<font class="keyword">const</font> std::string &name, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> &<a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>); +00325 <font class="comment">// Get a global vector value</font> +00326 <font class="keyword">static</font> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_7">getGlobalVectorValue</a>(<font class="keyword">const</font> std::string &name); +00327 <font class="comment">// define a handle to a global value</font> +<a name="l00328"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html">00328</a> <font class="keyword">class </font>CGlobalVectorValueHandle +00329 { +00330 <font class="keyword">public</font>: +<a name="l00331"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a0">00331</a> <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a0">CGlobalVectorValueHandle</a>() { <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a5">reset</a>(); } +<a name="l00332"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a1">00332</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> &<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a1">get</a>()<font class="keyword"> const </font>{ <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o1">_Value</a>); <font class="keywordflow">return</font> *<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o1">_Value</a>; } +<a name="l00333"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a2">00333</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a2">set</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> &<a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>) { <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o1">_Value</a>); *<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o1">_Value</a> = value; } +<a name="l00334"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a3">00334</a> <font class="keyword">const</font> std::string &<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a3">getName</a>()<font class="keyword"> const </font>{ <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o0">_Name</a>); <font class="keywordflow">return</font> *<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o0">_Name</a>; } +<a name="l00335"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a4">00335</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a4">isValid</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o0">_Name</a> != NULL && <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o1">_Value</a> != NULL; } +<a name="l00336"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a5">00336</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#a5">reset</a>() { <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o0">_Name</a> = NULL; <a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o1">_Value</a> = NULL; } +00338 <font class="keyword">private</font>: +<a name="l00339"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#l0">00339</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#l0">CParticleSystem</a>; +<a name="l00340"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o0">00340</a> <font class="keyword">const</font> std::string *<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o0">_Name</a>; +<a name="l00341"></a><a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o1">00341</a> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> *<a class="code" href="classNL3D_1_1CParticleSystem_1_1CGlobalVectorValueHandle.html#o1">_Value</a>; +00342 }; +00343 <font class="comment">// Get a handle on a global value that provide a quick access on it (no map lookup)</font> +00344 <font class="keyword">static</font> CGlobalVectorValueHandle <a class="code" href="classNL3D_1_1CParticleSystem.html#z641_8">getGlobalVectorValueHandle</a>(<font class="keyword">const</font> std::string &name); +00346 +00347 +00348 +00349 <font class="comment">//*****************************************************************************************************</font> +00350 +00352 <font class="comment">// @{</font> +<a name="l00358"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z642_0">00358</a> <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z642_0">setCurrentEditedElement</a>(CPSLocated *loc = NULL , uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a> = 0, <font class="keyword">class</font> CPSLocatedBindable *bd = NULL ) +00359 { +00360 <a class="code" href="classNL3D_1_1CParticleSystem.html#o14">_CurrEditedElementLocated</a> = loc; +00361 <a class="code" href="classNL3D_1_1CParticleSystem.html#o15">_CurrEditedElementLocatedBindable</a> = bd; +00362 <a class="code" href="classNL3D_1_1CParticleSystem.html#o16">_CurrEditedElementIndex</a> = <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>; +00363 } +00364 +<a name="l00368"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z642_1">00368</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z642_1">getCurrentEditedElement</a>(CPSLocated *&loc , uint32 &<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, CPSLocatedBindable *&lb) +00369 { +00370 loc = <a class="code" href="classNL3D_1_1CParticleSystem.html#o14">_CurrEditedElementLocated</a>; +00371 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a> = <a class="code" href="classNL3D_1_1CParticleSystem.html#o16">_CurrEditedElementIndex</a>; +00372 lb = <a class="code" href="classNL3D_1_1CParticleSystem.html#o15">_CurrEditedElementLocatedBindable</a>; +00373 } +00374 +<a name="l00376"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z642_2">00376</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z642_2">setFontGenerator</a>(CFontGenerator *fg) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o3">_FontGenerator</a> = fg; } +00377 +<a name="l00379"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z642_3">00379</a> CFontGenerator *<a class="code" href="classNL3D_1_1CParticleSystem.html#z642_3">getFontGenerator</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o3">_FontGenerator</a>; } +00380 +<a name="l00382"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z642_4">00382</a> <font class="keyword">const</font> CFontGenerator *<a class="code" href="classNL3D_1_1CParticleSystem.html#z642_3">getFontGenerator</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o3">_FontGenerator</a>; } +00383 +<a name="l00385"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z642_5">00385</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z642_5">setFontManager</a>(CFontManager *fg) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o4">_FontManager</a> = fg; } +00386 +<a name="l00388"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z642_6">00388</a> CFontManager *<a class="code" href="classNL3D_1_1CParticleSystem.html#z642_6">getFontManager</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o4">_FontManager</a>; } +00389 +<a name="l00391"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z642_7">00391</a> <font class="keyword">const</font> CFontManager *<a class="code" href="classNL3D_1_1CParticleSystem.html#z642_6">getFontManager</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o4">_FontManager</a>; } +00392 <font class="comment">// @}</font> +00393 +<a name="l00395"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#a0">00395</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#a0">setName</a>(<font class="keyword">const</font> std::string &<a class="code" href="driver__opengl__extension__def_8h.html#a383">s</a>) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o18">_Name</a> = <a class="code" href="driver__opengl__extension__def_8h.html#a383">s</a>; } +00396 +<a name="l00398"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#a1">00398</a> std::string <a class="code" href="classNL3D_1_1CParticleSystem.html#a1">getName</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o18">_Name</a>; } +00399 +00400 <font class="comment">//*****************************************************************************************************</font> +00401 +00403 <font class="comment">// @{</font> +00405 <font class="comment"> bool hasOpaqueObjects(void) const;</font> +00406 +00408 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z643_1">hasTransparentObjects</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>; +00409 <font class="comment">// @}</font> +00410 +00411 <font class="comment">//*****************************************************************************************************</font> +00412 +00414 <font class="comment">// @{</font> +<a name="l00418"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z644_0">00418</a> <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z644_0">enableAccurateIntegration</a>(<font class="keywordtype">bool</font> enable = <font class="keyword">true</font>) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o42">_AccurateIntegration</a> = enable; } +<a name="l00419"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z644_1">00419</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z644_1">isAccurateIntegrationEnabled</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o42">_AccurateIntegration</a>; } +00420 +<a name="l00426"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z644_2">00426</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z644_2">setAccurateIntegrationParams</a>(<a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> threshold, +00427 uint32 maxNbIntegrations, +00428 <font class="keywordtype">bool</font> canSlowDown, +00429 <font class="keywordtype">bool</font> keepEllapsedTimeForLifeUpdate +00430 ) +00431 { +00432 <a class="code" href="classNL3D_1_1CParticleSystem.html#o19">_TimeThreshold</a> = threshold; +00433 <a class="code" href="classNL3D_1_1CParticleSystem.html#o21">_MaxNbIntegrations</a> = maxNbIntegrations; +00434 <a class="code" href="classNL3D_1_1CParticleSystem.html#o43">_CanSlowDown</a> = canSlowDown; +00435 <a class="code" href="classNL3D_1_1CParticleSystem.html#o48">_KeepEllapsedTimeForLifeUpdate</a> = keepEllapsedTimeForLifeUpdate; +00436 } +00437 +<a name="l00441"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z644_3">00441</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z644_3">getAccurateIntegrationParams</a>(<a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> &threshold, +00442 uint32 &maxNbIntegrations, +00443 <font class="keywordtype">bool</font> &canSlowDown, +00444 <font class="keywordtype">bool</font> &keepEllapsedTimeForLifeUpdate +00445 ) +00446 { +00447 threshold = <a class="code" href="classNL3D_1_1CParticleSystem.html#o19">_TimeThreshold</a> ; +00448 maxNbIntegrations = <a class="code" href="classNL3D_1_1CParticleSystem.html#o21">_MaxNbIntegrations</a>; +00449 canSlowDown = <a class="code" href="classNL3D_1_1CParticleSystem.html#o43">_CanSlowDown</a>; +00450 keepEllapsedTimeForLifeUpdate = <a class="code" href="classNL3D_1_1CParticleSystem.html#o48">_KeepEllapsedTimeForLifeUpdate</a>; +00451 } +00452 +00453 +00454 +00455 <font class="comment">// @}</font> +00456 +00457 <font class="comment">//*****************************************************************************************************</font> +00458 +00466 <font class="comment">// @{</font> +00467 +<a name="l00469"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_0">00469</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_0">setMaxViewDist</a>(<font class="keywordtype">float</font> maxDist) +00470 { +00471 <a class="code" href="debug_8h.html#a6">nlassert</a>(maxDist > 0.f); +00472 <a class="code" href="classNL3D_1_1CParticleSystem.html#o24">_MaxViewDist</a> = maxDist; +00473 <a class="code" href="classNL3D_1_1CParticleSystem.html#o26">_InvCurrentViewDist</a> = <a class="code" href="classNL3D_1_1CParticleSystem.html#o25">_InvMaxViewDist</a> = 1.f / maxDist; +00474 } +00475 +<a name="l00477"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_1">00477</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_1">getMaxViewDist</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o24">_MaxViewDist</a>; } +00478 +<a name="l00480"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_2">00480</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_2">setLODRatio</a>(<font class="keywordtype">float</font> ratio) { <a class="code" href="debug_8h.html#a6">nlassert</a>(ratio > 0 && ratio <= 1.f); <a class="code" href="classNL3D_1_1CParticleSystem.html#o22">_LODRatio</a> = ratio; } +00481 +<a name="l00483"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_3">00483</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_3">getLODRatio</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o22">_LODRatio</a>; } +00484 +00485 +00490 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_4">getLODVect</a>(<a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> &<a class="code" href="driver__opengl__extension__def_8h.html#a368">v</a>, <font class="keywordtype">float</font> &<a class="code" href="driver__opengl__extension__def_8h.html#a378">offset</a>, <font class="keywordtype">bool</font> systemBasis); +00491 +00493 <a class="code" href="namespaceNL3D.html#a485">TPSLod</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_5">getLOD</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>; +00494 +<a name="l00496"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_6">00496</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_6">getOneMinusCurrentLODRatio</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o23">_OneMinusCurrentLODRatio</a>; } +00497 +<a name="l00503"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_7">00503</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_7">enableAutoLOD</a>(<font class="keywordtype">bool</font> enabled = <font class="keyword">true</font>) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o47">_AutoLOD</a> = enabled; } +00504 +<a name="l00506"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_8">00506</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_8">isAutoLODEnabled</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o47">_AutoLOD</a>; } +00507 +<a name="l00512"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_9">00512</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_9">setupAutoLOD</a>(<font class="keywordtype">float</font> startDistPercent, uint8 degradationExponent) +00513 { +00514 <a class="code" href="debug_8h.html#a6">nlassert</a>(startDistPercent < 1.f); +00515 <a class="code" href="debug_8h.html#a6">nlassert</a>(degradationExponent > 0); +00516 <a class="code" href="classNL3D_1_1CParticleSystem.html#o36">_AutoLODStartDistPercent</a> = startDistPercent; +00517 <a class="code" href="classNL3D_1_1CParticleSystem.html#o37">_AutoLODDegradationExponent</a> = degradationExponent; +00518 } +00519 +00520 +<a name="l00521"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_10">00521</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_10">getAutoLODStartDistPercent</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o36">_AutoLODStartDistPercent</a>; } +<a name="l00522"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_11">00522</a> uint8 <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_11">getAutoLODDegradationExponent</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o37">_AutoLODDegradationExponent</a>; } +00523 +<a name="l00528"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_12">00528</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_12">setAutoLODMode</a>(<font class="keywordtype">bool</font> skipParticles) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o49">_AutoLODSkipParticles</a> = skipParticles; } +<a name="l00529"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_13">00529</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_13">getAutoLODMode</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o49">_AutoLODSkipParticles</a>; } +00530 +<a name="l00537"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_14">00537</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z645_14">setColorAttenuationScheme</a>(CPSAttribMaker<NLMISC::CRGBA> *colScheme) +00538 { +00539 <font class="keyword">delete</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o38">_ColorAttenuationScheme</a>; +00540 <a class="code" href="classNL3D_1_1CParticleSystem.html#o38">_ColorAttenuationScheme</a> = colScheme; +00541 <font class="keywordflow">if</font> (!colScheme) +00542 { +00543 <a class="code" href="classNL3D_1_1CParticleSystem.html#o39">_GlobalColor</a> = <a class="code" href="classNLMISC_1_1CRGBA.html#p7">NLMISC::CRGBA::White</a>; +00544 } +00545 } +00546 +<a name="l00548"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_15">00548</a> CPSAttribMaker<NLMISC::CRGBA> *<a class="code" href="classNL3D_1_1CParticleSystem.html#z645_15">getColorAttenuationScheme</a>() { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o38">_ColorAttenuationScheme</a>; } +<a name="l00549"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_16">00549</a> <font class="keyword">const</font> CPSAttribMaker<NLMISC::CRGBA> *<a class="code" href="classNL3D_1_1CParticleSystem.html#z645_15">getColorAttenuationScheme</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o38">_ColorAttenuationScheme</a>; } +00550 +<a name="l00554"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z645_17">00554</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a> &<a class="code" href="classNL3D_1_1CParticleSystem.html#z645_17">getGlobalColor</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o39">_GlobalColor</a>; } +00555 +00556 +00557 <font class="comment">// @}</font> +00558 +00559 <font class="comment">//*****************************************************************************************************</font> +00560 +00561 <font class="comment">// \name Load balancing</font> +00562 <font class="comment">// @{</font> +00563 <font class="comment">// get an evaluation of how many tris are needed with the system for the given distance</font> +00564 <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z646_0">getWantedNumTris</a>(<font class="keywordtype">float</font> dist); +00565 +00567 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z646_1">setNumTris</a>(uint numFaces); +00568 +00572 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z646_2">notifyMaxNumFacesChanged</a>(<font class="keywordtype">void</font>); +00573 +<a name="l00575"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z646_3">00575</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z646_3">isLoadBalancingEnabled</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o50">_EnableLoadBalancing</a>; } +00576 +00578 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z646_4">enableLoadBalancing</a>(<font class="keywordtype">bool</font> enabled = <font class="keyword">true</font>); +00579 <font class="comment">// @}</font> +00580 +00581 <font class="comment">//*****************************************************************************************************</font> +00582 +00584 <font class="comment">// @{ </font> +00588 <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z647_0">computeBBox</a>(<a class="code" href="classNLMISC_1_1CAABBox.html">NLMISC::CAABBox</a> &aabbox); +00589 +<a name="l00593"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z647_1">00593</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z647_1">setAutoComputeBBox</a>(<font class="keywordtype">bool</font> enable = <font class="keyword">true</font>) { <a class="code" href="classNL3D_1_1CParticleSystem.html#o40">_ComputeBBox</a> = enable; } +00594 +00595 +<a name="l00597"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z647_2">00597</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z647_2">getAutoComputeBBox</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o40">_ComputeBBox</a>; } +00598 +00599 +<a name="l00604"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z647_3">00604</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z647_3">setPrecomputedBBox</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CAABBox.html">NLMISC::CAABBox</a> &precompBBox) +00605 { +00606 <a class="code" href="debug_8h.html#a6">nlassert</a>(!<a class="code" href="classNL3D_1_1CParticleSystem.html#o40">_ComputeBBox</a>); +00607 <a class="code" href="classNL3D_1_1CParticleSystem.html#o0">_PreComputedBBox</a> = precompBBox; +00608 } +00609 +<a name="l00611"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z647_4">00611</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z647_4">getLastComputedBBox</a>(<a class="code" href="classNLMISC_1_1CAABBox.html">NLMISC::CAABBox</a> &dest) { dest = <a class="code" href="classNL3D_1_1CParticleSystem.html#o0">_PreComputedBBox</a>; } +00612 <font class="comment">// @}</font> +00613 +00614 <font class="comment">//*****************************************************************************************************</font> +00615 +00617 <font class="comment">// @{</font> +<a name="l00621"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_3">00621</a> <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_3">setDestroyModelWhenOutOfRange</a>(<font class="keywordtype">bool</font> enable = <font class="keyword">true</font>) +00622 { +00623 <a class="code" href="classNL3D_1_1CParticleSystem.html#o44">_DestroyModelWhenOutOfRange</a> = enable; +00624 <a class="code" href="classNL3D_1_1CParticleSystem.html#o34">_PresetBehaviour</a> = <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s16">UserBehaviour</a>; +00625 } +00626 +<a name="l00628"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_4">00628</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_4">getDestroyModelWhenOutOfRange</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o44">_DestroyModelWhenOutOfRange</a>; } +00629 +00630 +<a name="l00632"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_0">00632</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_0">TDieCondition</a> { <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_0s4">none</a>, <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_0s5">noMoreParticles</a>, <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_0s6">noMoreParticlesAndEmitters</a> }; +00633 +00634 +<a name="l00641"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_5">00641</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_5">setDestroyCondition</a>(<a class="code" href="classNL3D_1_1CParticleSystem.html#z648_0">TDieCondition</a> dieCondition) +00642 { +00643 <a class="code" href="classNL3D_1_1CParticleSystem.html#o27">_DieCondition</a> = dieCondition; +00644 <a class="code" href="classNL3D_1_1CParticleSystem.html#o34">_PresetBehaviour</a> = <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s16">UserBehaviour</a>; +00645 } +00646 +<a name="l00648"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_6">00648</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_0">TDieCondition</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_6">getDestroyCondition</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o27">_DieCondition</a>; } +00649 +<a name="l00658"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_7">00658</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_7">setDelayBeforeDeathConditionTest</a>(<a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> delay) +00659 { +00660 <a class="code" href="classNL3D_1_1CParticleSystem.html#o28">_DelayBeforeDieTest</a> = delay; +00661 } +00662 +<a name="l00664"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_8">00664</a> <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_8">getDelayBeforeDeathConditionTest</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o28">_DelayBeforeDieTest</a>; } +00665 +<a name="l00671"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_9">00671</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_9">destroyWhenOutOfFrustum</a>(<font class="keywordtype">bool</font> enable = <font class="keyword">true</font>) +00672 { +00673 <a class="code" href="classNL3D_1_1CParticleSystem.html#o45">_DestroyWhenOutOfFrustum</a> = enable; +00674 <a class="code" href="classNL3D_1_1CParticleSystem.html#o34">_PresetBehaviour</a> = <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s16">UserBehaviour</a>; +00675 } +00676 +<a name="l00680"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_10">00680</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_10">doesDestroyWhenOutOfFrustum</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o45">_DestroyWhenOutOfFrustum</a>; } +00681 +00682 +00684 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_11">hasEmitters</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>; +00685 +00687 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_12">hasParticles</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>; +00688 +<a name="l00690"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1">00690</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1">TAnimType</a> +00691 { <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1s7">AnimVisible</a> = 0, <font class="comment">/* visible systems only are animated */</font> +00692 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1s8">AnimInCluster</a>, <font class="comment">/* systems that are in cluster are animated */</font> +00693 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1s9">AnimAlways</a>, <font class="comment">/* animate always when not too far */</font> +00694 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1s10">LastValue</a> +00695 }; +00696 +<a name="l00700"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_13">00700</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_13">performMotionWhenOutOfFrustum</a>(<font class="keywordtype">bool</font> enable = <font class="keyword">true</font>) +00701 { +00702 <a class="code" href="classNL3D_1_1CParticleSystem.html#o30">_AnimType</a> = enable ? <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1s8">AnimInCluster</a> : <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1s7">AnimVisible</a>; +00703 <a class="code" href="classNL3D_1_1CParticleSystem.html#o34">_PresetBehaviour</a> = <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s16">UserBehaviour</a>; +00704 } +00705 +<a name="l00709"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_14">00709</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_14">doesPerformMotionWhenOutOfFrustum</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o30">_AnimType</a> == <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1s8">AnimInCluster</a>; } +00710 +<a name="l00712"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_15">00712</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_15">setAnimType</a>(<a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1">TAnimType</a> animType) +00713 { +00714 <a class="code" href="debug_8h.html#a6">nlassert</a>(animType < <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1s10">LastValue</a>); +00715 <a class="code" href="classNL3D_1_1CParticleSystem.html#o30">_AnimType</a> = animType; +00716 <a class="code" href="classNL3D_1_1CParticleSystem.html#o34">_PresetBehaviour</a> = <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s16">UserBehaviour</a>; +00717 } +00718 +<a name="l00720"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_16">00720</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1">TAnimType</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_16">getAnimType</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o30">_AnimType</a>; } +00721 +<a name="l00733"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2">00733</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2">TPresetBehaviour</a> +00734 { +00735 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s11">EnvironmentFX</a> = 0, +00736 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s12">RunningEnvironmentFX</a>, <font class="comment">/* an environment fx that should </font> +00737 <font class="comment"> * run when in parsed cluster : cascade for example,</font> +00738 <font class="comment"> * so that it doesn't start when the player first see</font> +00739 <font class="comment"> * it</font> +00740 <font class="comment"> */</font> +00741 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s13">SpellFX</a>, +00742 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s14">LoopingSpellFX</a>, +00743 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s15">MinorFX</a>, +00744 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s16">UserBehaviour</a>, +00745 <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2s17">PresetLast</a> +00746 }; +00747 +00748 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_17">activatePresetBehaviour</a>(<a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2">TPresetBehaviour</a> behaviour); +00749 +<a name="l00750"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z648_18">00750</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2">TPresetBehaviour</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_18">getBehaviourType</a>()<font class="keyword"> const </font> +00751 <font class="keyword"> </font>{ +00752 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o34">_PresetBehaviour</a>; +00753 } +00754 +00755 +00756 +00757 +00758 <font class="comment">// @}</font> +00759 +00760 <font class="comment">//*****************************************************************************************************</font> +00762 <font class="comment"> // @{</font> +<a name="l00764"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z649_2">00764</a> <font class="comment"> static void registerSoundServer(UPSSoundServer *soundServer)</font> +00765 { +00766 <a class="code" href="classNL3D_1_1CParticleSystem.html#r2">_SoundServer</a> = soundServer; +00767 } +00768 +<a name="l00770"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#z649_3">00770</a> <font class="keyword">static</font> UPSSoundServer * <a class="code" href="classNL3D_1_1CParticleSystem.html#z649_3">getSoundServer</a>(<font class="keywordtype">void</font>) +00771 { +00772 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#r2">_SoundServer</a>; +00773 } +00774 +00776 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z649_0">stopSound</a>(); +00777 +00779 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z649_1">reactivateSound</a>(); +00780 +00781 <font class="comment">// @}</font> +00782 +00783 <font class="comment">//*****************************************************************************************************</font> +00785 <font class="comment"> // @{</font> +00790 <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z650_0">registerLocatedBindableExternID</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>, CPSLocatedBindable *lb); +00791 +00793 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z650_1">unregisterLocatedBindableExternID</a>(CPSLocatedBindable *lb); +00794 <font class="comment">// @}</font> +00795 +00796 <font class="comment">//*****************************************************************************************************</font> +00798 <font class="comment"> // @{</font> +00800 <font class="comment"> uint getNumLocatedBindableByExternID(uint32 id) const;</font> +00804 <font class="comment"></font> CPSLocatedBindable *<a class="code" href="classNL3D_1_1CParticleSystem.html#z651_1">getLocatedBindableByExternID</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>, uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>); +00805 <font class="keyword">const</font> CPSLocatedBindable *<a class="code" href="classNL3D_1_1CParticleSystem.html#z651_1">getLocatedBindableByExternID</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>, uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>) <font class="keyword">const</font>; +00807 uint <a class="code" href="classNL3D_1_1CParticleSystem.html#z651_3">getNumID</a>() <font class="keyword">const</font>; +00809 uint32 <a class="code" href="classNL3D_1_1CParticleSystem.html#z651_4">getID</a>(uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>) <font class="keyword">const</font>; +00813 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#z651_5">getIDs</a>(std::vector<uint32> &dest) <font class="keyword">const</font>; +00814 <font class="comment">// @}</font> +00815 +00816 +00817 <font class="keyword">private</font>: +<a name="l00818"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#u0">00818</a> <font class="keyword">typedef</font> std::map<std::string, float> <a class="code" href="classNL3D_1_1CParticleSystem.html#u0">TGlobalValuesMap</a>; +<a name="l00819"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#u1">00819</a> <font class="keyword">typedef</font> std::map<std::string, NLMISC::CVector> <a class="code" href="classNL3D_1_1CParticleSystem.html#u1">TGlobalVectorValuesMap</a>; +00820 <font class="keyword">private</font>: +<a name="l00821"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#l0">00821</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1CParticleSystem.html#l0">CParticleSystemDetailObs</a>; +00823 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#c0">stepLocated</a>(<a class="code" href="namespaceNL3D.html#a484">TPSProcessPass</a> pass, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> et, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> realEt); +00824 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#c1">updateLODRatio</a>(); +00825 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#c2">updateColor</a>(); +00826 <font class="comment">// map that contain global value that can be affected to user param</font> +00827 <font class="keyword">static</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#u0">TGlobalValuesMap</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#r0">_GlobalValuesMap</a>; +00828 <font class="comment">// map that contain gloābal vector values</font> +00829 <font class="keyword">static</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#u1">TGlobalVectorValuesMap</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#r1">_GlobalVectorValuesMap</a>; +00830 <font class="comment">// A bbox that has been specified by the user</font> +<a name="l00831"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o0">00831</a> <a class="code" href="classNLMISC_1_1CAABBox.html">NLMISC::CAABBox</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o0">_PreComputedBBox</a>; +00832 <font class="comment">// the driver used for rendering</font> +<a name="l00833"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o1">00833</a> IDriver *<a class="code" href="classNL3D_1_1CParticleSystem.html#o1">_Driver</a>; +00834 +<a name="l00835"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#u2">00835</a> <font class="keyword">typedef</font> std::vector< CParticleSystemProcess *> <a class="code" href="classNL3D_1_1CParticleSystem.html#u2">TProcessVect</a>; +<a name="l00836"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o2">00836</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#u2">TProcessVect</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o2">_ProcessVect</a>; +<a name="l00837"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o3">00837</a> CFontGenerator *<a class="code" href="classNL3D_1_1CParticleSystem.html#o3">_FontGenerator</a>; +<a name="l00838"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o4">00838</a> CFontManager *<a class="code" href="classNL3D_1_1CParticleSystem.html#o4">_FontManager</a>; +00839 <font class="comment">// the view matrix</font> +<a name="l00840"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o5">00840</a> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o5">_ViewMat</a>; +00841 +00842 <font class="comment">// the inverted view matrix</font> +<a name="l00843"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o6">00843</a> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o6">_InvertedViewMat</a>; +00844 +00845 <font class="comment">// the matrix of the system</font> +<a name="l00846"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o7">00846</a> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o7">_SysMat</a>; +00847 <font class="comment">// The previous matrix of the system. It is used to perform emission of particles in the world basis at the right position when the systm is moving</font> +<a name="l00848"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o8">00848</a> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o8">_OldSysMat</a>; +00849 <font class="comment">// the inverted matrix of the system</font> +<a name="l00850"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o9">00850</a> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o9">_InvSysMat</a>; +00851 <font class="comment">// Current position of the system. It is interpolated during integration, and is used by emitter to emit at the correct position</font> +<a name="l00852"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o10">00852</a> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o10">_CurrentDeltaPos</a>; +00853 <font class="comment">// Delta position of the system</font> +<a name="l00854"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o11">00854</a> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o11">_DeltaPos</a>; +00855 +00856 <font class="comment">// number of rendered pass on the system, incremented each time the system is redrawn</font> +<a name="l00857"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o12">00857</a> uint64 <a class="code" href="classNL3D_1_1CParticleSystem.html#o12">_Date</a>; +00858 +<a name="l00860"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o13">00860</a> sint64 <a class="code" href="classNL3D_1_1CParticleSystem.html#o13">_LastUpdateDate</a>; +00861 +00862 <font class="comment">// current edited element located (edition purpose only)</font> +<a name="l00863"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o14">00863</a> CPSLocated *<a class="code" href="classNL3D_1_1CParticleSystem.html#o14">_CurrEditedElementLocated</a>; +00864 <font class="comment">// current edited located bindable, NULL means all binadable of a located. (edition purpose only)</font> +<a name="l00865"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o15">00865</a> CPSLocatedBindable *<a class="code" href="classNL3D_1_1CParticleSystem.html#o15">_CurrEditedElementLocatedBindable</a>; +00866 <font class="comment">// current edited element index in its located (edition purpose only)</font> +<a name="l00867"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o16">00867</a> uint32 <a class="code" href="classNL3D_1_1CParticleSystem.html#o16">_CurrEditedElementIndex</a>; +00868 +00869 +<a name="l00874"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o17">00874</a> CScene *<a class="code" href="classNL3D_1_1CParticleSystem.html#o17">_Scene</a>; +00875 +00876 +00877 <font class="comment">// contains the name of the system. (VERSION >= 2 only)</font> +<a name="l00878"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o18">00878</a> std::string <a class="code" href="classNL3D_1_1CParticleSystem.html#o18">_Name</a>; +00879 +<a name="l00880"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o19">00880</a> <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o19">_TimeThreshold</a>; +<a name="l00881"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o20">00881</a> <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o20">_SystemDate</a>; +<a name="l00882"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o21">00882</a> uint32 <a class="code" href="classNL3D_1_1CParticleSystem.html#o21">_MaxNbIntegrations</a>; +00883 +00884 +<a name="l00885"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o22">00885</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o22">_LODRatio</a>; +<a name="l00886"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o23">00886</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o23">_OneMinusCurrentLODRatio</a>; +<a name="l00887"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o24">00887</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o24">_MaxViewDist</a>; +<a name="l00888"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o25">00888</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o25">_InvMaxViewDist</a>; +<a name="l00889"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o26">00889</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o26">_InvCurrentViewDist</a>; <font class="comment">// inverse of the current view dist. It can be the same than _InvMaxViewDist</font> +00890 <font class="comment">// but when there's LOD, the view distance may be reduced </font> +00891 +<a name="l00892"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o27">00892</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_0">TDieCondition</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o27">_DieCondition</a>; +<a name="l00893"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o28">00893</a> <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o28">_DelayBeforeDieTest</a>; +<a name="l00894"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o29">00894</a> uint <a class="code" href="classNL3D_1_1CParticleSystem.html#o29">_MaxNumFacesWanted</a>; +<a name="l00895"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o30">00895</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_1">TAnimType</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o30">_AnimType</a>; +00896 +00897 <font class="keyword">static</font> UPSSoundServer *<a class="code" href="classNL3D_1_1CParticleSystem.html#r2">_SoundServer</a>; +00898 +<a name="l00899"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o31">00899</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o31">_UserParam</a>[<a class="code" href="namespaceNL3D.html#a165">MaxPSUserParam</a>]; +<a name="l00900"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o32">00900</a> <font class="keyword">const</font> TGlobalValuesMap::value_type **<a class="code" href="classNL3D_1_1CParticleSystem.html#o32">_UserParamGlobalValue</a>; <font class="comment">// usually set to NULL unless some user params mirror a global value, </font> +00901 <font class="comment">// in this case this contains as many pointer into the global map as there are user params</font> +<a name="l00902"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o33">00902</a> uint8 <a class="code" href="classNL3D_1_1CParticleSystem.html#o33">_BypassGlobalUserParam</a>; <font class="comment">// mask to bypass a global user param. This state is not serialized</font> +00903 +<a name="l00904"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o34">00904</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#z648_2">TPresetBehaviour</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o34">_PresetBehaviour</a>; +00905 +00906 <font class="keyword">typedef</font> +<a name="l00907"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#u3">00907</a> std::multimap<uint32, CPSLocatedBindable *> <a class="code" href="classNL3D_1_1CParticleSystem.html#u3">TLBMap</a>; +<a name="l00908"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o35">00908</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#u3">TLBMap</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o35">_LBMap</a>; +00909 +<a name="l00910"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o36">00910</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o36">_AutoLODStartDistPercent</a>; +<a name="l00911"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o37">00911</a> uint8 <a class="code" href="classNL3D_1_1CParticleSystem.html#o37">_AutoLODDegradationExponent</a>; +00912 +<a name="l00913"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o38">00913</a> CPSAttribMaker<NLMISC::CRGBA> *<a class="code" href="classNL3D_1_1CParticleSystem.html#o38">_ColorAttenuationScheme</a>; +<a name="l00914"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o39">00914</a> <a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a> <a class="code" href="classNL3D_1_1CParticleSystem.html#o39">_GlobalColor</a>; +00915 +<a name="l00918"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o40">00918</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o40">_ComputeBBox</a>; +<a name="l00919"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o41">00919</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o41">_BBoxTouched</a>; +<a name="l00920"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o42">00920</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o42">_AccurateIntegration</a>; +<a name="l00921"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o43">00921</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o43">_CanSlowDown</a>; +<a name="l00922"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o44">00922</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o44">_DestroyModelWhenOutOfRange</a>; +<a name="l00923"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o45">00923</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o45">_DestroyWhenOutOfFrustum</a>; +<a name="l00924"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o46">00924</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o46">_Sharing</a>; +<a name="l00925"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o47">00925</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o47">_AutoLOD</a>; +<a name="l00926"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o48">00926</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o48">_KeepEllapsedTimeForLifeUpdate</a>; +<a name="l00927"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o49">00927</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o49">_AutoLODSkipParticles</a>; +<a name="l00928"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o50">00928</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o50">_EnableLoadBalancing</a>; +00929 +<a name="l00931"></a><a class="code" href="classNL3D_1_1CParticleSystem.html#o51">00931</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#o51">_InverseEllapsedTime</a>; +00932 <font class="keyword">public</font>: +00933 <font class="comment">// For use by emitters only : This compute a delta of position to ensure that spaning position are correct when the system moves</font> +00934 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CParticleSystem.html#a2">interpolatePosDelta</a>(<a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a> &dest, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> deltaT); +00935 }; +00936 +00937 +00938 +00939 +00940 +00941 <font class="comment">// NOT USED FOR NOW</font> +00949 <font class="comment"></font><font class="comment">/*</font> +00950 <font class="comment">class CPSCopyHelper</font> +00951 <font class="comment">{</font> +00952 <font class="comment"> public:</font> +00953 <font class="comment"> // duplicate an object using the copy ctor, if it has not been before</font> +00954 <font class="comment"> template <class T> T *ctorCopy(const T &src) </font> +00955 <font class="comment"> {</font> +00956 <font class="comment"> TCopiedIt it = _Alreadycopied.find(src);</font> +00957 <font class="comment"> if (it != _AlreadyCopied.end())</font> +00958 <font class="comment"> {</font> +00959 <font class="comment"> return (T *) it;</font> +00960 <font class="comment"> }</font> +00961 <font class="comment"> else</font> +00962 <font class="comment"> {</font> +00963 <font class="comment"> T *result = new T(src);</font> +00964 <font class="comment"> _AlreadyCopied.insert((void *) result);</font> +00965 <font class="comment"> return result;</font> +00966 <font class="comment"> }</font> +00967 <font class="comment"> }</font> +00968 <font class="comment"> // duplicate an object using its clone method, if it has not been before</font> +00969 <font class="comment"></font> +00970 <font class="comment"> template <class T> T *clone(const T &src)</font> +00971 <font class="comment"> {</font> +00972 <font class="comment"> TCopiedIt it = _AlreadyCopied.find(src);</font> +00973 <font class="comment"> if (it != _AlreadyCopied.end())</font> +00974 <font class="comment"> {</font> +00975 <font class="comment"> return (T *) *it;</font> +00976 <font class="comment"> }</font> +00977 <font class="comment"> else</font> +00978 <font class="comment"> {</font> +00979 <font class="comment"> T *result = src.clone(this);</font> +00980 <font class="comment"> _AlreadyCopied.insert((void *) result);</font> +00981 <font class="comment"> return result;</font> +00982 <font class="comment"> }</font> +00983 <font class="comment"> } </font> +00984 <font class="comment"></font> +00985 <font class="comment"></font> +00986 <font class="comment"> // insert a value that has been copied by other means</font> +00987 <font class="comment"> void insert(void *ptr)</font> +00988 <font class="comment"> {</font> +00989 <font class="comment"> std::pair<TCopiedIt, bool> result = _AlreadyCopied.insert(ptr);</font> +00990 <font class="comment"> nlassert(result.second);</font> +00991 <font class="comment"> } </font> +00992 <font class="comment"></font> +00993 <font class="comment"> private:</font> +00994 <font class="comment"> typedef std::set<void *> TAlreadyCopied;</font> +00995 <font class="comment"> typedef TAlreadyCopied::iterator TCopiedIt;</font> +00996 <font class="comment"> TAlreadyCopied _AlreadyCopied;</font> +00997 <font class="comment">};</font> +00998 <font class="comment"></font> +00999 <font class="comment">*/</font> +01000 +01001 +01002 } <font class="comment">// NL3D</font> +01003 +01004 +01005 <font class="preprocessor">#endif // NL_PARTICLE_SYSTEM_H</font> +01006 <font class="preprocessor"></font> +01007 <font class="comment">/* End of particle_system.h */</font> +</pre></div> + +<!-- footer --> +<BR><FONT Size=+5> </FONT> +</TD> +<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD> +</TR> +</TABLE> +</BODY> +</HTML> |