aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/ps__particle__basic_8h-source.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/ps__particle__basic_8h-source.html')
-rw-r--r--docs/doxygen/nel/ps__particle__basic_8h-source.html646
1 files changed, 646 insertions, 0 deletions
diff --git a/docs/doxygen/nel/ps__particle__basic_8h-source.html b/docs/doxygen/nel/ps__particle__basic_8h-source.html
new file mode 100644
index 00000000..860b2a65
--- /dev/null
+++ b/docs/doxygen/nel/ps__particle__basic_8h-source.html
@@ -0,0 +1,646 @@
+<!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>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</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>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</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>
+&nbsp;
+
+<!-- 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>&nbsp;</td>
+</tr></table>
+<!-- Generated by Doxygen 1.2.14 -->
+<center>
+<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; <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> &nbsp; </center>
+<hr><h1>ps_particle_basic.h</h1><a href="ps__particle__basic_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_PS_PARTICLE_BASIC_H</font>
+00027 <font class="preprocessor"></font><font class="preprocessor">#define NL_PS_PARTICLE_BASIC_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="vector__2f_8h.html">nel/misc/vector_2f.h</a>"</font>
+00031 <font class="preprocessor">#include "<a class="code" href="ps__located_8h.html">3d/ps_located.h</a>"</font>
+00032 <font class="preprocessor">#include "<a class="code" href="ps__plane__basis_8h.html">3d/ps_plane_basis.h</a>"</font>
+00033 <font class="preprocessor">#include "<a class="code" href="material_8h.html">3d/material.h</a>"</font>
+00034 <font class="preprocessor">#include "<a class="code" href="ps__attrib__maker_8h.html">3d/ps_attrib_maker.h</a>"</font>
+00035
+00036 <font class="keyword">namespace </font>NL3D
+00037 {
+00038
+00039
+00041 <font class="comment">// class forward declarations //</font>
+00043 <font class="comment"></font>
+00044 <font class="keyword">class </font>CTextureGrouped;
+00045
+<a name="l00054"></a><a class="code" href="classNL3D_1_1CPSParticle.html">00054</a> <font class="keyword">class </font>CPSParticle : <font class="keyword">public</font> CPSLocatedBindable
+00055 {
+00056 <font class="keyword">public</font>:
+00057
+00059 <a class="code" href="classNL3D_1_1CPSParticle.html#a0">CPSParticle</a>();
+00060
+<a name="l00062"></a><a class="code" href="classNL3D_1_1CPSParticle.html#a1">00062</a> uint32 <a class="code" href="classNL3D_1_1CPSParticle.html#a1">getType</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="namespaceNL3D.html#a203">PSParticle</a>; }
+00063
+<a name="l00065"></a><a class="code" href="classNL3D_1_1CPSParticle.html#a2">00065</a> <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1CPSParticle.html#a2">getPriority</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> 1000; }
+00066
+<a name="l00068"></a><a class="code" href="classNL3D_1_1CPSParticle.html#a3">00068</a> <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a3">hasParticles</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>); <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>-&gt;getSize() != 0; }
+00069
+<a name="l00073"></a><a class="code" href="classNL3D_1_1CPSParticle.html#a4">00073</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a4">step</a>(<a class="code" href="namespaceNL3D.html#a484">TPSProcessPass</a> pass, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> ellapsedTime, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> realEt)
+00074 {
+00075 <font class="keywordflow">if</font> (
+00076 (pass == <a class="code" href="namespaceNL3D.html#a484a170">PSBlendRender</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSParticle.html#a5">hasTransparentFaces</a>())
+00077 || (pass == <a class="code" href="namespaceNL3D.html#a484a169">PSSolidRender</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSParticle.html#a6">hasOpaqueFaces</a>())
+00078 )
+00079 {
+00080 <a class="code" href="classNL3D_1_1CPSParticle.html#a7">draw</a>(pass == <a class="code" href="namespaceNL3D.html#a484a169">PSSolidRender</a>);
+00081 }
+00082 <font class="keywordflow">else</font>
+00083 <font class="keywordflow">if</font> (pass == <a class="code" href="namespaceNL3D.html#a484a171">PSToolRender</a>) <font class="comment">// edition mode only</font>
+00084 {
+00085 <a class="code" href="classNL3D_1_1CPSParticle.html#a8">showTool</a>();
+00086 }
+00087 }
+00088
+00090 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a5">hasTransparentFaces</a>(<font class="keywordtype">void</font>) = 0;
+00091
+00093 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a6">hasOpaqueFaces</a>(<font class="keywordtype">void</font>) = 0;
+00094
+<a name="l00096"></a><a class="code" href="classNL3D_1_1CPSParticle.html#a7">00096</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a7">draw</a>(<font class="keywordtype">bool</font> opaque) {}
+00097
+00099 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a8">showTool</a>();
+00100
+00102 <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1CPSParticle.html#a9">getMaxNumFaces</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> = 0;
+00103
+<a name="l00105"></a><a class="code" href="classNL3D_1_1CPSParticle.html#a10">00105</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a10">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream)
+00106 {
+00108 sint ver = f.serialVersion(2);
+00109 CPSLocatedBindable::serial(f);
+00110 <font class="keywordflow">if</font> (ver &gt;= 2)
+00111 {
+00112 f.serial(<a class="code" href="classNL3D_1_1CPSParticle.html#o0">_DisableAutoLOD</a>);
+00113 }
+00114 }
+00115
+00116
+<a name="l00118"></a><a class="code" href="classNL3D_1_1CPSParticle.html#a11">00118</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a11">disableAutoLOD</a>(<font class="keywordtype">bool</font> disable = <font class="keyword">true</font>) { <a class="code" href="classNL3D_1_1CPSParticle.html#o0">_DisableAutoLOD</a> = disable; }
+00119
+<a name="l00121"></a><a class="code" href="classNL3D_1_1CPSParticle.html#a12">00121</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSParticle.html#a12">isAutoLODDisabled</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSParticle.html#o0">_DisableAutoLOD</a>; }
+00122
+00123 <font class="keyword">protected</font>:
+00124
+<a name="l00129"></a><a class="code" href="classNL3D_1_1CPSParticle.html#b0">00129</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#b0">notifyOwnerMaxNumFacesChanged</a>(<font class="keywordtype">void</font>)<font class="keyword"> const</font>
+00130 <font class="keyword"> </font>{
+00131 <font class="keywordflow">if</font> (_Owner)
+00132 {
+00133 <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>-&gt;notifyMaxNumFacesChanged();
+00134 }
+00135 }
+00136
+00139 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#b1">newElement</a>(<a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *emitterLocated, uint32 emitterIndex) = 0;
+00140
+00145 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#b2">deleteElement</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>) = 0;
+00146
+00150 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#b3">resize</a>(uint32 size) = 0;
+00151
+00152
+00157 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSParticle.html#b4">computeSrcStep</a>(uint32 &amp;<a class="code" href="classNL3D_1_1CPSParticle.html#a4">step</a>, uint &amp;numToProcess);
+00158
+00159 <font class="keyword">private</font>:
+<a name="l00161"></a><a class="code" href="classNL3D_1_1CPSParticle.html#o0">00161</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSParticle.html#o0">_DisableAutoLOD</a>;
+00162 };
+00163
+00166
+<a name="l00168"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html">00168</a> <font class="keyword">class </font>CPSColoredParticle
+00169 {
+00170 <font class="keyword">public</font>:
+00171
+00176 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#a0">setColorScheme</a>(CPSAttribMaker&lt;CRGBA&gt; *col);
+00177
+<a name="l00179"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#a1">00179</a> CPSAttribMaker&lt;CRGBA&gt; *<a class="code" href="classNL3D_1_1CPSColoredParticle.html#a1">getColorScheme</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>; }
+00180
+<a name="l00182"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#a2">00182</a> <font class="keyword">const</font> CPSAttribMaker&lt;CRGBA&gt; *<a class="code" href="classNL3D_1_1CPSColoredParticle.html#a1">getColorScheme</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>; }
+00183
+00185 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#a3">setColor</a>(<a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a> col);
+00186
+<a name="l00188"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#a4">00188</a> <a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#a4">getColor</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n0">_Color</a>; }
+00189
+00191 <a class="code" href="classNL3D_1_1CPSColoredParticle.html#a5">CPSColoredParticle</a>();
+00192
+00194 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#a6">~CPSColoredParticle</a>();
+00195
+00197 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#a7">serialColorScheme</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00198
+00199 <font class="keyword">protected</font>:
+00200
+00202 <font class="keyword">virtual</font> CPSLocated *<a class="code" href="classNL3D_1_1CPSColoredParticle.html#b0">getColorOwner</a>(<font class="keywordtype">void</font>) = 0;
+<a name="l00203"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#n0">00203</a> CRGBA <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n0">_Color</a>;
+00204
+<a name="l00205"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">00205</a> CPSAttribMaker&lt;CRGBA&gt; *<a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>;
+00206
+00208 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#b1">updateMatAndVbForColor</a>(<font class="keywordtype">void</font>) = 0;
+00209
+<a name="l00210"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#b2">00210</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#b2">newColorElement</a>(CPSLocated *emitterLocated, uint32 emitterIndex)
+00211 {
+00212 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>-&gt;newElement(emitterLocated, emitterIndex);
+00213 }
+<a name="l00214"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#b3">00214</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#b3">deleteColorElement</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>)
+00215 {
+00216 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>-&gt;deleteElement(<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>);
+00217 }
+<a name="l00218"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#b4">00218</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSColoredParticle.html#b4">resizeColor</a>(uint32 size)
+00219 {
+00220 <a class="code" href="debug_8h.html#a6">nlassert</a>(size &lt; (1 &lt;&lt; 16));
+00221 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>-&gt;resize(size, <a class="code" href="classNL3D_1_1CPSColoredParticle.html#b0">getColorOwner</a>()-&gt;getSize());
+00222 }
+00223 };
+00224
+00227
+<a name="l00229"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html">00229</a> <font class="keyword">class </font>CPSSizedParticle
+00230 {
+00231 <font class="keyword">public</font>:
+00232
+00237 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#a0">setSizeScheme</a>(CPSAttribMaker&lt;float&gt; *size);
+00238
+00239
+00240
+<a name="l00242"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#a1">00242</a> CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSSizedParticle.html#a1">getSizeScheme</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>; }
+00243
+<a name="l00245"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#a2">00245</a> <font class="keyword">const</font> CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSSizedParticle.html#a1">getSizeScheme</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>; }
+00246
+00248 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#a3">setSize</a>(<font class="keywordtype">float</font> size);
+00249
+<a name="l00251"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#a4">00251</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#a4">getSize</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n0">_ParticleSize</a>; }
+00252
+00254 <a class="code" href="classNL3D_1_1CPSSizedParticle.html#a5">CPSSizedParticle</a>();
+00255
+00257 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#a6">~CPSSizedParticle</a>();
+00258
+00260 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#a7">serialSizeScheme</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00261
+00262 <font class="keyword">protected</font>:
+00263
+00265 <font class="keyword">virtual</font> CPSLocated *<a class="code" href="classNL3D_1_1CPSSizedParticle.html#b0">getSizeOwner</a>(<font class="keywordtype">void</font>) = 0;
+<a name="l00266"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#n0">00266</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n0">_ParticleSize</a>;
+<a name="l00267"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">00267</a> CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>;
+<a name="l00268"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#b1">00268</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#b1">newSizeElement</a>(CPSLocated *emitterLocated, uint32 emitterIndex)
+00269 {
+00270 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>-&gt;newElement(emitterLocated, emitterIndex);
+00271 }
+<a name="l00272"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#b2">00272</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#b2">deleteSizeElement</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>)
+00273 {
+00274 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>-&gt;deleteElement(<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>);
+00275 }
+<a name="l00276"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#b3">00276</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSSizedParticle.html#b3">resizeSize</a>(uint32 size)
+00277 {
+00278 <a class="code" href="debug_8h.html#a6">nlassert</a>(size &lt; (1 &lt;&lt; 16));
+00279 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>-&gt;resize(size, <a class="code" href="classNL3D_1_1CPSSizedParticle.html#b0">getSizeOwner</a>()-&gt;<a class="code" href="classNL3D_1_1CPSSizedParticle.html#a4">getSize</a>());
+00280 }
+00281 };
+00282
+00283
+00286
+<a name="l00288"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html">00288</a> <font class="keyword">class </font>CPSRotated2DParticle
+00289 {
+00290 <font class="keyword">public</font>:
+00291
+00297 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a0">setAngle2DScheme</a>(CPSAttribMaker&lt;float&gt; *scheme);
+00298
+<a name="l00300"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a1">00300</a> CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a1">getAngle2DScheme</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>; }
+00301
+<a name="l00303"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a2">00303</a> <font class="keyword">const</font> CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a1">getAngle2DScheme</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>; }
+00304
+00305
+00310 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a3">setAngle2D</a>(<font class="keywordtype">float</font> angle);
+00311
+<a name="l00313"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a4">00313</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a4">getAngle2D</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n0">_Angle2D</a>; }
+00314
+00316 <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a5">CPSRotated2DParticle</a>();
+00317
+00319 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a6">~CPSRotated2DParticle</a>();
+00320
+00322 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a7">serialAngle2DScheme</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00323
+00324
+00325
+<a name="l00331"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#d0">00331</a> <font class="keyword">static</font> <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">float</font> *<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#d0">getRotTable</a>(<font class="keywordtype">void</font>)
+00332 {
+00333 <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#q1">_InitializedRotTab</a>); <font class="comment">// must have called initRotTable at the start of the apply</font>
+00334 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#q0">_RotTable</a>;
+00335 }
+00336
+00338 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#d1">initRotTable</a>(<font class="keywordtype">void</font>);
+00339
+00340 <font class="keyword">protected</font>:
+00342 <font class="keyword">virtual</font> CPSLocated *<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b0">getAngle2DOwner</a>(<font class="keywordtype">void</font>) = 0;
+00343
+<a name="l00344"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n0">00344</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n0">_Angle2D</a>;
+<a name="l00345"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">00345</a> CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>;
+00346 <font class="keyword">static</font> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#q0">_RotTable</a>[4 * 256];
+00347
+00348 <font class="comment">//#ifdef NL_DEBUG</font>
+00350 <font class="comment"> static bool _InitializedRotTab;</font>
+00351 <font class="comment">//#endif</font>
+00352
+<a name="l00353"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b1">00353</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b1">newAngle2DElement</a>(CPSLocated *emitterLocated, uint32 emitterIndex)
+00354 {
+00355 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>-&gt;newElement(emitterLocated, emitterIndex);
+00356 }
+<a name="l00357"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b2">00357</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b2">deleteAngle2DElement</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>)
+00358 {
+00359 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>-&gt;deleteElement(<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>);
+00360 }
+<a name="l00361"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b3">00361</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b3">resizeAngle2D</a>(uint32 size)
+00362 {
+00363 <a class="code" href="debug_8h.html#a6">nlassert</a>(size &lt; (1 &lt;&lt; 16));
+00364 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>-&gt;resize(size, <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b0">getAngle2DOwner</a>()-&gt;getSize());
+00365 }
+00366 };
+00367
+00368
+00371
+<a name="l00373"></a><a class="code" href="structNL3D_1_1CPSTexturedParticleNoAnim.html">00373</a> <font class="keyword">struct </font>CPSTexturedParticleNoAnim
+00374 {
+00376 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CPSTexturedParticleNoAnim.html#a0">setTexture</a>(CSmartPtr&lt;ITexture&gt; tex) = 0;
+00378 <font class="keyword">virtual</font> ITexture *<a class="code" href="structNL3D_1_1CPSTexturedParticleNoAnim.html#a1">getTexture</a>(<font class="keywordtype">void</font>) = 0;
+00379 <font class="keyword">virtual</font> <font class="keyword">const</font> ITexture *<a class="code" href="structNL3D_1_1CPSTexturedParticleNoAnim.html#a1">getTexture</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> = 0;
+00380 };
+00381
+00384
+<a name="l00388"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html">00388</a> <font class="keyword">class </font>CPSTexturedParticle
+00389 {
+00390 <font class="keyword">public</font>:
+00391
+00398 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a0">setTextureIndexScheme</a>(CPSAttribMaker&lt;sint32&gt; *animOrder);
+00399
+<a name="l00401"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a1">00401</a> CPSAttribMaker&lt;sint32&gt; *<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a1">getTextureIndexScheme</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>; }
+00402
+<a name="l00404"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a2">00404</a> <font class="keyword">const</font> CPSAttribMaker&lt;sint32&gt; *<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a1">getTextureIndexScheme</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>; }
+00405
+00407 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a3">setTextureIndex</a>(sint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>);
+00408
+<a name="l00410"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a4">00410</a> sint32 <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a4">getTextureIndex</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n3">_TextureIndex</a>; }
+00411
+00413 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a5">setTextureGroup</a>(<a class="code" href="classNLMISC_1_1CSmartPtr.html">NLMISC::CSmartPtr&lt;CTextureGrouped&gt;</a> texGroup);
+00414
+<a name="l00416"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a6">00416</a> CTextureGrouped *<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a6">getTextureGroup</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n1">_TexGroup</a>; }
+00417
+<a name="l00419"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a7">00419</a> <font class="keyword">const</font> CTextureGrouped *<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a6">getTextureGroup</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n1">_TexGroup</a>; }
+00420
+00425 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a8">setTexture</a>(CSmartPtr&lt;ITexture&gt; tex);
+00426
+<a name="l00428"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a9">00428</a> ITexture *<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a9">getTexture</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n0">_Tex</a>; }
+00429 <font class="comment">// get the texture (const version)</font>
+<a name="l00430"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a10">00430</a> <font class="keyword">const</font> ITexture *<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a9">getTexture</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n0">_Tex</a>; }
+00431
+00433 <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a11">CPSTexturedParticle</a>();
+00434
+00436 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a12">~CPSTexturedParticle</a>();
+00437
+00439 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a13">serialTextureScheme</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00440
+00441 <font class="keyword">protected</font>:
+00443 <font class="keyword">virtual</font> CPSLocated *<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b0">getTextureIndexOwner</a>(<font class="keywordtype">void</font>) = 0;
+00444
+00445 <font class="comment">// a single texture</font>
+<a name="l00446"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n0">00446</a> CSmartPtr&lt;ITexture&gt; <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n0">_Tex</a>;
+00447
+00448 <font class="comment">// a grouped texture</font>
+<a name="l00449"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n1">00449</a> CSmartPtr&lt;CTextureGrouped&gt; <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n1">_TexGroup</a>;
+00450
+<a name="l00451"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">00451</a> CPSAttribMaker&lt;sint32&gt; *<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>;
+00452
+00453 <font class="comment">// a texture index. Most of the time, a scheme of index will be used instead of that</font>
+<a name="l00454"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n3">00454</a> sint32 <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n3">_TextureIndex</a>;
+00455
+00457 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b1">updateMatAndVbForTexture</a>(<font class="keywordtype">void</font>) = 0;
+00458
+<a name="l00459"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b2">00459</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b2">newTextureIndexElement</a>(CPSLocated *emitterLocated, uint32 emitterIndex)
+00460 {
+00461 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>-&gt;newElement(emitterLocated, emitterIndex);
+00462 }
+<a name="l00463"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b3">00463</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b3">deleteTextureIndexElement</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>)
+00464 {
+00465 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>-&gt;deleteElement(<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>);
+00466 }
+<a name="l00467"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b4">00467</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b4">resizeTextureIndex</a>(uint32 size)
+00468 {
+00469 <a class="code" href="debug_8h.html#a6">nlassert</a>(size &lt; (1 &lt;&lt; 16));
+00470 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>-&gt;resize(size, <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b0">getTextureIndexOwner</a>()-&gt;getSize() );
+00471 }
+00472 };
+00473
+00476
+<a name="l00482"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html">00482</a> <font class="keyword">class </font>CPSMultiTexturedParticle
+00483 {
+00484 <font class="keyword">public</font>:
+00486 <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a0">CPSMultiTexturedParticle</a>();
+00487
+<a name="l00489"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5">00489</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5">TOperator</a> { <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5s0">Add</a> = 0, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5s1">Modulate</a>, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5s2">Decal</a>, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5s3">EnvBumpMap</a>, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5s4">Last</a> = 0xff };
+00490
+00492 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a1">enableMultiTexture</a>(<font class="keywordtype">bool</font> enabled = <font class="keyword">true</font>);
+<a name="l00493"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a2">00493</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a2">isMultiTextureEnabled</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp; (uint8) <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t1">MultiTextureEnabled</a>) != 0; }
+00494
+00496 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a3">setTexture2</a>(ITexture *tex);
+00497
+<a name="l00499"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a4">00499</a> <font class="keyword">const</font> ITexture *<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a4">getTexture2</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n2">_Texture2</a>; }
+<a name="l00500"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a5">00500</a> ITexture *<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a4">getTexture2</a>() { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n2">_Texture2</a>; }
+00501
+00505 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a6">setMainTexOp</a>(<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5">TOperator</a> op);
+00506
+<a name="l00507"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a7">00507</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5">TOperator</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a7">getMainTexOp</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n0">_MainOp</a>; }
+00508
+00509 <font class="comment">// Enable the use of an alternate texture for multitexturing. When disabled, this discard the textures that may have been set.</font>
+00510 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a8">enableAlternateTex</a>(<font class="keywordtype">bool</font> enabled = <font class="keyword">true</font>);
+<a name="l00511"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a9">00511</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a9">isAlternateTexEnabled</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp; (uint8) <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t2">AlternateTextureEnabled</a>) != 0; }
+00512
+00514 <font class="comment">// Convert the texture to / from a bumpmap if needed. (so you just provide its heightmap)</font>
+00515 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a10">setTexture2Alternate</a>(ITexture *tex);
+00516
+<a name="l00518"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a11">00518</a> <font class="keyword">const</font> ITexture *<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a11">getTexture2Alternate</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n3">_AlternateTexture2</a>; }
+<a name="l00519"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a12">00519</a> ITexture *<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a11">getTexture2Alternate</a>() { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n3">_AlternateTexture2</a>; }
+00520
+00522 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a13">setAlternateTexOp</a>(<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5">TOperator</a> op);
+00523
+<a name="l00524"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a14">00524</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5">TOperator</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a14">getAlternateTexOp</a>()<font class="keyword"> const </font>
+00525 <font class="keyword"> </font>{
+00526 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n1">_AlternateOp</a>;
+00527 }
+00528
+<a name="l00532"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a15">00532</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a15">setScrollSpeed</a>(uint stage, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> &amp;sp)
+00533 {
+00534 <a class="code" href="debug_8h.html#a6">nlassert</a>(stage &lt; 2);
+00535 <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n4">_TexScroll</a>[stage] = sp;
+00536 }
+<a name="l00537"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a16">00537</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> &amp;<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a16">getScrollSpeed</a>(uint stage)<font class="keyword"> const</font>
+00538 <font class="keyword"> </font>{
+00539 <a class="code" href="debug_8h.html#a6">nlassert</a>(stage &lt; 2);
+00540 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n4">_TexScroll</a>[stage];
+00541 }
+00542
+<a name="l00546"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a17">00546</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a17">setAlternateScrollSpeed</a>(uint stage, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> &amp;sp)
+00547 {
+00548 <a class="code" href="debug_8h.html#a6">nlassert</a>(stage &lt; 2);
+00549 <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n5">_TexScrollAlternate</a>[stage] = sp;
+00550 }
+<a name="l00551"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a18">00551</a> <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> &amp;<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a18">getAlternateScrollSpeed</a>(uint stage)<font class="keyword"> const</font>
+00552 <font class="keyword"> </font>{
+00553 <a class="code" href="debug_8h.html#a6">nlassert</a>(stage &lt; 2);
+00554 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n5">_TexScrollAlternate</a>[stage];
+00555 }
+00556
+00558 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a19">serialMultiTex</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00559
+00564 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a20">setupMaterial</a>(ITexture *primary, IDriver *drv, CMaterial &amp;mat);
+00565
+<a name="l00569"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#d0">00569</a> <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#d0">forceBasicCaps</a>(<font class="keywordtype">bool</font> force = <font class="keyword">true</font>) { <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#q0">_ForceBasicCaps</a> = force; }
+00570
+<a name="l00572"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#d1">00572</a> <font class="keyword">static</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#d1">areBasicCapsForced</a>() { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#q0">_ForceBasicCaps</a>; }
+00573
+00575 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a21">setUseLocalDate</a>(<font class="keywordtype">bool</font> use);
+<a name="l00576"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a22">00576</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a22">getUseLocalDate</a>() { <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp; <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t6">ScrollUseLocalDate</a>) != 0; }
+00577
+00579 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a23">setUseLocalDateAlt</a>(<font class="keywordtype">bool</font> use);
+<a name="l00580"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a24">00580</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a24">getUseLocalDateAlt</a>() { <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp; <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t7">ScrollUseLocalDateAlternate</a>) != 0; }
+00581
+<a name="l00583"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a25">00583</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a25">setBumpFactor</a>(<font class="keywordtype">float</font> bumpFactor) { <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n7">_BumpFactor</a> = bumpFactor; <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b3">touch</a>(); }
+<a name="l00584"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a26">00584</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#a26">getBumpFactor</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n7">_BumpFactor</a>; }
+00585
+00586 <font class="keyword">protected</font>:
+00587 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b0">setupMultiTexEnv</a>(<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5">TOperator</a> op, ITexture *tex1, ITexture *tex2, CMaterial &amp;mat);
+<a name="l00588"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n0">00588</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#s5">TOperator</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n0">_MainOp</a>, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n1">_AlternateOp</a>;
+<a name="l00589"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n2">00589</a> <a class="code" href="classNLMISC_1_1CSmartPtr.html">NLMISC::CSmartPtr&lt;ITexture&gt;</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n2">_Texture2</a>;
+<a name="l00590"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n3">00590</a> <a class="code" href="classNLMISC_1_1CSmartPtr.html">NLMISC::CSmartPtr&lt;ITexture&gt;</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n3">_AlternateTexture2</a>;
+00591
+<a name="l00593"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n4">00593</a> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n4">_TexScroll</a>[2];
+<a name="l00595"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n5">00595</a> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n5">_TexScrollAlternate</a>[2];
+00596
+<a name="l00597"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8">00597</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8">TMultiTexState</a> { <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t0">TouchFlag</a> = 0x01, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t1">MultiTextureEnabled</a> = 0x02, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t2">AlternateTextureEnabled</a> = 0x04, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t3">AlternateTextureUsed</a> = 0x08, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t4">EnvBumpMapUsed</a> = 0x10, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t5">BasicCapsForced</a> = 0x20,
+00598 <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t6">ScrollUseLocalDate</a> = 0x40, <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t7">ScrollUseLocalDateAlternate</a> = 0x80
+00599 };
+<a name="l00600"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">00600</a> uint8 <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a>;
+00601
+<a name="l00603"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b1">00603</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b1">isAlternateTextureUsed</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp; <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t3">AlternateTextureUsed</a>) != 0; }
+<a name="l00604"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b2">00604</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b2">isEnvBumpMapUsed</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp; <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t4">EnvBumpMapUsed</a>) != 0; }
+00605
+<a name="l00606"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b3">00606</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b3">touch</a>() { <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> |= (uint8) <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t0">TouchFlag</a>; }
+<a name="l00607"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b4">00607</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b4">unTouch</a>() { <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp;= ~ (uint8) <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t0">TouchFlag</a>; }
+<a name="l00608"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b5">00608</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b5">isTouched</a>() { <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp; <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t0">TouchFlag</a>) != 0; }
+<a name="l00609"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b6">00609</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b6">areBasicCapsForcedLocal</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp; <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t5">BasicCapsForced</a>) != 0; }
+<a name="l00610"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b7">00610</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#b7">forceBasicCapsLocal</a>(<font class="keywordtype">bool</font> force)
+00611 {
+00612 <font class="keywordflow">if</font> (force) <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> |= <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t5">BasicCapsForced</a>;
+00613 <font class="keywordflow">else</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n6">_MultiTexState</a> &amp;= ~<a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#t8t5">BasicCapsForced</a>;
+00614 }
+<a name="l00615"></a><a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n7">00615</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#n7">_BumpFactor</a>;
+00616 <font class="keyword">static</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMultiTexturedParticle.html#q0">_ForceBasicCaps</a>;
+00617 };
+00618
+00619
+00622
+<a name="l00626"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html">00626</a> <font class="keyword">class </font>CPSRotated3DPlaneParticle
+00627 {
+00628 <font class="keyword">public</font>:
+00629
+00634 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a0">setPlaneBasisScheme</a>(CPSAttribMaker&lt;CPlaneBasis&gt; *basisMaker);
+00635
+00640
+<a name="l00641"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a1">00641</a> CPSAttribMaker&lt;CPlaneBasis&gt; *<a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a1">getPlaneBasisScheme</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>; }
+00642
+<a name="l00644"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a2">00644</a> <font class="keyword">const</font> CPSAttribMaker&lt;CPlaneBasis&gt; *<a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a1">getPlaneBasisScheme</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>; }
+00645
+00646 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a3">setPlaneBasis</a>(<font class="keyword">const</font> CPlaneBasis &amp;basis);
+00647
+<a name="l00649"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a4">00649</a> CPlaneBasis <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a4">getPlaneBasis</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n1">_PlaneBasis</a>; }
+00650
+00652 <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a5">CPSRotated3DPlaneParticle</a>();
+00653
+00655 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a6">~CPSRotated3DPlaneParticle</a>();
+00656
+00658 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a7">serialPlaneBasisScheme</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00659
+00660 <font class="keyword">protected</font>:
+00662
+00664 <font class="keyword">virtual</font> CPSLocated *<a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b0">getPlaneBasisOwner</a>(<font class="keywordtype">void</font>) = 0;
+00665
+<a name="l00666"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">00666</a> CPSAttribMaker&lt;CPlaneBasis&gt; *<a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>;
+00667
+<a name="l00668"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n1">00668</a> CPlaneBasis <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n1">_PlaneBasis</a>; <font class="comment">// constant basis..</font>
+00669
+<a name="l00670"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b1">00670</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b1">newPlaneBasisElement</a>(CPSLocated *emitterLocated, uint32 emitterIndex)
+00671 {
+00672 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>-&gt;newElement(emitterLocated, emitterIndex);
+00673 }
+<a name="l00674"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b2">00674</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b2">deletePlaneBasisElement</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>)
+00675 {
+00676 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>-&gt;deleteElement(<a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>);
+00677 }
+<a name="l00678"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b3">00678</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b3">resizePlaneBasis</a>(uint32 size)
+00679 {
+00680 <a class="code" href="debug_8h.html#a6">nlassert</a>(size &lt; (1 &lt;&lt; 16));
+00681 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a> &amp;&amp; <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>-&gt;hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>-&gt;resize(size, <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b0">getPlaneBasisOwner</a>()-&gt;getSize());
+00682 }
+00683 };
+00684
+00687
+<a name="l00692"></a><a class="code" href="structNL3D_1_1CPSHintParticleRotateTheSame.html">00692</a> <font class="keyword">struct </font>CPSHintParticleRotateTheSame
+00693 {
+00703 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CPSHintParticleRotateTheSame.html#a0">hintRotateTheSame</a>(uint32 nbConfiguration
+00704 , <font class="keywordtype">float</font> minAngularVelocity = NLMISC::Pi
+00705 , <font class="keywordtype">float</font> maxAngularVelocity = NLMISC::Pi
+00706 ) = 0;
+00707
+00712 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CPSHintParticleRotateTheSame.html#a1">disableHintRotateTheSame</a>(<font class="keywordtype">void</font>) = 0;
+00713
+00714
+00719 <font class="keyword">virtual</font> uint32 <a class="code" href="structNL3D_1_1CPSHintParticleRotateTheSame.html#a2">checkHintRotateTheSame</a>(<font class="keywordtype">float</font> &amp;minAngularVelocity, <font class="keywordtype">float</font> &amp;maxAngularVelocity) <font class="keyword">const</font> = 0;
+00720 };
+00721
+00724
+<a name="l00726"></a><a class="code" href="structNL3D_1_1CPSTailParticle.html">00726</a> <font class="keyword">struct </font>CPSTailParticle
+00727 {
+00731 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CPSTailParticle.html#a0">setColorFading</a>(<font class="keywordtype">bool</font> onOff = <font class="keyword">true</font>) = 0;
+00732
+00734 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CPSTailParticle.html#a1">getColorFading</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> = 0;
+00735
+00736
+00738 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CPSTailParticle.html#a2">setTailNbSeg</a>(uint32 nbSeg) = 0;
+00739
+00740 <font class="comment">// get the number of segments in the tail</font>
+00741 <font class="keyword">virtual</font> uint32 <a class="code" href="structNL3D_1_1CPSTailParticle.html#a3">getTailNbSeg</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> = 0;
+00742
+00743
+00748 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CPSTailParticle.html#a4">setSystemBasis</a>(<font class="keywordtype">bool</font> yes) = 0;
+00749
+00751 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CPSTailParticle.html#a5">isInSystemBasis</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> = 0;
+00752 };
+00753
+00756
+<a name="l00758"></a><a class="code" href="structNL3D_1_1CPSShapeParticle.html">00758</a> <font class="keyword">struct </font>CPSShapeParticle
+00759 {
+00761 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CPSShapeParticle.html#a0">setShape</a>(<font class="keyword">const</font> std::string &amp;shape) = 0;
+00762
+00764 <font class="keyword">virtual</font> std::string <a class="code" href="structNL3D_1_1CPSShapeParticle.html#a1">getShape</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> = 0;
+00765 };
+00766
+00769
+<a name="l00773"></a><a class="code" href="classNL3D_1_1CPSMaterial.html">00773</a> <font class="keyword">class </font>CPSMaterial
+00774 {
+00775 <font class="keyword">public</font>:
+00777 <a class="code" href="classNL3D_1_1CPSMaterial.html#a0">CPSMaterial</a>();
+00778
+<a name="l00780"></a><a class="code" href="classNL3D_1_1CPSMaterial.html#s4">00780</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CPSMaterial.html#s4">TBlendingMode</a> { <a class="code" href="classNL3D_1_1CPSMaterial.html#s4s0">add</a>, <a class="code" href="classNL3D_1_1CPSMaterial.html#s4s1">modulate</a>, <a class="code" href="classNL3D_1_1CPSMaterial.html#s4s2">alphaBlend</a>, <a class="code" href="classNL3D_1_1CPSMaterial.html#s4s3">alphaTest</a> };
+00781
+00783 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMaterial.html#a1">serialMaterial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00784
+00786 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMaterial.html#a2">setBlendingMode</a>(CPSMaterial::TBlendingMode mode);
+00787
+00789 CPSMaterial::TBlendingMode <a class="code" href="classNL3D_1_1CPSMaterial.html#a3">getBlendingMode</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
+00790
+00791
+00796 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMaterial.html#a4">forceModulateConstantColor</a>(<font class="keywordtype">bool</font> force, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a> &amp;col = <a class="code" href="classNLMISC_1_1CRGBA.html#p7">NLMISC::CRGBA::White</a>);
+00797
+00804 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMaterial.html#a5">forceTexturedMaterialStages</a>(uint numStages);
+00805
+00806
+00807 <font class="keyword">protected</font>:
+<a name="l00808"></a><a class="code" href="classNL3D_1_1CPSMaterial.html#n0">00808</a> CMaterial <a class="code" href="classNL3D_1_1CPSMaterial.html#n0">_Mat</a>;
+00809 };
+00810
+00811
+00812 <font class="comment">//========================================================================== </font>
+00814 <font class="comment">inline void SetupModulatedStage(CMaterial &amp;m, uint stage, CMaterial::TTexSource src1, CMaterial::TTexSource src2)</font>
+00815 {
+00816 m.texEnvOpRGB(stage, CMaterial::Modulate);
+00817 m.texEnvOpAlpha(stage, CMaterial::Modulate);
+00818 m.texEnvArg0RGB(stage, src1, CMaterial::SrcColor);
+00819 m.texEnvArg1RGB(stage, src2, CMaterial::SrcColor);
+00820 m.texEnvArg0Alpha(stage, src1, CMaterial::SrcAlpha);
+00821 m.texEnvArg1Alpha(stage, src2, CMaterial::SrcAlpha);
+00822 }
+00823
+00824
+00825
+00826
+00827 } <font class="comment">// NL3D</font>
+00828
+00829
+00830 <font class="preprocessor">#endif // NL_PS_PARTICLE_BASIC_H</font>
+00831 <font class="preprocessor"></font>
+00832 <font class="comment">/* End of ps_particle_basic.h */</font>
+</pre></div>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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>