aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/ps__mesh_8h-source.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/ps__mesh_8h-source.html486
1 files changed, 486 insertions, 0 deletions
diff --git a/docs/doxygen/nel/ps__mesh_8h-source.html b/docs/doxygen/nel/ps__mesh_8h-source.html
new file mode 100644
index 00000000..59a31781
--- /dev/null
+++ b/docs/doxygen/nel/ps__mesh_8h-source.html
@@ -0,0 +1,486 @@
+<!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_mesh.h</h1><a href="ps__mesh_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
+00007 <font class="comment">/* Copyright, 2000, 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_MESH_H</font>
+00027 <font class="preprocessor"></font><font class="preprocessor">#define NL_PS_MESH_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="class__registry_8h.html">nel/misc/class_registry.h</a>"</font>
+00031 <font class="preprocessor">#include "<a class="code" href="ps__particle__basic_8h.html">3d/ps_particle_basic.h</a>"</font>
+00032 <font class="preprocessor">#include "<a class="code" href="ps__attrib_8h.html">3d/ps_attrib.h</a>"</font>
+00033 <font class="preprocessor">#include "<a class="code" href="ps__plane__basis_8h.html">3d/ps_plane_basis.h</a>"</font>
+00034 <font class="preprocessor">#include "<a class="code" href="vertex__buffer_8h.html">3d/vertex_buffer.h</a>"</font>
+00035 <font class="preprocessor">#include "<a class="code" href="material_8h.html">3d/material.h</a>"</font>
+00036 <font class="preprocessor">#include "<a class="code" href="3d_2primitive__block_8h.html">3d/primitive_block.h</a>"</font>
+00037 <font class="preprocessor">#include "<a class="code" href="shape_8h.html">3d/shape.h</a>"</font>
+00038
+00039
+00040
+00041 <font class="preprocessor">#include &lt;string&gt;</font>
+00042 <font class="preprocessor">#include &lt;vector&gt;</font>
+00043 <font class="preprocessor">#include &lt;queue&gt;</font>
+00044
+00045 <font class="keyword">namespace </font>NLMISC
+00046 {
+00047 <font class="keyword">class </font>IStream;
+00048 <font class="keyword">struct </font>EStream;
+00049 }
+00050
+00051
+00052 <font class="keyword">namespace </font>NL3D {
+00053
+00054
+00055 <font class="keyword">class </font>CPSLocated;
+00056 <font class="keyword">class </font>CTransformShape;
+00057 <font class="keyword">class </font>CShapeBank;
+00058 <font class="keyword">class </font>CMesh;
+00059
+00060
+00061
+00062 <font class="keyword">const</font> uint <a class="code" href="namespaceNL3D.html#a211">ConstraintMeshMaxNumVerts</a> = 512; <font class="comment">// the maximum number of vertices for a constraint mesh</font>
+00063 <font class="keyword">const</font> uint <a class="code" href="namespaceNL3D.html#a212">ConstraintMeshBufSize</a> = 64; <font class="comment">// number of meshs to be processed at once...</font>
+00064 <font class="keyword">const</font> uint <a class="code" href="namespaceNL3D.html#a213">ConstraintMeshMaxNumPrerotatedModels</a> = 32; <font class="comment">// maximum number of meshs that can be prerotated</font>
+00065
+<a name="l00072"></a><a class="code" href="classNL3D_1_1CPSMesh.html">00072</a> <font class="keyword">class </font>CPSMesh : <font class="keyword">public</font> CPSParticle,
+00073 <font class="keyword">public</font> CPSSizedParticle,
+00074 <font class="keyword">public</font> CPSRotated3DPlaneParticle,
+00075 <font class="keyword">public</font> CPSRotated2DParticle,
+00076 <font class="keyword">public</font> CPSShapeParticle
+00077 {
+00078 <font class="keyword">public</font>:
+<a name="l00080"></a><a class="code" href="classNL3D_1_1CPSMesh.html#a0">00080</a> <a class="code" href="classNL3D_1_1CPSMesh.html#a0">CPSMesh</a>(<font class="keyword">const</font> std::string &amp;shape = <font class="stringliteral">""</font>) : <a class="code" href="classNL3D_1_1CPSMesh.html#n2">_Invalidated</a>(false)
+00081 {
+00082 <a class="code" href="classNL3D_1_1CPSMesh.html#n0">_Shape</a> = shape;
+00083 <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n3">_Name</a> = std::string(<font class="stringliteral">"Mesh"</font>);
+00084 }
+00085
+<a name="l00087"></a><a class="code" href="classNL3D_1_1CPSMesh.html#a1">00087</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMesh.html#a1">setShape</a>(<font class="keyword">const</font> std::string &amp;shape) { <a class="code" href="classNL3D_1_1CPSMesh.html#n0">_Shape</a> = shape; }
+00088
+<a name="l00090"></a><a class="code" href="classNL3D_1_1CPSMesh.html#a2">00090</a> std::string <a class="code" href="classNL3D_1_1CPSMesh.html#a2">getShape</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSMesh.html#n0">_Shape</a>; }
+00091
+00093 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMesh.html#a3">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00094
+00095 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSMesh.html#a4">~CPSMesh</a>();
+00096
+00097 <a class="code" href="classNL3D_1_1CPSMesh.html#a5">NLMISC_DECLARE_CLASS</a>(<a class="code" href="classNL3D_1_1CPSMesh.html#a0">CPSMesh</a>);
+00098
+00099
+<a name="l00104"></a><a class="code" href="classNL3D_1_1CPSMesh.html#a6">00104</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMesh.html#a6">invalidate</a>()
+00105 {
+00106 <a class="code" href="classNL3D_1_1CPSMesh.html#n2">_Invalidated</a> = <font class="keyword">true</font>;
+00107 <a class="code" href="classNL3D_1_1CPSMesh.html#n1">_Instances</a>.clear();
+00108 }
+00109
+00111 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMesh.html#a7">hasTransparentFaces</a>(<font class="keywordtype">void</font>);
+00112
+00114 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMesh.html#a8">hasOpaqueFaces</a>(<font class="keywordtype">void</font>);
+00115
+00117 <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1CPSMesh.html#a9">getMaxNumFaces</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
+00118
+00119 <font class="keyword">protected</font>:
+00122 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMesh.html#b0">newElement</a>(<a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *emitterLocated, uint32 emitterIndex);
+00123
+00128 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMesh.html#b1">deleteElement</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>);
+00129
+00130 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMesh.html#b2">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);
+00131
+00133 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMesh.html#b3">updatePos</a>();
+00134
+00138 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSMesh.html#b4">resize</a>(uint32 size);
+00139
+00140 <font class="comment">//CSmartPtr&lt;IShape&gt; _Shape;</font>
+00141
+<a name="l00142"></a><a class="code" href="classNL3D_1_1CPSMesh.html#n0">00142</a> std::string <a class="code" href="classNL3D_1_1CPSMesh.html#n0">_Shape</a>;
+00143
+00144 <font class="comment">// a container for mesh instances</font>
+<a name="l00145"></a><a class="code" href="classNL3D_1_1CPSMesh.html#t0">00145</a> <font class="keyword">typedef</font> CPSAttrib&lt;CTransformShape *&gt; <a class="code" href="classNL3D_1_1CPSMesh.html#t0">TInstanceCont</a>;
+00146
+<a name="l00147"></a><a class="code" href="classNL3D_1_1CPSMesh.html#n1">00147</a> <a class="code" href="classNL3D_1_1CPSMesh.html#t0">TInstanceCont</a> <a class="code" href="classNL3D_1_1CPSMesh.html#n1">_Instances</a>;
+00148
+00149 <font class="comment">// this is set to true when the transformed shape have to be recerated</font>
+00150
+<a name="l00151"></a><a class="code" href="classNL3D_1_1CPSMesh.html#n2">00151</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSMesh.html#n2">_Invalidated</a>;
+00152
+<a name="l00153"></a><a class="code" href="classNL3D_1_1CPSMesh.html#b5">00153</a> <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *<a class="code" href="classNL3D_1_1CPSMesh.html#b5">getSizeOwner</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>; }
+<a name="l00154"></a><a class="code" href="classNL3D_1_1CPSMesh.html#b6">00154</a> <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *<a class="code" href="classNL3D_1_1CPSMesh.html#b6">getAngle2DOwner</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>; }
+<a name="l00155"></a><a class="code" href="classNL3D_1_1CPSMesh.html#b7">00155</a> <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *<a class="code" href="classNL3D_1_1CPSMesh.html#b7">getPlaneBasisOwner</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>; }
+00156 };
+00157
+00158
+<a name="l00163"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html">00163</a> <font class="keyword">class </font>CPSConstraintMesh : <font class="keyword">public</font> CPSParticle,
+00164 <font class="keyword">public</font> CPSSizedParticle,
+00165 <font class="keyword">public</font> CPSRotated3DPlaneParticle,
+00166 <font class="keyword">public</font> CPSHintParticleRotateTheSame,
+00167 <font class="keyword">public</font> CPSShapeParticle,
+00168 <font class="keyword">public</font> CPSColoredParticle
+00169 {
+00170 <font class="keyword">public</font>:
+00172 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a0">CPSConstraintMesh</a>();
+00173
+00174 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a1">~CPSConstraintMesh</a>();
+00175
+00179 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a2">setShape</a>(<font class="keyword">const</font> std::string &amp;meshFileName);
+00180
+00182 std::string <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a3">getShape</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
+00183
+00184
+00185
+00195 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a4">setShapes</a>(<font class="keyword">const</font> std::string *shapesNames, uint numShapes);
+00196
+00197
+00199 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a2">setShape</a>(uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, <font class="keyword">const</font> std::string &amp;shapeName);
+00200
+00202 <font class="keyword">const</font> std::string &amp;<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a3">getShape</a>(uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>) <font class="keyword">const</font>;
+00203
+00205 uint <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a7">getNumShapes</a>() <font class="keyword">const</font>;
+00206
+00210 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a8">getShapesNames</a>(std::string *shapesNames) <font class="keyword">const</font>;
+00211
+00213 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a9">setMorphValue</a>(<font class="keywordtype">float</font> <a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>);
+00214
+00216 <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a10">getMorphValue</a>() <font class="keyword">const</font>;
+00217
+00219 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a11">setMorphScheme</a>(CPSAttribMaker&lt;float&gt; *scheme);
+00220
+00222 CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a12">getMorphScheme</a>();
+00223
+00225 <font class="keyword">const</font> CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a12">getMorphScheme</a>() <font class="keyword">const</font>;
+00226
+00227
+00228
+00229
+00230
+00241 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a14">hintRotateTheSame</a>(uint32 nbConfiguration,
+00242 <font class="keywordtype">float</font> minAngularVelocity = NLMISC::Pi,
+00243 <font class="keywordtype">float</font> maxAngularVelocity = NLMISC::Pi
+00244 );
+00245
+<a name="l00250"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a15">00250</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a15">disableHintRotateTheSame</a>(<font class="keywordtype">void</font>)
+00251 {
+00252 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a14">hintRotateTheSame</a>(0);
+00253 }
+00254
+<a name="l00260"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a16">00260</a> uint32 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a16">checkHintRotateTheSame</a>(<font class="keywordtype">float</font> &amp;<a class="code" href="bit__set_8cpp.html#a0">min</a>, <font class="keywordtype">float</font> &amp;max)<font class="keyword"> const</font>
+00261 <font class="keyword"> </font>{
+00262 <a class="code" href="bit__set_8cpp.html#a0">min</a> = <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n4">_MinAngularVelocity</a>;
+00263 max = <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n5">_MaxAngularVelocity</a>;
+00264 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n6">_PrecompBasis</a>.size();
+00265 }
+00266
+00267
+00269 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a17">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00270
+00271
+00272 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a18">NLMISC_DECLARE_CLASS</a>(<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a0">CPSConstraintMesh</a>);
+00273
+00275 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a19">hasTransparentFaces</a>(<font class="keywordtype">void</font>);
+00276
+00278 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a20">hasOpaqueFaces</a>(<font class="keywordtype">void</font>);
+00279
+00281 <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a21">getMaxNumFaces</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
+00282
+00283
+00289 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a22">forceStageModulationByColor</a>(uint stage, <font class="keywordtype">bool</font> force);
+00290
+00292 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a23">isStageModulationForced</a>(uint stage) <font class="keyword">const</font>;
+00293
+<a name="l00295"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a24">00295</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a24">forceVertexColorLighting</a>(<font class="keywordtype">bool</font> force = <font class="keyword">true</font>) { <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n12">_VertexColorLightingForced</a> = force; }
+00296
+<a name="l00298"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a25">00298</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a25">isVertexColorLightingForced</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n12">_VertexColorLightingForced</a>; }
+00299
+00301 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#d0">initPrerotVB</a>();
+00302
+00303 <font class="comment">//\name Texture animation</font>
+00305 <font class="comment"></font>
+<a name="l00306"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z721_0">00306</a> <font class="comment"> enum TTexAnimType { NoAnim = 0, GlobalAnim, /*Local, */ Last};</font>
+00307
+00309 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z721_1">setTexAnimType</a>(<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z721_0">TTexAnimType</a> <a class="code" href="driver__opengl__extension__def_8h.html#a373">type</a>);
+00310
+00312 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z721_0">TTexAnimType</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z721_2">getTexAnimType</a>() <font class="keyword">const</font>;
+00314
+00315 <font class="comment">//\name Global texture animation. Calls to these method are only valid if texture animation is global.</font>
+00317 <font class="comment"></font>
+<a name="l00318"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnim.html">00318</a> <font class="comment"> struct CGlobalTexAnim</font>
+00319 {
+<a name="l00320"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnim.html#m0">00320</a> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> TransSpeed; <font class="comment">/* = (0, 0) */</font>
+<a name="l00321"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnim.html#m1">00321</a> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> TransAccel; <font class="comment">/* = (0, 0) */</font>
+<a name="l00322"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnim.html#m2">00322</a> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> ScaleStart; <font class="comment">/* = (1, 1) */</font>
+<a name="l00323"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnim.html#m3">00323</a> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> ScaleSpeed; <font class="comment">/* = (0, 0) */</font>
+<a name="l00324"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnim.html#m4">00324</a> <a class="code" href="classNLMISC_1_1CVector2f.html">NLMISC::CVector2f</a> ScaleAccel; <font class="comment">/* = (0, 0) */</font>
+<a name="l00325"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnim.html#m5">00325</a> <font class="keywordtype">float</font> WRotSpeed; <font class="comment">/* = 0 */</font>
+<a name="l00326"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnim.html#m6">00326</a> <font class="keywordtype">float</font> WRotAccel; <font class="comment">/* = 0 */</font>
+00327 CGlobalTexAnim();
+00328 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a17">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00330 <font class="keywordtype">void</font> buildMatrix(<a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> &amp;date, <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &amp;dest);
+00331 };
+00332
+00334 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z722_0">setGlobalTexAnim</a>(uint stage, <font class="keyword">const</font> CGlobalTexAnim &amp;properties);
+00335
+00337 <font class="keyword">const</font> CGlobalTexAnim &amp;<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z722_1">getGlobalTexAnim</a>(uint stage) <font class="keyword">const</font>;
+00338
+<a name="l00340"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z722_2">00340</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z722_2">forceGlobalAnimTimeResetOnNewElement</a>(<font class="keywordtype">bool</font> force = <font class="keyword">true</font>) { <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n14">_ReinitGlobalAnimTimeOnNewElement</a> = force; }
+<a name="l00341"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z722_3">00341</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z722_3">isGlobalAnimTimeResetOnNewElementForced</a>() <font class="keyword">const</font> { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n14">_ReinitGlobalAnimTimeOnNewElement</a> != 0; }
+00342
+00344
+00345
+00346
+00347 <font class="keyword">protected</font>:
+<a name="l00348"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#l0">00348</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#l0">CPSConstraintMeshHelper</a>;
+00349 <font class="comment">// inherited from CPSColoredParticle</font>
+<a name="l00350"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b0">00350</a> <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b0">getColorOwner</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>; }
+00351
+00352 <font class="comment">// inherited from CPSColoredParticle</font>
+00353 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b1">updateMatAndVbForColor</a>(<font class="keywordtype">void</font>);
+00354
+00357 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b2">newElement</a>(<a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *emitterLocated, uint32 emitterIndex);
+00358
+00361 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b3">deleteElement</a>(uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>);
+00362
+00363 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b4">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);
+00367 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b5">draw</a>(<font class="keywordtype">bool</font> opaque, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> ellapsedTime);
+00368
+00370 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b6">drawPreRotatedMeshs</a>(<font class="keywordtype">bool</font> opaque, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> ellapsedTime);
+00371
+00372
+00374 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b7">releaseShapes</a>();
+00375
+00376
+00383 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b8">computeColors</a>(CVertexBuffer &amp;outVB, <font class="keyword">const</font> CVertexBuffer &amp;inVB, uint startIndex, uint toProcess, uint32 srcStep);
+00384
+00388 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b9">resize</a>(uint32 size);
+00389
+00393 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b10">update</a>(<font class="keywordtype">void</font>);
+00394
+00396 CVertexBuffer &amp;<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b11">makePrerotatedVb</a>(<font class="keyword">const</font> CVertexBuffer &amp;inVB, <a class="code" href="namespaceNL3D.html#a1">TAnimationTime</a> ellapsedTime);
+00397
+<a name="l00401"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CRdrPass.html">00401</a> <font class="keyword">struct </font>CRdrPass
+00402 {
+<a name="l00403"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CRdrPass.html#m0">00403</a> CMaterial <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CRdrPass.html#m0">Mat</a>;
+<a name="l00404"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CRdrPass.html#m1">00404</a> CMaterial <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CRdrPass.html#m1">SourceMat</a>;
+<a name="l00405"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CRdrPass.html#m2">00405</a> CPrimitiveBlock <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CRdrPass.html#m2">Pb</a>;
+00406 };
+00407
+<a name="l00409"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t0">00409</a> <font class="keyword">typedef</font> std::vector&lt;CRdrPass&gt; <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t0">TRdrPassSet</a>;
+00410
+<a name="l00412"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplay.html">00412</a> <font class="keyword">struct </font>CMeshDisplay
+00413 {
+<a name="l00414"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplay.html#m0">00414</a> TRdrPassSet <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplay.html#m0">RdrPasses</a>;
+<a name="l00415"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplay.html#m1">00415</a> CVertexBuffer <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplay.html#m1">VB</a>;
+00416 };
+00417
+00418 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b12">restoreMaterials</a>();
+00419
+00421 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b13">CPSConstraintMesh::setupRenderPasses</a>(<font class="keywordtype">float</font> date, <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t0">TRdrPassSet</a> &amp;rdrPasses, <font class="keywordtype">bool</font> opaque);
+00422
+00424 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b14">doRenderPasses</a>(IDriver *driver, uint numObj, <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t0">TRdrPassSet</a> &amp;rdrPasses, <font class="keywordtype">bool</font> opaque);
+00425
+00426
+<a name="l00427"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t1">00427</a> <font class="keyword">typedef</font> <a class="code" href="classNLMISC_1_1CSmartPtr.html">NLMISC::CSmartPtr&lt;IShape&gt;</a> <a class="code" href="classNLMISC_1_1CSmartPtr.html">PShape</a>;
+<a name="l00428"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t2">00428</a> <font class="keyword">typedef</font> std::vector&lt;std::string&gt; <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t2">TShapeNameVect</a>;
+<a name="l00429"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t3">00429</a> <font class="keyword">typedef</font> std::vector&lt;PShape&gt; <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t3">TShapeVect</a>;
+00430
+00431 <font class="comment">// name of the shapes</font>
+<a name="l00432"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n0">00432</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t2">TShapeNameVect</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n0">_MeshShapeFileName</a>;
+<a name="l00433"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n1">00433</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t3">TShapeVect</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n1">_Shapes</a>;
+00434
+00435 <font class="comment">// caches the number of faces (for load balacing)</font>
+<a name="l00436"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n2">00436</a> uint <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n2">_NumFaces</a>;
+00437
+00438 <font class="comment">// the shape bank containing the shape</font>
+<a name="l00439"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n3">00439</a> CShapeBank *<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n3">_ModelBank</a>;
+00440
+00441
+<a name="l00445"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html">00445</a> <font class="keyword">class </font><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#l1">CMeshDisplayShare</a>
+00446 {
+00447 <font class="keyword">public</font>:
+<a name="l00449"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#a0">00449</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#a0">CMeshDisplayShare</a>(uint maxNumMD) : <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#n0">_MaxNumMD</a>(maxNumMD) {}
+00450
+00452 <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#a1">~CMeshDisplayShare</a>();
+00453
+00457 CMeshDisplay &amp;<a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#a2">getMeshDisplay</a>(IShape *shape, uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a>);
+00458
+00459 <font class="keyword">protected</font>:
+<a name="l00460"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#n0">00460</a> uint <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#n0">_MaxNumMD</a>;
+<a name="l00461"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#t0">00461</a> <font class="keyword">typedef</font> <a class="code" href="classNLMISC_1_1CSmartPtr.html">NLMISC::CSmartPtr&lt;IShape&gt;</a> PShape;
+<a name="l00462"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html">00462</a> <font class="keyword">struct </font>CKey
+00463 {
+00464 <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#a0">~CKey</a>();
+<a name="l00465"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#m0">00465</a> PShape <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#m0">Shape</a>;
+<a name="l00466"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#m1">00466</a> uint32 <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#m1">Format</a>;
+<a name="l00467"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#a1">00467</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#a1">operator == </a>(<font class="keyword">const</font> CKey &amp;key)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> Shape == key.Shape &amp;&amp; <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#m1">Format</a> == key.Format; }
+<a name="l00468"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#a2">00468</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#a2">operator != </a>(<font class="keyword">const</font> CKey &amp;key)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> ! (*<font class="keyword">this</font> == key); }
+<a name="l00469"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#a3">00469</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#a3">operator &lt; </a>(<font class="keyword">const</font> CKey &amp;key)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> Shape &lt; key.Shape || (Shape == key.Shape &amp;&amp; <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare_1_1CKey.html#m1">Format</a> &lt; key.Format); }
+00470 };
+<a name="l00471"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#t1">00471</a> <font class="keyword">typedef</font> std::map&lt;CKey, CMeshDisplay *&gt; <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#t1">TMDMap</a>; <font class="comment">// vb sorted by their formats</font>
+<a name="l00472"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#t2">00472</a> <font class="keyword">typedef</font> std::queue&lt;CKey&gt; <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#t2">TMDQueue</a>; <font class="comment">// vb sorted by creation date</font>
+<a name="l00473"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#n1">00473</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#t2">TMDQueue</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#n1">MDQueue</a>;
+<a name="l00474"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#n2">00474</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#t1">TMDMap</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#n2">MDMap</a>;
+00476 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#e0">buildRdrPassSet</a>(TRdrPassSet &amp;dest, <font class="keyword">const</font> IShape *<a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>);
+00478 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh_1_1CMeshDisplayShare.html#e1">buildVB</a>(uint32 destFormat, CVertexBuffer &amp;dest, <font class="keyword">const</font> IShape *<a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>);
+00479 };
+00480
+<a name="l00481"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#l1">00481</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#l1">CMeshDisplayShare</a>;
+00482
+00483
+00485 <font class="keyword">static</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#l1">CMeshDisplayShare</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#q0">_MeshDisplayShare</a>;
+00486
+00488 <font class="keyword">static</font> CVertexBuffer <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#q1">_PreRotatedMeshVB</a>; <font class="comment">// mesh has no normals</font>
+00489 <font class="keyword">static</font> CVertexBuffer <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#q2">_PreRotatedMeshVBWithNormal</a>; <font class="comment">// mesh has normals</font>
+00490
+00491
+00492 <font class="comment">// we must store them for serialization</font>
+<a name="l00493"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n4">00493</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n4">_MinAngularVelocity</a>;
+<a name="l00494"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n5">00494</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n5">_MaxAngularVelocity</a>;
+00495
+00496
+00497 <font class="comment">// use for rotation of precomputed meshs</font>
+<a name="l00498"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CPlaneBasisPair.html">00498</a> <font class="keyword">struct </font>CPlaneBasisPair
+00499 {
+<a name="l00500"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CPlaneBasisPair.html#m0">00500</a> CPlaneBasis <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CPlaneBasisPair.html#m0">Basis</a>;
+<a name="l00501"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CPlaneBasisPair.html#m1">00501</a> CVector <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CPlaneBasisPair.html#m1">Axis</a>; <font class="comment">// an axis for rotation</font>
+<a name="l00502"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CPlaneBasisPair.html#m2">00502</a> <font class="keywordtype">float</font> <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CPlaneBasisPair.html#m2">AngularVelocity</a>; <font class="comment">// an angular velocity</font>
+00503 };
+00504
+<a name="l00506"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n6">00506</a> std::vector&lt; CPlaneBasisPair &gt; <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n6">_PrecompBasis</a>;
+00507
+<a name="l00509"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n7">00509</a> std::vector&lt;uint32&gt; <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n7">_IndexInPrecompBasis</a>;
+00510
+00512 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b15">fillIndexesInPrecompBasis</a>(<font class="keywordtype">void</font>);
+00513
+00514 <font class="comment">// release the model shape (dtor, or before loading)</font>
+00515 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b16">clean</a>(<font class="keywordtype">void</font>);
+00516
+<a name="l00517"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b17">00517</a> <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b17">getSizeOwner</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>; }
+<a name="l00518"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b18">00518</a> <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#l0">CPSLocated</a> *<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#b18">getPlaneBasisOwner</a>(<font class="keywordtype">void</font>) { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CPSLocatedBindable.html#n0">_Owner</a>; }
+00519
+<a name="l00521"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n8">00521</a> uint8 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n8">_ModulatedStages</a>;
+00522
+00523 <font class="comment">// A new mesh has been set, so we must reconstruct it when needed </font>
+<a name="l00524"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n9">00524</a> uint8 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n9">_Touched</a> : 1;
+00525 <font class="comment">// flags that indicate wether the object has transparent faces. When the 'touch' flag is set, it is undefined, until the next update() call.</font>
+<a name="l00526"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n10">00526</a> uint8 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n10">_HasTransparentFaces</a> : 1;
+00527 <font class="comment">// flags that indicate wether the object has opaques faces. When the 'touch' flag is set, it is undefined, until the next update() call.</font>
+<a name="l00528"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n11">00528</a> uint8 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n11">_HasOpaqueFaces</a> : 1;
+<a name="l00529"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n12">00529</a> uint8 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n12">_VertexColorLightingForced</a> : 1;
+<a name="l00530"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n13">00530</a> uint8 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n13">_GlobalAnimationEnabled</a> : 1;
+<a name="l00531"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n14">00531</a> uint8 <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n14">_ReinitGlobalAnimTimeOnNewElement</a> : 1;
+00532
+00533
+<a name="l00535"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnims.html">00535</a> <font class="keyword">struct </font>CGlobalTexAnims
+00536 {
+<a name="l00537"></a><a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnims.html#m0">00537</a> CGlobalTexAnim <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnims.html#m0">Anims</a>[<a class="code" href="namespaceNL3D.html#a94">IDRV_MAT_MAXTEXTURES</a>];
+00538 <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CPSConstraintMesh_1_1CGlobalTexAnims.html#a0">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &amp;f) <font class="keywordflow">throw</font>(NLMISC::EStream);
+00539 };
+00540
+<a name="l00541"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t4">00541</a> <font class="keyword">typedef</font> std::auto_ptr&lt;CGlobalTexAnims&gt; <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t4">PGlobalTexAnims</a>;
+<a name="l00542"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n15">00542</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#t4">PGlobalTexAnims</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n15">_GlobalTexAnims</a>;
+<a name="l00543"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n16">00543</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#n16">_GlobalAnimDate</a>;
+00544
+00545
+00547
+<a name="l00548"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z723_0">00548</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z723_0">_MorphValue</a>;
+<a name="l00549"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z723_1">00549</a> CPSAttribMaker&lt;float&gt; *<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#z723_1">_MorphScheme</a>;
+00551 <font class="keyword">private</font>:
+<a name="l00552"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#c0">00552</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a0">CPSConstraintMesh</a>(<font class="keyword">const</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a0">CPSConstraintMesh</a> &amp;) { <a class="code" href="debug_8h.html#a6">nlassert</a>(0); <font class="comment">/* not supported */</font> }
+<a name="l00553"></a><a class="code" href="classNL3D_1_1CPSConstraintMesh.html#c1">00553</a> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a0">CPSConstraintMesh</a> &amp;<a class="code" href="classNL3D_1_1CPSConstraintMesh.html#c1">operator = </a>(<font class="keyword">const</font> <a class="code" href="classNL3D_1_1CPSConstraintMesh.html#a0">CPSConstraintMesh</a> &amp;other) { <a class="code" href="debug_8h.html#a6">nlassert</a>(0); <font class="keywordflow">return</font> *<font class="keyword">this</font>; <font class="comment">/* not supported */</font> }
+00554 };
+00555
+00556
+00557
+00558 } <font class="comment">// NL3D</font>
+00559
+00560
+00561 <font class="preprocessor">#endif // NL_PS_MESH_H</font>
+00562 <font class="preprocessor"></font>
+00563 <font class="comment">/* End of ps_mesh.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>