diff options
Diffstat (limited to 'docs/doxygen/nel/nel_patch_mesh_h-source.html')
-rw-r--r-- | docs/doxygen/nel/nel_patch_mesh_h-source.html | 830 |
1 files changed, 830 insertions, 0 deletions
diff --git a/docs/doxygen/nel/nel_patch_mesh_h-source.html b/docs/doxygen/nel/nel_patch_mesh_h-source.html new file mode 100644 index 00000000..8dab622a --- /dev/null +++ b/docs/doxygen/nel/nel_patch_mesh_h-source.html @@ -0,0 +1,830 @@ +<!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.2 on Tue May 29 22:01:15 2001 --> +<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>nel_patch_mesh.h</h1><a href="nel_patch_mesh_h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 +00007 <font class="comment">/* Copyright, 2000 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 __RYKOL_PATCH_MESH_H +</font>00027 <font class="preprocessor"></font><font class="preprocessor">#define __RYKOL_PATCH_MESH_H +</font>00028 <font class="preprocessor"></font> +00029 <font class="preprocessor">#pragma warning (disable : 4786) +</font>00030 <font class="preprocessor"></font><font class="preprocessor">#include <vector></font> +00031 <font class="preprocessor">#include <set></font> +00032 <font class="preprocessor">#include <string></font> +00033 <font class="preprocessor">#include <<a class="code" href="debug_h.html">nel/misc/debug.h</a>></font> +00034 <font class="preprocessor">#include <<a class="code" href="tile_bank_h.html">nel/3d/tile_bank.h</a>></font> +00035 <font class="preprocessor">#include <<a class="code" href="file_h.html">nel/misc/file.h</a>></font> +00036 <font class="preprocessor">#include <<a class="code" href="rgba_h.html">nel/misc/rgba.h</a>></font> +00037 <font class="preprocessor">#include "<a class="code" href="path_mesh_alloc_h.html">path_mesh_alloc.h</a>"</font> +00038 +00039 <font class="comment">//#define USE_CACHE</font> +00040 +00041 <font class="keyword">namespace</font> NL3D +00042 { +00043 <font class="keyword">class </font>CZone; +00044 }; +00045 +00046 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> uint; +00047 +<a name="l00048"></a><a class="code" href="nel_patch_mesh_h.html#a0">00048</a> <font class="preprocessor">#define RYKOLPATCHOBJ_CLASS_ID Class_ID(0x368c679f, 0x711c22ee) +</font>00049 <font class="preprocessor"></font> +00050 <font class="keyword">extern</font> TCHAR *<a class="code" href="plugin_max_nel_export_DllEntry_cpp.html#a6">GetString</a>(<font class="keywordtype">int</font> id); +00051 +00052 <font class="keyword">extern</font> HINSTANCE hInstance; +00053 +00054 <font class="keyword">extern</font> <a class="code" href="class_ClassDesc.html">ClassDesc</a>* <a class="code" href="plugin_max_nel_patch_converter_DllEntry_cpp.html#a2">GetRPODesc</a>(); +00055 +<a name="l00056"></a><a class="code" href="nel_patch_mesh_h.html#a1">00056</a> <font class="preprocessor">#define RPATCHMESH_SERIALIZE_VERSION_7 7 +</font><a name="l00057"></a><a class="code" href="nel_patch_mesh_h.html#a2">00057</a> <font class="preprocessor"></font><font class="preprocessor">#define RPATCHMESH_SERIALIZE_VERSION_6 6 +</font><a name="l00058"></a><a class="code" href="nel_patch_mesh_h.html#a3">00058</a> <font class="preprocessor"></font><font class="preprocessor">#define RPATCHMESH_SERIALIZE_VERSION_5 5 +</font><a name="l00059"></a><a class="code" href="nel_patch_mesh_h.html#a4">00059</a> <font class="preprocessor"></font><font class="preprocessor">#define RPATCHMESH_SERIALIZE_VERSION_4 4 +</font><a name="l00060"></a><a class="code" href="nel_patch_mesh_h.html#a5">00060</a> <font class="preprocessor"></font><font class="preprocessor">#define RPATCHMESH_SERIALIZE_VERSION_3 3 +</font><a name="l00061"></a><a class="code" href="nel_patch_mesh_h.html#a6">00061</a> <font class="preprocessor"></font><font class="preprocessor">#define RPATCHMESH_SERIALIZE_VERSION_2 2 +</font><a name="l00062"></a><a class="code" href="nel_patch_mesh_h.html#a7">00062</a> <font class="preprocessor"></font><font class="preprocessor">#define RPATCHMESH_SERIALIZE_VERSION_1 1 +</font><a name="l00063"></a><a class="code" href="nel_patch_mesh_h.html#a8">00063</a> <font class="preprocessor"></font><font class="preprocessor">#define RPATCHMESH_SERIALIZE_VERSION RPATCHMESH_SERIALIZE_VERSION_7 +</font>00064 <font class="preprocessor"></font> +<a name="l00065"></a><a class="code" href="nel_patch_mesh_h.html#a9">00065</a> <font class="preprocessor">#define EP_OBJECT 0 +</font><a name="l00066"></a><a class="code" href="nel_patch_mesh_h.html#a10">00066</a> <font class="preprocessor"></font><font class="preprocessor">#define EP_VERTEX 1 +</font><a name="l00067"></a><a class="code" href="nel_patch_mesh_h.html#a11">00067</a> <font class="preprocessor"></font><font class="preprocessor">#define EP_EDGE 2 +</font><a name="l00068"></a><a class="code" href="nel_patch_mesh_h.html#a12">00068</a> <font class="preprocessor"></font><font class="preprocessor">#define EP_PATCH 3 +</font><a name="l00069"></a><a class="code" href="nel_patch_mesh_h.html#a13">00069</a> <font class="preprocessor"></font><font class="preprocessor">#define EP_TILE 4 +</font>00070 <font class="preprocessor"></font> +<a name="l00071"></a><a class="code" href="nel_patch_mesh_h.html#a14">00071</a> <font class="preprocessor">#define PO_TILE 4 +</font>00072 <font class="preprocessor"></font> +<a name="l00073"></a><a class="code" href="nel_patch_mesh_h.html#a15">00073</a> <font class="preprocessor">#define PATCH_HIT_TILE (PATCH_HIT_INTERIOR+1) +</font>00074 <font class="preprocessor"></font> +<a name="l00075"></a><a class="code" href="nel_patch_mesh_h.html#a16">00075</a> <font class="preprocessor">#define MAX_TILE_IN_PATCH 16 +</font><a name="l00076"></a><a class="code" href="nel_patch_mesh_h.html#a17">00076</a> <font class="preprocessor"></font><font class="preprocessor">#define NUM_TILE_SEL (MAX_TILE_IN_PATCH*MAX_TILE_IN_PATCH) +</font>00077 <font class="preprocessor"></font> +00078 <font class="preprocessor">#pragma warning (disable : 4786) +</font>00079 <font class="preprocessor"></font> +00080 <font class="comment">// ------------------------------------------------------------------------------------------------------------------------------------------------</font> +00081 +00082 <font class="comment">/* +</font>00083 <font class="comment"> +</font>00084 <font class="comment"> Here the user infos (UI) for face, edge, vertex, vertex-face. +</font>00085 <font class="comment"> All these infos are stored in one class (RPO_UI) through vectors +</font>00086 <font class="comment"> +</font>00087 <font class="comment"> +</font>00088 <font class="comment">*/</font> +00089 +00090 <font class="keyword">class </font><a class="code" href="class_CVertexNeighborhood.html">CVertexNeighborhood</a>; +00091 +00092 <font class="keywordtype">int</font> <a class="code" href="nel_patch_mesh_cpp.html#a16">CheckBind</a> (<font class="keywordtype">int</font> nVert, <font class="keywordtype">int</font> nSeg, <font class="keywordtype">int</font>& v0, <font class="keywordtype">int</font>& v1, <font class="keywordtype">int</font>& v2, <font class="keywordtype">int</font>& v3, <font class="keyword">const</font> <a class="code" href="class_CVertexNeighborhood.html">CVertexNeighborhood</a>& tab, <font class="keyword">const</font> PatchMesh& patch, <font class="keywordtype">bool</font> bAssert, <font class="keywordtype">bool</font> bCreate); +00093 std::string <a class="code" href="nel_patch_mesh_cpp.html#a7">GetBankPathName</a> (); +00094 <font class="keywordtype">int</font> <a class="code" href="nel_patch_mesh_cpp.html#a8">GetBankTileSetSet</a> (); +00095 <font class="keywordtype">void</font> <a class="code" href="nel_patch_mesh_cpp.html#a9">SetBankPathName</a> (<font class="keyword">const</font> std::string& path); +00096 <font class="keywordtype">void</font> <a class="code" href="nel_patch_mesh_cpp.html#a10">SetBankTileSetSet</a> (<font class="keywordtype">int</font>); +00097 <font class="keywordtype">int</font> <a class="code" href="nel_patch_mesh_cpp.html#a18">WhereIsTheEdge</a> (<font class="keywordtype">int</font> nPatch, <font class="keywordtype">int</font> nEdge, <font class="keyword">const</font> PatchMesh& patch); +00098 +00099 <font class="keyword">extern</font> <a class="code" href="class_NL3D__CTileBank.html">NL3D::CTileBank</a> bank; +00100 +<a name="l00101"></a><a class="code" href="nel_patch_mesh_h.html#a18">00101</a> <font class="preprocessor">#define RPO_DEFAULT_TESSEL 4 +</font>00102 <font class="preprocessor"></font> +<a name="l00103"></a><a class="code" href="nel_patch_mesh_h.html#a27">00103</a> <font class="keyword">enum</font> typeBind { BIND_25=0, BIND_75, BIND_50, BIND_SINGLE, BIND_COUNT, BIND_ALIGN=0xffffffff }; +00104 +00105 <font class="keyword">extern</font> <font class="keywordtype">float</font> bindWhere[BIND_COUNT]; +00106 +<a name="l00107"></a><a class="code" href="class_bindingDesc.html">00107</a> <font class="keyword">class </font><a class="code" href="class_bindingDesc.html">bindingDesc</a> +00108 { +00109 <font class="keyword">public</font>: +<a name="l00110"></a><a class="code" href="class_bindingDesc.html#m0">00110</a> uint8 bBinded; <font class="comment">// true, this vertex is binded, false, is not. default 0</font> +<a name="l00111"></a><a class="code" href="class_bindingDesc.html#m1">00111</a> uint8 nType; <font class="comment">// Type of the vertex</font> +<a name="l00112"></a><a class="code" href="class_bindingDesc.html#m2">00112</a> uint16 nPatch; <font class="comment">// # of the patch on which the vertex is binded. Valid only if bBinded==true.</font> +<a name="l00113"></a><a class="code" href="class_bindingDesc.html#m3">00113</a> uint16 nEdge; <font class="comment">// # of the edge in the patch on which the vertex is binded. Valid only if bBinded==true.</font> +<a name="l00114"></a><a class="code" href="class_bindingDesc.html#m4">00114</a> uint16 nPrimVert; <font class="comment">// # of the primary vertex in this bind</font> +<a name="l00115"></a><a class="code" href="class_bindingDesc.html#m5">00115</a> uint16 nBefore; <font class="comment">// # of the before tangant</font> +<a name="l00116"></a><a class="code" href="class_bindingDesc.html#m6">00116</a> uint16 nBefore2; <font class="comment">// # of the before tangant</font> +<a name="l00117"></a><a class="code" href="class_bindingDesc.html#m7">00117</a> uint16 nAfter; <font class="comment">// # of the after tangant</font> +<a name="l00118"></a><a class="code" href="class_bindingDesc.html#m8">00118</a> uint16 nAfter2; <font class="comment">// # of the after tangant</font> +<a name="l00119"></a><a class="code" href="class_bindingDesc.html#m9">00119</a> uint16 nT; <font class="comment">// # of the tangant of the binded edge</font> +<a name="l00120"></a><a class="code" href="class_bindingDesc.html#m10">00120</a> uint16 fnslmq; +00121 <font class="comment">//float fWhere; // Where on the edge the vertex is binded. Value must be 0.25f, 0.5f or 0.75f.</font> +00122 <font class="comment">// Valid only if bBinded==true.</font> +00123 }; +00124 +<a name="l00125"></a><a class="code" href="class_tileIndex.html">00125</a> <font class="keyword">class </font><a class="code" href="class_tileIndex.html">tileIndex</a> +00126 { +00127 <font class="keyword">public</font>: +<a name="l00128"></a><a class="code" href="class_tileIndex.html#a0">00128</a> <a class="code" href="class_tileIndex.html#a0">tileIndex</a> ()<font class="keyword"> +</font>00129 <font class="keyword"> </font>{} +<a name="l00130"></a><a class="code" href="class_tileIndex.html#a1">00130</a> <a class="code" href="class_tileIndex.html#a0">tileIndex</a> ( <font class="keywordtype">bool</font> invert, <font class="keywordtype">int</font> tile, <font class="keywordtype">int</font> rotate)<font class="keyword"> +</font>00131 <font class="keyword"> </font>{ +00132 Invert=invert; +00133 Tile=tile; +00134 Rotate=rotate; +00135 } +<a name="l00136"></a><a class="code" href="class_tileIndex.html#m0">00136</a> uint Tile:16; +<a name="l00137"></a><a class="code" href="class_tileIndex.html#m1">00137</a> <font class="keywordtype">int</font> Rotate:8; +<a name="l00138"></a><a class="code" href="class_tileIndex.html#m2">00138</a> <font class="keywordtype">int</font> Invert:1; +00139 }; +00140 +<a name="l00141"></a><a class="code" href="class_tileDesc.html">00141</a> <font class="keyword">class </font><a class="code" href="class_tileDesc.html">tileDesc</a> +00142 { +<a name="l00143"></a><a class="code" href="nel_patch_mesh_h.html#a19">00143</a> <font class="preprocessor">#define CASE_MASK 0x7 +</font><a name="l00144"></a><a class="code" href="class_tileDesc.html#l0">00144</a> <font class="preprocessor"></font> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_RPatchMesh.html">RPatchMesh</a>; +00145 <font class="keyword">public</font>: +<a name="l00146"></a><a class="code" href="class_tileDesc.html#a0">00146</a> <font class="keywordtype">void</font> <a class="code" href="class_tileDesc.html#a0">setTile</a> (<font class="keywordtype">int</font> num, <font class="keywordtype">int</font> ncase, <a class="code" href="class_tileIndex.html">tileIndex</a> tile0, <a class="code" href="class_tileIndex.html">tileIndex</a> tile1, <a class="code" href="class_tileIndex.html">tileIndex</a> tile2)<font class="keyword"> +</font>00147 <font class="keyword"> </font>{ +00148 _Num=num; +00149 _MatIDTab[0]=tile0; +00150 _MatIDTab[1]=tile1; +00151 _MatIDTab[2]=tile2; +00152 <a class="code" href="class_tileDesc.html#a8">setCase</a> (ncase); +00153 } +<a name="l00154"></a><a class="code" href="class_tileDesc.html#a1">00154</a> <a class="code" href="class_tileIndex.html">tileIndex</a>& <a class="code" href="class_tileDesc.html#a1">getLayer</a> (<font class="keywordtype">int</font> num)<font class="keyword"> +</font>00155 <font class="keyword"> </font>{ +00156 <font class="keywordflow">return</font> _MatIDTab[num]; +00157 } +<a name="l00158"></a><a class="code" href="class_tileDesc.html#a2">00158</a> <font class="keyword">const</font> <a class="code" href="class_tileIndex.html">tileIndex</a>& <a class="code" href="class_tileDesc.html#a1">getLayer</a> (<font class="keywordtype">int</font> num)<font class="keyword"> const +</font>00159 <font class="keyword"> </font>{ +00160 <font class="keywordflow">return</font> _MatIDTab[num]; +00161 } +<a name="l00162"></a><a class="code" href="class_tileDesc.html#a3">00162</a> <font class="keywordtype">int</font> <a class="code" href="class_tileDesc.html#a3">getNumLayer</a> ()<font class="keyword"> +</font>00163 <font class="keyword"> </font>{ +00164 <font class="keywordflow">return</font> _Num; +00165 } +<a name="l00166"></a><a class="code" href="class_tileDesc.html#a4">00166</a> <font class="keywordtype">void</font> <a class="code" href="class_tileDesc.html#a4">setEmpty</a> ()<font class="keyword"> +</font>00167 <font class="keyword"> </font>{ +00168 _Num=0; +00169 _Flags=0; +00170 } +<a name="l00171"></a><a class="code" href="class_tileDesc.html#a5">00171</a> <font class="keywordtype">bool</font> <a class="code" href="class_tileDesc.html#a5">isEmpty</a> ()<font class="keyword"> +</font>00172 <font class="keyword"> </font>{ +00173 <font class="keywordflow">return</font> _Num==0; +00174 } +<a name="l00175"></a><a class="code" href="class_tileDesc.html#a6">00175</a> <font class="keywordtype">void</font> <a class="code" href="class_tileDesc.html#a6">rotate</a> (<font class="keywordtype">int</font> nRotate)<font class="keyword"> +</font>00176 <font class="keyword"> </font>{ +00177 <font class="keywordflow">for</font> (<font class="keywordtype">int</font> i=0; i<3; i++) +00178 { +00179 _MatIDTab[i].Rotate+=nRotate; +00180 _MatIDTab[i].Rotate&=3; +00181 } +00182 } +<a name="l00183"></a><a class="code" href="class_tileDesc.html#a7">00183</a> <font class="keywordtype">int</font> <a class="code" href="class_tileDesc.html#a7">getCase</a>()<font class="keyword"> const +</font>00184 <font class="keyword"> </font>{ +00185 <font class="keywordflow">return</font> _Flags&CASE_MASK; +00186 } +<a name="l00187"></a><a class="code" href="class_tileDesc.html#a8">00187</a> <font class="keywordtype">void</font> <a class="code" href="class_tileDesc.html#a8">setCase</a>(<font class="keywordtype">int</font> nCase)<font class="keyword"> +</font>00188 <font class="keyword"> </font>{ +00189 <a class="code" href="debug_h.html#a6">nlassert</a> ((nCase>=0)&&(nCase<5)); +00190 _Flags&=~CASE_MASK; +00191 _Flags|=nCase; +00192 } +00193 <font class="keyword">private</font>: +<a name="l00194"></a><a class="code" href="class_tileDesc.html#o0">00194</a> <a class="code" href="class_tileIndex.html">tileIndex</a> _MatIDTab[3]; +<a name="l00195"></a><a class="code" href="class_tileDesc.html#o1">00195</a> USHORT _Num; +<a name="l00196"></a><a class="code" href="class_tileDesc.html#o2">00196</a> USHORT _Flags; +00197 }; +00198 +<a name="l00199"></a><a class="code" href="class_UI_VERTEX.html">00199</a> <font class="keyword">class </font><a class="code" href="class_UI_VERTEX.html">UI_VERTEX</a> +00200 { +00201 <font class="keyword">public</font>: +<a name="l00202"></a><a class="code" href="class_UI_VERTEX.html#m0">00202</a> <a class="code" href="class_bindingDesc.html">bindingDesc</a> Binding; <font class="comment">// Binding struct for the vertex</font> +<a name="l00203"></a><a class="code" href="class_UI_VERTEX.html#a0">00203</a> <font class="keywordtype">void</font> <a class="code" href="class_UI_VERTEX.html#a0">Init</a> ()<font class="keyword"> +</font>00204 <font class="keyword"> </font>{ +00205 Binding.bBinded=<font class="keyword">false</font>; +00206 } +00207 }; +00208 +00209 <font class="comment">// Edge flags for no smoothing</font> +<a name="l00210"></a><a class="code" href="nel_patch_mesh_h.html#a20">00210</a> <font class="preprocessor">#define UI_EDGE_FLAGS_NO_SMOOTH_MASK 0x1 +</font>00211 <font class="preprocessor"></font> +00212 <font class="comment">// User info for edge</font> +<a name="l00213"></a><a class="code" href="class_CEdgeInfo.html">00213</a> <font class="keyword">class </font><a class="code" href="class_CEdgeInfo.html">CEdgeInfo</a> +00214 { +00215 <font class="keyword">public</font>: +00216 <font class="comment">// Default Ctor</font> +<a name="l00217"></a><a class="code" href="class_CEdgeInfo.html#a0">00217</a> <a class="code" href="class_CEdgeInfo.html#a0">CEdgeInfo</a> ()<font class="keyword"> +</font>00218 <font class="keyword"> </font>{ +00219 <font class="comment">// No flags </font> +00220 Flags=0; +00221 } +00222 +00223 <font class="comment">// Flags for a edge</font> +<a name="l00224"></a><a class="code" href="class_CEdgeInfo.html#m0">00224</a> uint32 Flags; +00225 }; +00226 +<a name="l00227"></a><a class="code" href="class_UI_PATCH.html">00227</a> <font class="keyword">class </font><a class="code" href="class_UI_PATCH.html">UI_PATCH</a> +00228 { +00229 <font class="keyword">public</font>: +<a name="l00230"></a><a class="code" href="class_UI_PATCH.html#m0">00230</a> <font class="keywordtype">int</font> NbTilesU; <font class="comment">// Default = 3 (2^3 = 8)</font> +<a name="l00231"></a><a class="code" href="class_UI_PATCH.html#m1">00231</a> <font class="keywordtype">int</font> NbTilesV; <font class="comment">// Default = 3 (2^3 = 8)</font> +00232 +00233 <font class="keyword">private</font>: +00234 <font class="comment">// Tabl for tile number ( size: (2^NbTilesU) * (2^NbTilesV) ) default, all 0</font> +<a name="l00235"></a><a class="code" href="class_UI_PATCH.html#o0">00235</a> <a class="code" href="class_tileDesc.html">tileDesc</a> Tile[16*16]; +00236 +00237 <font class="comment">// Tabl for color on tile ( size: ((2^NbTilesU)+1) * ((2^NbTilesV)+1) ) default, all 0xffffffff. Color in 32 bits ARGB.</font> +<a name="l00238"></a><a class="code" href="class_UI_PATCH.html#o1">00238</a> uint Colors[17*17]; +00239 +00240 <font class="comment">// Info by edges</font> +<a name="l00241"></a><a class="code" href="class_UI_PATCH.html#o2">00241</a> <a class="code" href="class_CEdgeInfo.html">CEdgeInfo</a> _Edges[4]; +00242 <font class="keyword">public</font>: +00243 <font class="comment">// Return a tileDesc ref</font> +<a name="l00244"></a><a class="code" href="class_UI_PATCH.html#a0">00244</a> <a class="code" href="class_tileDesc.html">tileDesc</a>& <a class="code" href="class_UI_PATCH.html#a0">getTileDesc</a> (uint iD)<font class="keyword"> +</font>00245 <font class="keyword"> </font>{ +00246 <font class="comment">// Debug</font> +00247 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getTileSize ()); +00248 +00249 <font class="comment">// Return the ref</font> +00250 <font class="keywordflow">return</font> Tile[iD]; +00251 } +00252 +00253 <font class="comment">// Return a const tileDesc ref</font> +<a name="l00254"></a><a class="code" href="class_UI_PATCH.html#a1">00254</a> <font class="keyword">const</font> <a class="code" href="class_tileDesc.html">tileDesc</a>& <a class="code" href="class_UI_PATCH.html#a0">getTileDesc</a> (uint iD)<font class="keyword"> const +</font>00255 <font class="keyword"> </font>{ +00256 <font class="comment">// Debug</font> +00257 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getTileSize ()); +00258 +00259 <font class="comment">// Return the ref</font> +00260 <font class="keywordflow">return</font> Tile[iD]; +00261 } +00262 +00263 <font class="comment">// Return a color ref</font> +<a name="l00264"></a><a class="code" href="class_UI_PATCH.html#a2">00264</a> uint <a class="code" href="class_UI_PATCH.html#a2">getColor</a> (uint iD)<font class="keyword"> const +</font>00265 <font class="keyword"> </font>{ +00266 <font class="comment">// Debug</font> +00267 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getColorSize ()); +00268 +00269 <font class="comment">// Return the ref</font> +00270 <font class="keywordflow">return</font> Colors[iD]; +00271 } +00272 +00273 <font class="comment">// Return a const tileDesc ref</font> +<a name="l00274"></a><a class="code" href="class_UI_PATCH.html#a3">00274</a> <font class="keywordtype">void</font> <a class="code" href="class_UI_PATCH.html#a3">setColor</a> (uint iD, uint newColor)<font class="keyword"> +</font>00275 <font class="keyword"> </font>{ +00276 <font class="comment">// Debug</font> +00277 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getColorSize ()); +00278 +00279 <font class="comment">// Return the ref</font> +00280 Colors[iD]=newColor; +00281 } +00282 +00283 <font class="comment">// Return the size of the Tile array</font> +<a name="l00284"></a><a class="code" href="class_UI_PATCH.html#a4">00284</a> uint <a class="code" href="class_UI_PATCH.html#a4">getTileSize</a> ()<font class="keyword"> const +</font>00285 <font class="keyword"> </font>{ +00286 <font class="keywordflow">return</font> (1<<NbTilesU)*(1<<NbTilesV); +00287 } +00288 +00289 <font class="comment">// Return the size of the Color array</font> +<a name="l00290"></a><a class="code" href="class_UI_PATCH.html#a5">00290</a> uint <a class="code" href="class_UI_PATCH.html#a5">getColorSize</a> ()<font class="keyword"> const +</font>00291 <font class="keyword"> </font>{ +00292 <font class="keywordflow">return</font> ((1<<NbTilesU)+1)*((1<<NbTilesV)+1); +00293 } +00294 +00295 <font class="comment">// Return edge flags</font> +<a name="l00296"></a><a class="code" href="class_UI_PATCH.html#a6">00296</a> <font class="keywordtype">bool</font> <a class="code" href="class_UI_PATCH.html#a6">getEdgeFlag</a> (uint edge)<font class="keyword"> +</font>00297 <font class="keyword"> </font>{ +00298 <a class="code" href="debug_h.html#a6">nlassert</a> ((edge>=0)&&(edge<4)); +00299 <font class="keywordflow">return</font> (_Edges[edge].Flags&UI_EDGE_FLAGS_NO_SMOOTH_MASK)!=0; +00300 } +00301 +00302 <font class="comment">// Set edge flags</font> +<a name="l00303"></a><a class="code" href="class_UI_PATCH.html#a7">00303</a> <font class="keywordtype">void</font> <a class="code" href="class_UI_PATCH.html#a7">setEdgeFlag</a> (uint edge, <font class="keywordtype">bool</font> flags)<font class="keyword"> +</font>00304 <font class="keyword"> </font>{ +00305 <a class="code" href="debug_h.html#a6">nlassert</a> ((edge>=0)&&(edge<4)); +00306 <font class="comment">// Erase and set the flag</font> +00307 _Edges[edge].Flags&=~UI_EDGE_FLAGS_NO_SMOOTH_MASK; +00308 _Edges[edge].Flags|=(uint32)flags; +00309 } +00310 +00311 <font class="comment">// Get edge</font> +<a name="l00312"></a><a class="code" href="class_UI_PATCH.html#a8">00312</a> <a class="code" href="class_CEdgeInfo.html">CEdgeInfo</a>& <a class="code" href="class_UI_PATCH.html#a8">getEdge</a> (uint edge)<font class="keyword"> +</font>00313 <font class="keyword"> </font>{ +00314 <font class="keywordflow">return</font> _Edges[edge]; +00315 } +00316 +00317 <font class="comment">// Get edge</font> +<a name="l00318"></a><a class="code" href="class_UI_PATCH.html#a9">00318</a> <font class="keyword">const</font> <a class="code" href="class_CEdgeInfo.html">CEdgeInfo</a>& <a class="code" href="class_UI_PATCH.html#a8">getEdge</a> (uint edge)<font class="keyword"> const +</font>00319 <font class="keyword"> </font>{ +00320 <font class="keywordflow">return</font> _Edges[edge]; +00321 } +00322 <font class="keyword">public</font>: +<a name="l00323"></a><a class="code" href="class_UI_PATCH.html#a10">00323</a> <font class="keywordtype">void</font> <a class="code" href="class_UI_PATCH.html#a10">Init</a> (<font class="keywordtype">int</font> nU=RPO_DEFAULT_TESSEL, <font class="keywordtype">int</font> nV=RPO_DEFAULT_TESSEL, <font class="keywordtype">bool</font> bKeep=<font class="keyword">false</font>)<font class="keyword"> +</font>00324 <font class="keyword"> </font>{ +00325 <font class="comment">// Copy old patch infos</font> +00326 <a class="code" href="class_UI_PATCH.html">UI_PATCH</a> old=*<font class="keyword">this</font>; +00327 +00328 <font class="comment">// New size</font> +00329 <font class="keywordtype">int</font> nOldU=old.NbTilesU; +00330 <font class="keywordtype">int</font> nOldV=old.NbTilesV; +00331 <font class="keywordtype">int</font> nNewU=1<<nU; +00332 <font class="keywordtype">int</font> nNewV=1<<nV; +00333 NbTilesU=nU; +00334 NbTilesV=nV; +00335 <font class="keywordtype">int</font> nTileCount=(1<<NbTilesU)*(1<<NbTilesV); +00336 <font class="keywordtype">int</font> nVertexCount=((1<<NbTilesU)+1)*((1<<NbTilesV)+1); +00337 +00338 <font class="comment">// Keep old infos</font> +00339 <font class="keywordflow">if</font> (bKeep) +00340 { +00341 <font class="comment">// Copy old coord...</font> +00342 <font class="keywordtype">int</font> i,j; +00343 <font class="keywordtype">int</font> nMinU=<a class="code" href="bit_set_cpp.html#a0">std::min</a> (nOldU, nNewU); +00344 <font class="keywordtype">int</font> nMinV=<a class="code" href="bit_set_cpp.html#a0">std::min</a> (nOldV, nNewV); +00345 <font class="keywordflow">for</font> (j=0; j<nMinV; j++) +00346 { +00347 <font class="keywordflow">for</font> (i=0; i<nMinU; i++) +00348 { +00349 Tile[i+j*nNewU]=old.<a class="code" href="class_UI_PATCH.html#a0">getTileDesc</a> (i+j*nOldU); +00350 } +00351 <font class="keywordflow">for</font> (; i<nNewU; i++) +00352 { +00353 Tile[i+j*nNewU].<a class="code" href="class_tileDesc.html#a4">setEmpty</a> (); +00354 } +00355 } +00356 <font class="keywordflow">for</font> (; j<nNewV; j++) +00357 { +00358 <font class="keywordflow">for</font> (i=0; i<nNewU; i++) +00359 { +00360 Tile[i+j*nNewU].<a class="code" href="class_tileDesc.html#a4">setEmpty</a> (); +00361 } +00362 } +00363 <font class="keywordflow">for</font> (j=0; j<nMinV+1; j++) +00364 { +00365 <font class="keywordflow">for</font> (i=0; i<nMinU+1; i++) +00366 { +00367 Colors[i+j*(nNewU+1)]=old.<a class="code" href="class_UI_PATCH.html#a2">getColor</a> (i+j*(nOldU+1)); +00368 } +00369 <font class="keywordflow">for</font> (; i<nNewU+1; i++) +00370 { +00371 Colors[i+j*nNewU]=0xffffff; +00372 } +00373 } +00374 <font class="keywordflow">for</font> (; j<nNewV+1; j++) +00375 { +00376 <font class="keywordflow">for</font> (i=0; i<nMinU+1; i++) +00377 { +00378 Colors[i+j*nNewU]=0xffffff; +00379 } +00380 } +00381 } +00382 <font class="keywordflow">else</font> +00383 { +00384 <font class="comment">// Init new coord</font> +00385 <font class="keywordtype">int</font> j; +00386 <font class="keywordflow">for</font>(j=0; j<nTileCount; j++) +00387 { +00388 Tile[j].<a class="code" href="class_tileDesc.html#a4">setEmpty</a> (); +00389 } +00390 <font class="keywordflow">for</font>(j=0; j<nVertexCount; j++) +00391 { +00392 Colors[j]=0xffffff; +00393 } +00394 } +00395 } +00396 }; +00397 +<a name="l00398"></a><a class="code" href="class_CPatchAllocator.html">00398</a> <font class="keyword">class </font><a class="code" href="class_CPatchAllocator.html">CPatchAllocator</a> +00399 { +00400 <font class="keyword">public</font>: +00401 <a class="code" href="class_CPatchAllocator.html#a0">CPatchAllocator</a> (); +<a name="l00402"></a><a class="code" href="class_CPatchAllocator.html#m0">00402</a> <a class="code" href="class_CPathMeshAlloc.html">CPathMeshAlloc<UI_PATCH></a> AllocPatch; <font class="comment">// 100 patch by mesh</font> +<a name="l00403"></a><a class="code" href="class_CPatchAllocator.html#m1">00403</a> <a class="code" href="class_CPathMeshAlloc.html">CPathMeshAlloc<UI_VERTEX></a> AllocVertex; <font class="comment">// 100 vertices by mesh</font> +<a name="l00404"></a><a class="code" href="class_CPatchAllocator.html#m2">00404</a> <a class="code" href="class_CPathMeshAlloc.html">CPathMeshAlloc<int></a> AllocInt; +00405 }; +00406 +<a name="l00407"></a><a class="code" href="class_RPOTess.html">00407</a> <font class="keyword">struct </font><a class="code" href="class_RPOTess.html">RPOTess</a> +00408 { +<a name="l00409"></a><a class="code" href="class_RPOTess.html#m0">00409</a> <font class="keywordtype">int</font> TileTesselLevel; +<a name="l00410"></a><a class="code" href="class_RPOTess.html#m1">00410</a> <font class="keywordtype">bool</font> ModeTile; +<a name="l00411"></a><a class="code" href="class_RPOTess.html#m2">00411</a> <font class="keywordtype">bool</font> KeepMapping; +<a name="l00412"></a><a class="code" href="class_RPOTess.html#m3">00412</a> <font class="keywordtype">int</font> TransitionType; +00413 }; +00414 +<a name="l00415"></a><a class="code" href="class_CBankManager.html">00415</a> <font class="keyword">class </font><a class="code" href="class_CBankManager.html">CBankManager</a> +00416 { +00417 <font class="keyword">public</font>: +<a name="l00418"></a><a class="code" href="class_CBankManager.html#a0">00418</a> <a class="code" href="class_CBankManager.html#a0">CBankManager</a> ()<font class="keyword"> +</font>00419 <font class="keyword"> </font>{ +00420 _lastPath=<font class="stringliteral">""</font>; +00421 } +<a name="l00422"></a><a class="code" href="class_CBankManager.html#a1">00422</a> <font class="keyword">const</font> <a class="code" href="class_NL3D__CTileBank.html">NL3D::CTileBank</a>& <a class="code" href="class_CBankManager.html#a1">getBank</a> (std::string& path=GetBankPathName ()) +00423 { +00424 <font class="keywordflow">if</font> (path!=_lastPath) +00425 { +00426 <font class="keywordflow">try</font> +00427 { +00428 <a class="code" href="class_NLMISC__CIFile.html">NLMISC::CIFile</a> file; +00429 <font class="keywordflow">if</font> (file.<a class="code" href="class_NLMISC__CIFile.html#a3">open</a> (path)) +00430 { +00431 _bank.<a class="code" href="class_NL3D__CTileBank.html#a14">clear</a>(); +00432 _bank.<a class="code" href="class_NL3D__CTileBank.html#a22">serial</a> (file); +00433 } +00434 } +00435 <font class="keywordflow">catch</font> (<a class="code" href="class_NLMISC__EStream.html">NLMISC::EStream</a>& excp) +00436 { +00437 MessageBox (NULL, excp.what(), <font class="stringliteral">"Load error"</font>, MB_OK|MB_ICONEXCLAMATION); +00438 } +00439 } +00440 <font class="keywordflow">return</font> _bank; +00441 } +00442 <font class="keyword">private</font>: +<a name="l00443"></a><a class="code" href="class_CBankManager.html#o0">00443</a> <a class="code" href="class_NL3D__CTileBank.html">NL3D::CTileBank</a> _bank; +<a name="l00444"></a><a class="code" href="class_CBankManager.html#o1">00444</a> std::string _lastPath; +00445 }; +00446 +00447 <font class="comment">// Class container of data with copy operator</font> +<a name="l00448"></a><a class="code" href="class_CPatchMeshData.html">00448</a> <font class="keyword">class </font><a class="code" href="class_CPatchMeshData.html">CPatchMeshData</a> +00449 { +00450 <font class="keyword">public</font>: +00451 <font class="comment">// Default constructor, allocate the array</font> +00452 <a class="code" href="class_CPatchMeshData.html#a0">CPatchMeshData</a> (); +00453 +00454 <font class="comment">// Copy constructor, allocate the array</font> +00455 <a class="code" href="class_CPatchMeshData.html#a0">CPatchMeshData</a> (<font class="keyword">const</font> <a class="code" href="class_CPatchMeshData.html">CPatchMeshData</a>& src); +00456 <font class="comment">// Destructor</font> +00457 <a class="code" href="class_CPatchMeshData.html#a2">~CPatchMeshData</a> (); +00458 +00459 <font class="comment">// Copy</font> +00460 <a class="code" href="class_CPatchMeshData.html">CPatchMeshData</a>& <a class="code" href="class_CPatchMeshData.html#a3">operator= </a>(<font class="keyword">const</font> <a class="code" href="class_CPatchMeshData.html">CPatchMeshData</a>& src); +00461 +00462 <font class="comment">// The pointers</font> +<a name="l00463"></a><a class="code" href="class_CPatchMeshData.html#m0">00463</a> std::vector<UI_PATCH> *_UIPatch; +<a name="l00464"></a><a class="code" href="class_CPatchMeshData.html#m1">00464</a> std::vector<UI_VERTEX> *_UIVertex; +<a name="l00465"></a><a class="code" href="class_CPatchMeshData.html#m2">00465</a> std::vector<int> *_MapHitToTileIndex; +00466 }; +00467 +<a name="l00468"></a><a class="code" href="class_RPatchMesh.html">00468</a> <font class="keyword">class </font><a class="code" href="class_RPatchMesh.html">RPatchMesh</a> +00469 { +<a name="l00470"></a><a class="code" href="class_RPatchMesh.html#l0">00470</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_RPO.html">RPO</a>; +00471 <font class="keyword">public</font>: +00472 <a class="code" href="class_RPatchMesh.html#a0">RPatchMesh</a> (); +00473 <a class="code" href="class_RPatchMesh.html#a1">~RPatchMesh</a> (); +00474 +00475 <font class="comment">// Info per patch</font> +00476 +00477 <font class="keyword">private</font>: +<a name="l00478"></a><a class="code" href="class_RPatchMesh.html#o0">00478</a> <a class="code" href="class_CPatchMeshData.html">CPatchMeshData</a> _Data; +00479 <font class="keyword">private</font>: +00480 <font class="comment">// Remap the map hit size</font> +<a name="l00481"></a><a class="code" href="class_RPatchMesh.html#c0">00481</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c0">resizeMapHit</a> (uint size)<font class="keyword"> +</font>00482 <font class="keyword"> </font>{ +00483 _Data._MapHitToTileIndex->resize (size); +00484 } +00485 +00486 <font class="comment">// Remap the map hit size</font> +<a name="l00487"></a><a class="code" href="class_RPatchMesh.html#c1">00487</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c1">setRemapEntry</a> (uint iD, uint remap)<font class="keyword"> +</font>00488 <font class="keyword"> </font>{ +00489 (*_Data._MapHitToTileIndex)[iD]=remap; +00490 } +00491 +00492 <font class="comment">// Resize the user info size</font> +<a name="l00493"></a><a class="code" href="class_RPatchMesh.html#c2">00493</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c2">resizeUIPatch</a> (uint size)<font class="keyword"> +</font>00494 <font class="keyword"> </font>{ +00495 _Data._UIPatch->resize (size); +00496 } +00497 +00498 <font class="comment">// Resize the user info size</font> +<a name="l00499"></a><a class="code" href="class_RPatchMesh.html#c3">00499</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c3">resizeUIVertex</a> (uint size)<font class="keyword"> +</font>00500 <font class="keyword"> </font>{ +00501 _Data._UIVertex->resize (size); +00502 } +00503 <font class="keyword">public</font>: +00504 <font class="comment">// Get map hit size</font> +<a name="l00505"></a><a class="code" href="class_RPatchMesh.html#a2">00505</a> uint <a class="code" href="class_RPatchMesh.html#a2">getMapHitSize</a> ()<font class="keyword"> const +</font>00506 <font class="keyword"> </font>{ +00507 <font class="keywordflow">return</font> _Data._MapHitToTileIndex-><a class="code" href="lexlang_cpp.html#a56">size</a> (); +00508 } +00509 +00510 <font class="comment">// Remap a triangle</font> +<a name="l00511"></a><a class="code" href="class_RPatchMesh.html#a3">00511</a> uint <a class="code" href="class_RPatchMesh.html#a3">remapTriangle</a> (uint iD)<font class="keyword"> const +</font>00512 <font class="keyword"> </font>{ +00513 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getMapHitSize ()); +00514 <font class="keywordflow">return</font> (*_Data._MapHitToTileIndex)[iD]; +00515 } +00516 +00517 <font class="comment">// Get the patch user info size</font> +<a name="l00518"></a><a class="code" href="class_RPatchMesh.html#a4">00518</a> uint <a class="code" href="class_RPatchMesh.html#a4">getUIPatchSize</a> ()<font class="keyword"> const +</font>00519 <font class="keyword"> </font>{ +00520 <font class="keywordflow">return</font> _Data._UIPatch-><a class="code" href="lexlang_cpp.html#a56">size</a>(); +00521 } +00522 +00523 <font class="comment">// Get a patch user info</font> +<a name="l00524"></a><a class="code" href="class_RPatchMesh.html#a5">00524</a> <a class="code" href="class_UI_PATCH.html">UI_PATCH</a>& <a class="code" href="class_RPatchMesh.html#a5">getUIPatch</a> (uint iD)<font class="keyword"> +</font>00525 <font class="keyword"> </font>{ +00526 <font class="comment">// Check</font> +00527 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getUIPatchSize ()); +00528 +00529 <font class="keywordflow">return</font> (*_Data._UIPatch)[iD]; +00530 } +00531 +00532 <font class="comment">// Get a const patch user info</font> +<a name="l00533"></a><a class="code" href="class_RPatchMesh.html#a6">00533</a> <font class="keyword">const</font> <a class="code" href="class_UI_PATCH.html">UI_PATCH</a>& <a class="code" href="class_RPatchMesh.html#a5">getUIPatch</a> (uint iD)<font class="keyword"> const +</font>00534 <font class="keyword"> </font>{ +00535 <font class="comment">// Check</font> +00536 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getUIPatchSize ()); +00537 +00538 <font class="keywordflow">return</font> (*_Data._UIPatch)[iD]; +00539 } +00540 +00541 <font class="comment">// Get vertex user info size</font> +<a name="l00542"></a><a class="code" href="class_RPatchMesh.html#a7">00542</a> uint <a class="code" href="class_RPatchMesh.html#a7">getUIVertexSize</a> ()<font class="keyword"> const +</font>00543 <font class="keyword"> </font>{ +00544 <font class="keywordflow">return</font> _Data._UIVertex-><a class="code" href="lexlang_cpp.html#a56">size</a>(); +00545 } +00546 +00547 <font class="comment">// Get a vertex user info</font> +<a name="l00548"></a><a class="code" href="class_RPatchMesh.html#a8">00548</a> <a class="code" href="class_UI_VERTEX.html">UI_VERTEX</a>& <a class="code" href="class_RPatchMesh.html#a8">getUIVertex</a> (uint iD)<font class="keyword"> +</font>00549 <font class="keyword"> </font>{ +00550 <font class="comment">// Check</font> +00551 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getUIVertexSize ()); +00552 +00553 <font class="keywordflow">return</font> (*_Data._UIVertex)[iD]; +00554 } +00555 +00556 <font class="comment">// Get a const vertex user info</font> +<a name="l00557"></a><a class="code" href="class_RPatchMesh.html#a9">00557</a> <font class="keyword">const</font> <a class="code" href="class_UI_VERTEX.html">UI_VERTEX</a>& <a class="code" href="class_RPatchMesh.html#a8">getUIVertex</a> (uint iD)<font class="keyword"> const +</font>00558 <font class="keyword"> </font>{ +00559 <font class="comment">// Check</font> +00560 <a class="code" href="debug_h.html#a6">nlassert</a> (iD<getUIVertexSize ()); +00561 +00562 <font class="keywordflow">return</font> (*_Data._UIVertex)[iD]; +00563 } +00564 +00565 <font class="keyword">public</font>: +00566 <font class="comment">// Validity of the mesh</font> +<a name="l00567"></a><a class="code" href="class_RPatchMesh.html#m0">00567</a> Interval ValidGeom; +<a name="l00568"></a><a class="code" href="class_RPatchMesh.html#m1">00568</a> Interval ValidTopo; +<a name="l00569"></a><a class="code" href="class_RPatchMesh.html#m2">00569</a> Interval ValidTexmap; +<a name="l00570"></a><a class="code" href="class_RPatchMesh.html#m3">00570</a> Interval ValidSelect; +<a name="l00571"></a><a class="code" href="class_RPatchMesh.html#m4">00571</a> Interval ValidDisplay; +<a name="l00572"></a><a class="code" href="class_RPatchMesh.html#m5">00572</a> Interval ValidBindingPos; +<a name="l00573"></a><a class="code" href="class_RPatchMesh.html#m6">00573</a> Interval ValidBindingInfo; +<a name="l00574"></a><a class="code" href="class_RPatchMesh.html#m7">00574</a> BitArray tileSel; +00575 <font class="preprocessor">#pragma warning (disable : 4786) +</font>00576 <font class="preprocessor"></font> +00577 <font class="comment">// Tessel mode</font> +<a name="l00578"></a><a class="code" href="class_RPatchMesh.html#m8">00578</a> <a class="code" href="class_RPOTess.html">RPOTess</a> rTess; +00579 <font class="keyword">private</font>: +00580 <font class="comment">// cached Mesh for the ModeRykolPatchMesh mode</font> +<a name="l00581"></a><a class="code" href="class_RPatchMesh.html#o1">00581</a> Mesh mesh; +00582 +<a name="l00583"></a><a class="code" href="class_RPatchMesh.html#o2">00583</a> <font class="keywordtype">int</font> selLevel; +<a name="l00584"></a><a class="code" href="class_RPatchMesh.html#o3">00584</a> <font class="keywordtype">int</font> tileSet; +<a name="l00585"></a><a class="code" href="class_RPatchMesh.html#o4">00585</a> <font class="keywordtype">int</font> build; +00586 <font class="keyword">public</font>: +<a name="l00587"></a><a class="code" href="class_RPatchMesh.html#m9">00587</a> <font class="keywordtype">bool</font> paint; +<a name="l00588"></a><a class="code" href="class_RPatchMesh.html#m10">00588</a> <font class="keywordtype">bool</font> paintHack; +00589 <font class="keyword">private</font>: +<a name="l00590"></a><a class="code" href="class_RPatchMesh.html#r0">00590</a> <font class="keyword">static</font> <a class="code" href="class_CBankManager.html">CBankManager</a> manager; +00591 +00592 <font class="comment">// Fill the binding info for a vertex. Don't forget to call UpdateBindingInfo after</font> +00593 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c4">BindingVertex</a> (<font class="keywordtype">int</font> nVertex, <font class="keywordtype">int</font> nPatch, <font class="keywordtype">int</font> nEdge, <font class="keywordtype">int</font> nPrimary, typeBind nType); +00594 +00595 <font class="comment">// Unbind a vertex</font> +00596 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c5">UnBindingVertex</a> (<font class="keywordtype">int</font> nVertex); +00597 +00598 <font class="comment">// Unbind vertex associed to the patch</font> +00599 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c6">UnbindRelatedPatch</a> (<font class="keywordtype">int</font> nPatch, PatchMesh& patch); +00600 +00601 <font class="comment">// Unbind vertex associed to the vertex</font> +00602 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c7">UnbindRelatedVertex</a> (<font class="keywordtype">int</font> nPatch, PatchMesh& patch); +00603 +00604 <font class="comment">// Update binded vertices's position BIND SAFE</font> +00605 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c8">UpdateBindingPos</a> (PatchMesh& patch); +00606 +00607 <font class="comment">// Build internal binding info</font> +00608 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c9">UpdateBindingInfo</a> (PatchMesh& patch); +00609 +00610 <font class="comment">// Look for a patch with this edge</font> +00611 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#c10">FindPatch</a> (PatchMesh *patch, <font class="keywordtype">int</font> nEdge, <font class="keywordtype">int</font> &WhichEdge, <font class="keywordtype">int</font> &nPatch, <font class="keywordtype">int</font> nFirstPatch); +00612 <font class="keyword">public</font>: +00613 <font class="comment">// Constructor</font> +00614 <a class="code" href="class_RPatchMesh.html#a0">RPatchMesh</a> (PatchMesh *pmesh); <font class="comment">// Patch mesh</font> +00615 +00616 <font class="comment">// Invalidate binding infos</font> +<a name="l00617"></a><a class="code" href="class_RPatchMesh.html#a11">00617</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a11">InvalidateBindingPos</a> ()<font class="keyword"> </font>{ ValidBindingPos=NEVER; }; +<a name="l00618"></a><a class="code" href="class_RPatchMesh.html#a12">00618</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a12">InvalidateBindingInfo</a> ()<font class="keyword"> </font>{ ValidBindingInfo=NEVER; <a class="code" href="class_RPatchMesh.html#a11">InvalidateBindingPos</a> (); }; +00619 +00620 <font class="comment">// Update binding</font> +00621 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a13">UpdateBinding</a> (PatchMesh& patch, TimeValue t); +00622 +00623 <font class="comment">// Check the validity of the RPatchMesh's data with the RPO's data (debug stuff) BIND SAFE</font> +00624 <font class="keywordtype">bool</font> <a class="code" href="class_RPatchMesh.html#a14">Validity</a> (<font class="keyword">const</font> PatchMesh& patch, <font class="keywordtype">bool</font> bAssert); +00625 +00626 <font class="comment">// Resize vertex buffer BIND SAFE</font> +00627 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a15">SetNumVerts</a> (<font class="keywordtype">int</font> nVert); +00628 +00629 <font class="comment">// Resize patches buffer BIND SAFE</font> +00630 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a16">SetNumPatches</a> (<font class="keywordtype">int</font> nPatch); +00631 +00632 <font class="comment">// Subdivide both way BIND SAFE</font> +00633 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a17">Subdivide</a> (<font class="keywordtype">int</font> nPatch, <font class="keywordtype">int</font> nV0, <font class="keywordtype">int</font> nV1, <font class="keywordtype">int</font> nV2, <font class="keywordtype">int</font> nV3, <font class="keywordtype">int</font> nCenter, <font class="keywordtype">int</font> nFirstPatch, PatchMesh& patch); +00634 +00635 <font class="comment">// Subdivide edge 1 and 3 BIND SAFE</font> +00636 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a18">SubdivideU</a> (<font class="keywordtype">int</font> nPatch, <font class="keywordtype">int</font> nV0, <font class="keywordtype">int</font> nV1, <font class="keywordtype">int</font> nFirstPatch, PatchMesh& patch); +00637 +00638 <font class="comment">// Subdivide edge 0 and 2 BIND SAFE</font> +00639 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a19">SubdivideV</a> (<font class="keywordtype">int</font> nPatch, <font class="keywordtype">int</font> nV0, <font class="keywordtype">int</font> nV1, <font class="keywordtype">int</font> nFirstPatch, PatchMesh& patch); +00640 +00641 <font class="comment">// AddHook BIND SAFE</font> +00642 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a20">AddHook</a> (<font class="keywordtype">int</font> nVert, <font class="keywordtype">int</font> nSeg, PatchMesh& patch); +00643 +00644 <font class="comment">// AddHook BIND SAFE</font> +00645 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a20">AddHook</a> (<font class="keywordtype">int</font> nVert0, <font class="keywordtype">int</font> nVert1, <font class="keywordtype">int</font> nVert2, <font class="keywordtype">int</font> nSeg, PatchMesh& patch); +00646 +00647 <font class="comment">// RemoveHook BIND SAFE</font> +00648 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a22">RemoveHook</a> (PatchMesh& patch); +00649 +00650 <font class="comment">// Attach BIND SAFE</font> +00651 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a23">Attach</a>(<a class="code" href="class_RPatchMesh.html">RPatchMesh</a> *rattPatch, PatchMesh& patch); +00652 +00653 <font class="comment">// Extrude BIND SAFE</font> +00654 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a24">CreateExtrusion</a> (PatchMesh *rpatch); +00655 +00656 <font class="comment">// Weld BIND SAFE</font> +00657 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a25">Weld</a> (PatchMesh *patch); +00658 +00659 <font class="comment">// Add a patch BIND SAFE</font> +00660 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a26">AddPatch</a> (<font class="keywordtype">int</font> nEdge, <font class="keywordtype">int</font> nFirstPatch, PatchMesh *patch); +00661 +00662 <font class="comment">// Delete patches and vertices BIND SAFE</font> +00663 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a27">DeleteAndSweep</a> (<font class="keyword">const</font> BitArray &remapVerts, <font class="keyword">const</font> BitArray &remapPatches, PatchMesh& patch); +00664 +00665 <font class="comment">// Invalidate channels BIND SAFE</font> +00666 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a28">InvalidateChannels</a>(ChannelMask channels); +00667 +00668 <font class="comment">// Update topo change BIND SAFE</font> +00669 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a29">ResolveTopoChanges</a>(PatchMesh *patch); +00670 +00671 <font class="comment">// Change sel level BIND SAFE</font> +<a name="l00672"></a><a class="code" href="class_RPatchMesh.html#a30">00672</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a30">SetSelLevel</a> (<font class="keywordtype">int</font> sellevel)<font class="keyword"> +</font>00673 <font class="keyword"> </font>{ +00674 selLevel=sellevel; +00675 <a class="code" href="class_RPatchMesh.html#a28">InvalidateChannels</a>(PART_SELECT); +00676 } +00677 +00678 <font class="comment">// Get sel level BIND SAFE</font> +<a name="l00679"></a><a class="code" href="class_RPatchMesh.html#a31">00679</a> <font class="keywordtype">int</font> <a class="code" href="class_RPatchMesh.html#a31">GetSelLevel</a> ()<font class="keyword"> +</font>00680 <font class="keyword"> </font>{ +00681 <font class="keywordflow">return</font> selLevel; +00682 } +00683 +00684 <font class="comment">// Load</font> +00685 IOResult <a class="code" href="class_RPatchMesh.html#a32">Load</a>(ILoad *iload); +00686 +00687 <font class="comment">// Save</font> +00688 IOResult <a class="code" href="class_RPatchMesh.html#a33">Save</a>(ISave *isave); +00689 +00690 <font class="comment">// *** Tile Methods</font> +00691 +00692 <font class="comment">// Get the matrix of the selected tiles</font> +00693 Matrix3 <a class="code" href="class_RPatchMesh.html#a34">GetSelTileTm</a>(PatchMesh& patch, TimeValue t, INode *node, <font class="keywordtype">bool</font>& bHasSel) <font class="keyword">const</font>; +00694 +00695 <font class="comment">// Get the center of the selected tiles</font> +00696 Point3 <a class="code" href="class_RPatchMesh.html#a35">GetSelTileCenter</a>(PatchMesh& patch, TimeValue t, INode *node, <font class="keywordtype">bool</font>& bHasSel) <font class="keyword">const</font>; +00697 +00698 <font class="comment">// Hittest method</font> +00699 BOOL <a class="code" href="class_RPatchMesh.html#a36">SubObjectHitTest</a>(GraphicsWindow *gw, Material *ma, HitRegion *hr, DWORD flags, SubPatchHitList& hitList, TimeValue t, +00700 PatchMesh& patch); +00701 +00702 <font class="comment">// Return the tile number</font> +<a name="l00703"></a><a class="code" href="class_RPatchMesh.html#a37">00703</a> <font class="keywordtype">int</font> <a class="code" href="class_RPatchMesh.html#a37">GetTileNumber</a>(<font class="keywordtype">int</font> nPatch, <font class="keywordtype">int</font> nU, <font class="keywordtype">int</font> nV)<font class="keyword"> const +</font>00704 <font class="keyword"> </font>{ +00705 <a class="code" href="debug_h.html#a6">nlassert</a> (nU>=0); +00706 <a class="code" href="debug_h.html#a6">nlassert</a> (nU<MAX_TILE_IN_PATCH); +00707 <a class="code" href="debug_h.html#a6">nlassert</a> (nV>=0); +00708 <a class="code" href="debug_h.html#a6">nlassert</a> (nV<MAX_TILE_IN_PATCH); +00709 <font class="keywordflow">return</font> nV*MAX_TILE_IN_PATCH+nU+nPatch*NUM_TILE_SEL; +00710 } +00711 +00712 <font class="comment">// Build the mesh</font> +00713 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a38">BuildMesh</a>(TimeValue t, PatchMesh& patch, Mesh *pMesh=NULL); +00714 +00715 <font class="comment">// Get tessel level of a patch</font> +00716 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a39">GetPatchTess</a> (<font class="keywordtype">int</font> nPatch, <font class="keywordtype">int</font>& nUTess, <font class="keywordtype">int</font>& nVTess); +00717 +00718 <font class="comment">// Display</font> +00719 <font class="keywordtype">int</font> <a class="code" href="class_RPatchMesh.html#a40">Display</a>(TimeValue t, INode* inode, ViewExp *vpt, <font class="keywordtype">int</font> flags, PatchMesh& patch); +00720 +00721 <font class="comment">// Tile access</font> +00722 <a class="code" href="class_tileDesc.html">tileDesc</a>& <a class="code" href="class_RPatchMesh.html#a41">getTileDesc</a> (<font class="keywordtype">int</font> nTile); +00723 +00724 <font class="comment">// Tile access</font> +00725 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a42">setTileDesc</a> (<font class="keywordtype">int</font> nTile, <font class="keyword">const</font> <a class="code" href="class_tileDesc.html">tileDesc</a>& desc); +00726 +00727 <font class="comment">// Turn selected patch</font> +00728 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a43">TurnPatch</a>(PatchMesh *patch); +00729 +00730 <font class="comment">// Export a zone to NeL format</font> +00731 <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a44">exportZone</a>(INode* pNode, PatchMesh* pPM, <a class="code" href="class_NL3D__CZone.html">NL3D::CZone</a>& zone, <font class="keywordtype">int</font> zoneId); +00732 +00733 <font class="comment">// *** Vertex color Methods</font> +00734 +00735 <font class="comment">// Get the vertex color of a patch</font> +<a name="l00736"></a><a class="code" href="class_RPatchMesh.html#a45">00736</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a45">getVertexColor</a> (<font class="keywordtype">int</font> patch, <font class="keywordtype">int</font> s, <font class="keywordtype">int</font> t, <a class="code" href="class_NLMISC__CRGBA.html">NLMISC::CRGBA</a>& dest)<font class="keyword"> +</font>00737 <font class="keyword"> </font>{ +00738 <font class="comment">// Get the color</font> +00739 uint encodedColor=<a class="code" href="class_RPatchMesh.html#a5">getUIPatch</a> (patch).<a class="code" href="class_UI_PATCH.html#a2">getColor</a> (t*((1<<getUIPatch (patch).NbTilesU)+1)+s); +00740 +00741 <font class="comment">// Store the color</font> +00742 dest.A=encodedColor>>24; +00743 dest.R=(encodedColor>>16)&0xff; +00744 dest.G=(encodedColor>>8)&0xff; +00745 dest.B=encodedColor&0xff; +00746 } +00747 +00748 <font class="comment">// Set the vertex color of a patch</font> +<a name="l00749"></a><a class="code" href="class_RPatchMesh.html#a46">00749</a> <font class="keywordtype">void</font> <a class="code" href="class_RPatchMesh.html#a46">setVertexColor</a> (<font class="keywordtype">int</font> patch, <font class="keywordtype">int</font> s, <font class="keywordtype">int</font> t, <font class="keyword">const</font> <a class="code" href="class_NLMISC__CRGBA.html">NLMISC::CRGBA</a>& newColor)<font class="keyword"> +</font>00750 <font class="keyword"> </font>{ +00751 <font class="comment">// Get the color</font> +00752 uint encodedColor=(newColor.A<<24)|(newColor.R<<16)|(newColor.G<<8)|newColor.B; +00753 +00754 <font class="comment">// Store the color</font> +00755 <a class="code" href="class_RPatchMesh.html#a5">getUIPatch</a> (patch).<a class="code" href="class_UI_PATCH.html#a3">setColor</a> (t*((1<<getUIPatch (patch).NbTilesU)+1)+s, encodedColor); +00756 } +00757 }; +00758 +00759 <font class="comment">// ------------------------------------------------------------------------------------------------------------------------------------------------</font> +00760 +00761 <font class="preprocessor">#endif // __RYKOL_PATCH_MESH_H +</font></div></pre> + +<!-- 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> |