diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/ps__particle__basic_8h-source.html | 646 |
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> <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>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>->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> && <a class="code" href="classNL3D_1_1CPSParticle.html#a5">hasTransparentFaces</a>()) +00077 || (pass == <a class="code" href="namespaceNL3D.html#a484a169">PSSolidRender</a> && <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> &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 >= 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>->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 &<a class="code" href="classNL3D_1_1CPSParticle.html#a4">step</a>, uint &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<CRGBA> *col); +00177 +<a name="l00179"></a><a class="code" href="classNL3D_1_1CPSColoredParticle.html#a1">00179</a> CPSAttribMaker<CRGBA> *<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<CRGBA> *<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> &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<CRGBA> *<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> && <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>->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> && <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>->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 < (1 << 16)); +00221 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a> && <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSColoredParticle.html#n1">_ColorScheme</a>->resize(size, <a class="code" href="classNL3D_1_1CPSColoredParticle.html#b0">getColorOwner</a>()->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<float> *size); +00238 +00239 +00240 +<a name="l00242"></a><a class="code" href="classNL3D_1_1CPSSizedParticle.html#a1">00242</a> CPSAttribMaker<float> *<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<float> *<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> &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<float> *<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> && <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>->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> && <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>->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 < (1 << 16)); +00279 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a> && <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSSizedParticle.html#n1">_SizeScheme</a>->resize(size, <a class="code" href="classNL3D_1_1CPSSizedParticle.html#b0">getSizeOwner</a>()-><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<float> *scheme); +00298 +<a name="l00300"></a><a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#a1">00300</a> CPSAttribMaker<float> *<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<float> *<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> &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<float> *<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> && <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>->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> && <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>->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 < (1 << 16)); +00364 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a> && <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#n1">_Angle2DScheme</a>->resize(size, <a class="code" href="classNL3D_1_1CPSRotated2DParticle.html#b0">getAngle2DOwner</a>()->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<ITexture> 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<sint32> *animOrder); +00399 +<a name="l00401"></a><a class="code" href="classNL3D_1_1CPSTexturedParticle.html#a1">00401</a> CPSAttribMaker<sint32> *<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<sint32> *<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<CTextureGrouped></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<ITexture> 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> &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<ITexture> <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<CTextureGrouped> <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<sint32> *<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> && <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>->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> && <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>->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 < (1 << 16)); +00470 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a> && <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#n2">_TextureIndexScheme</a>->resize(size, <a class="code" href="classNL3D_1_1CPSTexturedParticle.html#b0">getTextureIndexOwner</a>()->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> & (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> & (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> &sp) +00533 { +00534 <a class="code" href="debug_8h.html#a6">nlassert</a>(stage < 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> &<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 < 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> &sp) +00547 { +00548 <a class="code" href="debug_8h.html#a6">nlassert</a>(stage < 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> &<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 < 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> &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 &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> & <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> & <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 &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<ITexture></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<ITexture></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> & <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> & <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> &= ~ (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> & <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> & <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> &= ~<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<CPlaneBasis> *basisMaker); +00635 +00640 +<a name="l00641"></a><a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#a1">00641</a> CPSAttribMaker<CPlaneBasis> *<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<CPlaneBasis> *<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 &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> &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<CPlaneBasis> *<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> && <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>->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> && <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>->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 < (1 << 16)); +00681 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a> && <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>->hasMemory()) <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#n0">_PlaneBasisScheme</a>->resize(size, <a class="code" href="classNL3D_1_1CPSRotated3DPlaneParticle.html#b0">getPlaneBasisOwner</a>()->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> &minAngularVelocity, <font class="keywordtype">float</font> &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 &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> &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> &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 &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> </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> |