aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/mot_8h-source.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/mot_8h-source.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/mot_8h-source.html')
-rw-r--r--docs/doxygen/nel/mot_8h-source.html459
1 files changed, 459 insertions, 0 deletions
diff --git a/docs/doxygen/nel/mot_8h-source.html b/docs/doxygen/nel/mot_8h-source.html
new file mode 100644
index 00000000..055bb5b7
--- /dev/null
+++ b/docs/doxygen/nel/mot_8h-source.html
@@ -0,0 +1,459 @@
+<!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>mot.h</h1><a href="mot_8h.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 NL_MOT_H</font>
+00027 <font class="preprocessor"></font><font class="preprocessor">#define NL_MOT_H</font>
+00028 <font class="preprocessor"></font>
+00029
+00030 <font class="preprocessor">#include "<a class="code" href="types__nl_8h.html">nel/misc/types_nl.h</a>"</font>
+00031 <font class="preprocessor">#include "<a class="code" href="smart__ptr_8h.html">nel/misc/smart_ptr.h</a>"</font>
+00032 <font class="preprocessor">#include "<a class="code" href="bit__set_8h.html">nel/misc/bit_set.h</a>"</font>
+00033 <font class="preprocessor">#include "<a class="code" href="class__id_8h.html">nel/misc/class_id.h</a>"</font>
+00034 <font class="preprocessor">#include &lt;vector&gt;</font>
+00035 <font class="preprocessor">#include &lt;set&gt;</font>
+00036 <font class="preprocessor">#include &lt;map&gt;</font>
+00037
+00038
+00039
+00040 <font class="keyword">namespace </font>NLMISC
+00041 {
+00042 <font class="keyword">class </font>IStream;
+00043 }
+00044
+00045
+00046 <font class="keyword">namespace </font>NL3D
+00047 {
+00048
+00049
+00050 <font class="keyword">class </font>IModel;
+00051 <font class="keyword">class </font>IObs;
+00052 <font class="keyword">class </font>ITrav;
+00053
+00054
+00055 <font class="comment">// ***************************************************************************</font>
+<a name="l00070"></a><a class="code" href="classNL3D_1_1CMOT.html">00070</a> <font class="comment"></font><font class="keyword">class </font>CMOT
+00071 {
+00072 <font class="keyword">public</font>:
+00073 <font class="comment">// Ctor.</font>
+00074 <a class="code" href="classNL3D_1_1CMOT.html#a0">CMOT</a>();
+00075 <font class="comment">// Dtor.</font>
+00076 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1CMOT.html#a1">~CMOT</a>();
+00077
+00079
+00080
+00087 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMOT.html#z589_0">registerModel</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idModel, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idModelBase, <a class="code" href="classNL3D_1_1CMOT.html#l0">IModel</a>* (*creator)());
+00095 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMOT.html#z589_1">registerObs</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idTrav, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idModel, IObs* (*creator)());
+00097
+00098
+00099 <font class="keyword">public</font>:
+00101
+00102
+00109 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMOT.html#z590_0">addTrav</a>(ITrav *<a class="code" href="driver__opengl__extension__def_8h.html#a246">v</a>);
+<a name="l00111"></a><a class="code" href="classNL3D_1_1CMOT.html#z590_1">00111</a> <a class="code" href="types__nl_8h.html#a14">uint</a> <a class="code" href="classNL3D_1_1CMOT.html#z590_1">getNumTrav</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMOT.html#o0">Traversals</a>.size(); }
+<a name="l00113"></a><a class="code" href="classNL3D_1_1CMOT.html#z590_2">00113</a> ITrav *<a class="code" href="classNL3D_1_1CMOT.html#z590_2">getTrav</a>(<a class="code" href="types__nl_8h.html#a14">uint</a> <a class="code" href="driver__opengl__extension__def_8h.html#a236">index</a>)<font class="keyword"> const </font>
+00114 <font class="keyword"> </font>{
+00115 <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="driver__opengl__extension__def_8h.html#a236">index</a> &lt; <a class="code" href="classNL3D_1_1CMOT.html#o0">Traversals</a>.size());
+00116 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMOT.html#o0">Traversals</a>[<a class="code" href="driver__opengl__extension__def_8h.html#a236">index</a>].Trav;
+00117 }
+00123 ITrav *<a class="code" href="classNL3D_1_1CMOT.html#z590_2">getTrav</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idTrav) <font class="keyword">const</font>;
+00125
+00126
+00127 <font class="keyword">public</font>:
+00129
+00130
+00147 <a class="code" href="classNL3D_1_1CMOT.html#l0">IModel</a> *<a class="code" href="classNL3D_1_1CMOT.html#z591_0">createModel</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idModel);
+00148
+00155 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMOT.html#z591_1">deleteModel</a>(<a class="code" href="classNL3D_1_1CMOT.html#l0">IModel</a> *model);
+00156
+00160 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMOT.html#z591_2">validateModels</a>();
+00161
+00163
+00164
+00168 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMOT.html#a2">release</a>();
+00169
+00170
+00171 <font class="comment">// ******************</font>
+00172 <font class="keyword">private</font>:
+<a name="l00173"></a><a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html">00173</a> <font class="keyword">struct </font>CModelEntry
+00174 {
+<a name="l00175"></a><a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#m0">00175</a> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> <a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#m0">ModelId</a>, <a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#m1">BaseModelId</a>;
+00176 IModel* (*Creator)();
+<a name="l00177"></a><a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#a0">00177</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#a0">operator&lt;</a>(<font class="keyword">const</font> CModelEntry&amp; o)<font class="keyword"> const </font>{<font class="keywordflow">return</font> ModelId&lt;o.ModelId;}
+<a name="l00178"></a><a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#a1">00178</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#a1">operator==</a>(<font class="keyword">const</font> CModelEntry&amp; o)<font class="keyword"> const </font>{<font class="keywordflow">return</font> ModelId==o.ModelId;}
+<a name="l00179"></a><a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#a2">00179</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CMOT_1_1CModelEntry.html#a2">operator!=</a>(<font class="keyword">const</font> CModelEntry&amp; o)<font class="keyword"> const </font>{<font class="keywordflow">return</font> !(*<font class="keyword">this</font>==o);}
+00180 };
+00181
+<a name="l00182"></a><a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html">00182</a> <font class="keyword">struct </font>CObsEntry
+00183 {
+<a name="l00184"></a><a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#m0">00184</a> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> <a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#m0">TravId</a>, <a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#m1">ModelId</a>;
+00185 IObs* (*Creator)();
+<a name="l00186"></a><a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#a0">00186</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#a0">operator&lt;</a>(<font class="keyword">const</font> CObsEntry&amp; o)<font class="keyword"> const </font>
+00187 <font class="keyword"> </font>{
+00188 <font class="keywordflow">if</font>(TravId!=o.TravId)
+00189 <font class="keywordflow">return</font> TravId&lt;o.TravId;
+00190 <font class="keywordflow">else</font>
+00191 <font class="keywordflow">return</font> ModelId&lt;o.ModelId;
+00192 }
+<a name="l00193"></a><a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#a1">00193</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#a1">operator==</a>(<font class="keyword">const</font> CObsEntry&amp; o)<font class="keyword"> const </font>
+00194 <font class="keyword"> </font>{
+00195 <font class="keywordflow">return</font> ModelId==o.ModelId &amp;&amp; TravId==o.TravId;
+00196 }
+<a name="l00197"></a><a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#a2">00197</a> <font class="keywordtype">bool</font> <a class="code" href="structNL3D_1_1CMOT_1_1CObsEntry.html#a2">operator!=</a>(<font class="keyword">const</font> CObsEntry&amp; o)<font class="keyword"> const </font>{<font class="keywordflow">return</font> !(*<font class="keyword">this</font>==o);}
+00198 };
+00199
+<a name="l00200"></a><a class="code" href="structNL3D_1_1CMOT_1_1CTravEntry.html">00200</a> <font class="keyword">struct </font>CTravEntry
+00201 {
+<a name="l00202"></a><a class="code" href="structNL3D_1_1CMOT_1_1CTravEntry.html#m0">00202</a> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> <a class="code" href="structNL3D_1_1CMOT_1_1CTravEntry.html#m0">TravId</a>;
+<a name="l00203"></a><a class="code" href="structNL3D_1_1CMOT_1_1CTravEntry.html#m1">00203</a> ITrav *<a class="code" href="structNL3D_1_1CMOT_1_1CTravEntry.html#m1">Trav</a>;
+00204 };
+00205
+00206 <font class="keyword">private</font>:
+00207 <font class="comment">// must do this for _ValidateModelList access.</font>
+<a name="l00208"></a><a class="code" href="classNL3D_1_1CMOT.html#l0">00208</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1CMOT.html#l0">IModel</a>;
+00209
+<a name="l00210"></a><a class="code" href="classNL3D_1_1CMOT.html#o0">00210</a> std::vector&lt;CTravEntry&gt; <a class="code" href="classNL3D_1_1CMOT.html#o0">Traversals</a>;
+<a name="l00211"></a><a class="code" href="classNL3D_1_1CMOT.html#o1">00211</a> std::set&lt;IModel*&gt; <a class="code" href="classNL3D_1_1CMOT.html#o1">Models</a>;
+<a name="l00212"></a><a class="code" href="classNL3D_1_1CMOT.html#o2">00212</a> <a class="code" href="classNL3D_1_1CMOT.html#l0">IModel</a> *<a class="code" href="classNL3D_1_1CMOT.html#o2">_ValidateModelList</a>;
+00213
+00214 <font class="keyword">static</font> std::set&lt;CModelEntry&gt; <a class="code" href="classNL3D_1_1CMOT.html#r0">RegModels</a>;
+00215 <font class="keyword">static</font> std::set&lt;CObsEntry&gt; <a class="code" href="classNL3D_1_1CMOT.html#r1">RegObservers</a>;
+00216
+00217 <font class="keyword">private</font>:
+00218 <font class="comment">// Create an observer, obeying the hierachy/observer system explained in createModel().</font>
+00219 IObs *<a class="code" href="classNL3D_1_1CMOT.html#c0">createObs</a>(<font class="keyword">const</font> ITrav *trav, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idModel) <font class="keyword">const</font>;
+00220
+00221 <font class="keyword">protected</font>:
+00222 <font class="comment">// For hertied class, to access observer result of a model.</font>
+00223 IObs *<a class="code" href="classNL3D_1_1CMOT.html#b0">getModelObs</a>(<a class="code" href="classNL3D_1_1CMOT.html#l0">IModel</a> *m, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idTrav) <font class="keyword">const</font>;
+00224
+00225
+00226 <font class="keyword">private</font>:
+00227 <font class="comment">// a dummy method, usefull for dynamic_cast only.</font>
+<a name="l00228"></a><a class="code" href="classNL3D_1_1CMOT.html#c1">00228</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMOT.html#c1">dummyForDynamicCast</a>() {}
+00229
+00230 };
+00231
+00232
+00233 <font class="comment">// ***************************************************************************</font>
+<a name="l00258"></a><a class="code" href="classNL3D_1_1IModel.html">00258</a> <font class="comment"></font><font class="keyword">class </font>IModel : <font class="keyword">public</font> NLMISC::CRefCount
+00259 {
+00260 <font class="keyword">protected</font>:
+00269 <a class="code" href="classNL3D_1_1IModel.html#b0">IModel</a>();
+00270
+<a name="l00281"></a><a class="code" href="classNL3D_1_1IModel.html#b1">00281</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IModel.html#b1">initModel</a>()
+00282 {
+00283 }
+00284
+00291 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1IModel.html#b2">~IModel</a>();
+00292
+00293 <font class="keyword">public</font>:
+00294
+00296
+00297
+<a name="l00301"></a><a class="code" href="classNL3D_1_1IModel.html#z592_0">00301</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IModel.html#z592_0">TDirty</a>
+00302 {
+00303 <a class="code" href="classNL3D_1_1IModel.html#z592_0s0">Dirty</a>=0, <font class="comment">// First bit, to say that the Model is dirty.</font>
+00304 <a class="code" href="classNL3D_1_1IModel.html#z592_0s1">Last</a>
+00305 };
+<a name="l00307"></a><a class="code" href="classNL3D_1_1IModel.html#z592_3">00307</a> <a class="code" href="classNLMISC_1_1CBitSet.html">NLMISC::CBitSet</a> <a class="code" href="classNL3D_1_1IModel.html#z592_3">TouchObs</a>;
+<a name="l00309"></a><a class="code" href="classNL3D_1_1IModel.html#z592_1">00309</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IModel.html#z592_1">foul</a>(<a class="code" href="types__nl_8h.html#a14">uint</a> flag) { TouchObs.<a class="code" href="classNLMISC_1_1CBitSet.html#z265_4">set</a>(<a class="code" href="classNL3D_1_1IModel.html#z592_0s0">Dirty</a>); TouchObs.<a class="code" href="classNLMISC_1_1CBitSet.html#z265_4">set</a>(flag); }
+00310
+00312 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IModel.html#z592_2">validate</a>();
+00313
+00315
+00316
+00317 <font class="keyword">protected</font>:
+00318 <font class="comment">// Observers created and linked by CMOT::createModel()</font>
+<a name="l00319"></a><a class="code" href="classNL3D_1_1IModel.html#l0">00319</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1IModel.html#l0">CMOT</a>;
+<a name="l00320"></a><a class="code" href="classNL3D_1_1IModel.html#l1">00320</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1IModel.html#l1">IObs</a>;
+<a name="l00321"></a><a class="code" href="classNL3D_1_1IModel.html#l2">00321</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1IModel.html#l2">ITrav</a>;
+<a name="l00322"></a><a class="code" href="classNL3D_1_1IModel.html#t0">00322</a> <font class="keyword">typedef</font> std::map&lt;NLMISC::CClassId, IObs*&gt; <a class="code" href="classNL3D_1_1IModel.html#t0">CObsMap</a>;
+<a name="l00323"></a><a class="code" href="classNL3D_1_1IModel.html#n0">00323</a> <a class="code" href="classNL3D_1_1IModel.html#t0">CObsMap</a> <a class="code" href="classNL3D_1_1IModel.html#n0">Observers</a>;
+00324
+00325 <font class="comment">// Cache the last observer acceded through getObs().</font>
+<a name="l00326"></a><a class="code" href="classNL3D_1_1IModel.html#n1">00326</a> <font class="keyword">mutable</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> <a class="code" href="classNL3D_1_1IModel.html#n1">LastClassId</a>;
+<a name="l00327"></a><a class="code" href="classNL3D_1_1IModel.html#n2">00327</a> <font class="keyword">mutable</font> <a class="code" href="classNL3D_1_1IModel.html#l1">IObs</a> *<a class="code" href="classNL3D_1_1IModel.html#n2">LastObs</a>;
+00329 <a class="code" href="classNL3D_1_1IModel.html#l1">IObs</a> *<a class="code" href="classNL3D_1_1IModel.html#b3">getObs</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idTrav) <font class="keyword">const</font>;
+00330
+00331
+00332 <font class="comment">// A link to the CMOT which created us, filled in createModel().</font>
+<a name="l00333"></a><a class="code" href="classNL3D_1_1IModel.html#n3">00333</a> <a class="code" href="classNL3D_1_1IModel.html#l0">CMOT</a> *<a class="code" href="classNL3D_1_1IModel.html#n3">_OwnerMot</a>;
+00334
+00335 <font class="comment">// linked list of models to validate.</font>
+<a name="l00336"></a><a class="code" href="classNL3D_1_1IModel.html#n4">00336</a> <a class="code" href="classNL3D_1_1IModel.html#b0">IModel</a> *<a class="code" href="classNL3D_1_1IModel.html#n4">_PrecModelToValidate</a>;
+<a name="l00337"></a><a class="code" href="classNL3D_1_1IModel.html#n5">00337</a> <a class="code" href="classNL3D_1_1IModel.html#b0">IModel</a> *<a class="code" href="classNL3D_1_1IModel.html#n5">_NextModelToValidate</a>;
+00338
+00339
+00340 <font class="keyword">protected</font>:
+00341
+00342
+00344
+00345
+<a name="l00357"></a><a class="code" href="classNL3D_1_1IModel.html#z593_0">00357</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IModel.html#z593_0">update</a>()
+00358 {
+00359 }
+00360
+<a name="l00373"></a><a class="code" href="classNL3D_1_1IModel.html#z593_1">00373</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IModel.html#z593_1">cleanTouch</a>()
+00374 {
+00375 TouchObs.<a class="code" href="classNLMISC_1_1CBitSet.html#z265_10">clearAll</a>();
+00376 }
+00377
+00378 <font class="comment">// for CMOT::createModel() and for CTransform::freezeHRC() only.</font>
+00379 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IModel.html#z593_2">linkToValidateList</a>();
+00380 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IModel.html#z593_3">unlinkFromValidateList</a>();
+00381
+00383
+00384
+00385 };
+00386
+00387
+00388 <font class="comment">// ***************************************************************************</font>
+<a name="l00411"></a><a class="code" href="classNL3D_1_1IObs.html">00411</a> <font class="comment"></font><font class="keyword">class </font>IObs : <font class="keyword">public</font> NLMISC::CRefCount
+00412 {
+00413 <font class="keyword">public</font>:
+<a name="l00414"></a><a class="code" href="classNL3D_1_1IObs.html#m0">00414</a> IModel *<a class="code" href="classNL3D_1_1IObs.html#m0">Model</a>; <font class="comment">// The model for this observer.</font>
+<a name="l00415"></a><a class="code" href="classNL3D_1_1IObs.html#m1">00415</a> ITrav *<a class="code" href="classNL3D_1_1IObs.html#m1">Trav</a>; <font class="comment">// The traversal for this observer.</font>
+00416
+00417 <font class="keyword">public</font>:
+00418 <a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a>();
+00420 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1IObs.html#a1">~IObs</a>();
+<a name="l00424"></a><a class="code" href="classNL3D_1_1IObs.html#a2">00424</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IObs.html#a2">init</a>() {}
+00425
+00426
+00448
+<a name="l00449"></a><a class="code" href="classNL3D_1_1IObs.html#z594_0">00449</a> <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IObs.html#z594_0">isTreeNode</a>() {<font class="keywordflow">return</font> <font class="keyword">true</font>;}
+00451 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IObs.html#z594_1">addChild</a>(<a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *son);
+00453 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IObs.html#z594_2">delChild</a>(<a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *son);
+00458 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IObs.html#z594_3">addParent</a>(<a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *father);
+00460 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IObs.html#z594_4">delParent</a>(<a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *father);
+00461
+<a name="l00463"></a><a class="code" href="classNL3D_1_1IObs.html#z594_5">00463</a> <a class="code" href="types__nl_8h.html#a13">sint</a> <a class="code" href="classNL3D_1_1IObs.html#z594_5">getNumChildren</a>()<font class="keyword"> const </font>{<font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1IObs.html#n5">NumSons</a>;}
+<a name="l00465"></a><a class="code" href="classNL3D_1_1IObs.html#z594_6">00465</a> <a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *<a class="code" href="classNL3D_1_1IObs.html#z594_6">getFirstChild</a>()<font class="keyword"> const</font>
+00466 <font class="keyword"> </font>{
+00467 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1IObs.html#n5">NumSons</a>==0)
+00468 <font class="keywordflow">return</font> 0;
+00469 <a class="code" href="classNL3D_1_1IObs.html#n6">CurSonIt</a>= <a class="code" href="classNL3D_1_1IObs.html#n0">SonList</a>.begin();
+00470 <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1IObs.html#n6">CurSonIt</a>!=<a class="code" href="classNL3D_1_1IObs.html#n0">SonList</a>.end());
+00471 <font class="keywordflow">return</font> (*CurSonIt);
+00472 }
+<a name="l00474"></a><a class="code" href="classNL3D_1_1IObs.html#z594_7">00474</a> <a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *<a class="code" href="classNL3D_1_1IObs.html#z594_7">getNextChild</a>()<font class="keyword"> const</font>
+00475 <font class="keyword"> </font>{
+00476 <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1IObs.html#n6">CurSonIt</a>!=<a class="code" href="classNL3D_1_1IObs.html#n0">SonList</a>.end());
+00477 <a class="code" href="classNL3D_1_1IObs.html#n6">CurSonIt</a>++;
+00478 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1IObs.html#n6">CurSonIt</a>==<a class="code" href="classNL3D_1_1IObs.html#n0">SonList</a>.end())
+00479 <font class="keywordflow">return</font> NULL;
+00480 <font class="keywordflow">else</font>
+00481 <font class="keywordflow">return</font> (*CurSonIt);
+00482 }
+00483
+<a name="l00485"></a><a class="code" href="classNL3D_1_1IObs.html#z594_8">00485</a> <a class="code" href="types__nl_8h.html#a13">sint</a> <a class="code" href="classNL3D_1_1IObs.html#z594_8">getNumParents</a>()<font class="keyword"> const </font>{<font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1IObs.html#n4">NumFathers</a>;}
+<a name="l00487"></a><a class="code" href="classNL3D_1_1IObs.html#z594_9">00487</a> <a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *<a class="code" href="classNL3D_1_1IObs.html#z594_9">getFirstParent</a>()<font class="keyword"> const</font>
+00488 <font class="keyword"> </font>{
+00489 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1IObs.html#n4">NumFathers</a>==0)
+00490 <font class="keywordflow">return</font> 0;
+00491 <a class="code" href="classNL3D_1_1IObs.html#n7">CurFatherIt</a>= <a class="code" href="classNL3D_1_1IObs.html#n1">FatherList</a>.begin();
+00492 <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1IObs.html#n7">CurFatherIt</a>!=<a class="code" href="classNL3D_1_1IObs.html#n1">FatherList</a>.end());
+00493 <font class="keywordflow">return</font> (*CurFatherIt);
+00494 }
+<a name="l00496"></a><a class="code" href="classNL3D_1_1IObs.html#z594_10">00496</a> <a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *<a class="code" href="classNL3D_1_1IObs.html#z594_10">getNextParent</a>()<font class="keyword"> const</font>
+00497 <font class="keyword"> </font>{
+00498 <a class="code" href="debug_8h.html#a6">nlassert</a>(<a class="code" href="classNL3D_1_1IObs.html#n7">CurFatherIt</a>!=<a class="code" href="classNL3D_1_1IObs.html#n1">FatherList</a>.end());
+00499 <a class="code" href="classNL3D_1_1IObs.html#n7">CurFatherIt</a>++;
+00500 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1IObs.html#n7">CurFatherIt</a>==<a class="code" href="classNL3D_1_1IObs.html#n1">FatherList</a>.end())
+00501 <font class="keywordflow">return</font> NULL;
+00502 <font class="keywordflow">else</font>
+00503 <font class="keywordflow">return</font> (*CurFatherIt);
+00504 }
+00505
+00507
+00508
+00510
+00511
+00518 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IObs.html#z595_0">traverse</a>(<a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *caller)=0;
+00520
+00521
+00523
+00524
+<a name="l00531"></a><a class="code" href="classNL3D_1_1IObs.html#z596_0">00531</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IObs.html#z596_0">update</a>()
+00532 {
+00533 }
+00535
+00536
+00538
+00539
+<a name="l00540"></a><a class="code" href="classNL3D_1_1IObs.html#z597_0">00540</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IObs.html#z597_0">traverseSons</a>()
+00541 {
+00542 <font class="keywordflow">for</font>(<a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *c= <a class="code" href="classNL3D_1_1IObs.html#z594_6">getFirstChild</a>(); c!=NULL; c= <a class="code" href="classNL3D_1_1IObs.html#z594_7">getNextChild</a>())
+00543 {
+00544 c-&gt;traverse(<font class="keyword">this</font>);
+00545 }
+00546 }
+00548 <a class="code" href="classNL3D_1_1IObs.html#a0">IObs</a> *<a class="code" href="classNL3D_1_1IObs.html#z597_1">getObs</a>(<font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> &amp;idTrav) <font class="keyword">const</font>;
+00550
+00551
+00552 <font class="keyword">protected</font>:
+<a name="l00553"></a><a class="code" href="classNL3D_1_1IObs.html#t0">00553</a> <font class="keyword">typedef</font> <a class="code" href="classstd_1_1list.html">std::list&lt;IObs*&gt;</a> <a class="code" href="classstd_1_1list.html">TObsList</a>;
+<a name="l00554"></a><a class="code" href="classNL3D_1_1IObs.html#t1">00554</a> <font class="keyword">typedef</font> TObsList::iterator <a class="code" href="classNL3D_1_1IObs.html#t1">ItObsList</a>;
+<a name="l00555"></a><a class="code" href="classNL3D_1_1IObs.html#t2">00555</a> <font class="keyword">typedef</font> TObsList::const_iterator <a class="code" href="classNL3D_1_1IObs.html#t2">ConstItObsList</a>;
+<a name="l00556"></a><a class="code" href="classNL3D_1_1IObs.html#t3">00556</a> <font class="keyword">typedef</font> std::map&lt;IObs *, ItObsList&gt; <a class="code" href="classNL3D_1_1IObs.html#t3">TObsMap</a>;
+<a name="l00557"></a><a class="code" href="classNL3D_1_1IObs.html#t4">00557</a> <font class="keyword">typedef</font> TObsMap::iterator <a class="code" href="classNL3D_1_1IObs.html#t4">ItObsMap</a>;
+00558
+00559 <font class="comment">// separate in list/set, to have o(1) lookup, and o(logn) insertion/erase.</font>
+<a name="l00560"></a><a class="code" href="classNL3D_1_1IObs.html#n0">00560</a> TObsList <a class="code" href="classNL3D_1_1IObs.html#n0">SonList</a>;
+<a name="l00561"></a><a class="code" href="classNL3D_1_1IObs.html#n1">00561</a> TObsList <a class="code" href="classNL3D_1_1IObs.html#n1">FatherList</a>;
+<a name="l00562"></a><a class="code" href="classNL3D_1_1IObs.html#n2">00562</a> <a class="code" href="classNL3D_1_1IObs.html#t3">TObsMap</a> <a class="code" href="classNL3D_1_1IObs.html#n2">SonMap</a>;
+<a name="l00563"></a><a class="code" href="classNL3D_1_1IObs.html#n3">00563</a> <a class="code" href="classNL3D_1_1IObs.html#t3">TObsMap</a> <a class="code" href="classNL3D_1_1IObs.html#n3">FatherMap</a>;
+<a name="l00564"></a><a class="code" href="classNL3D_1_1IObs.html#n4">00564</a> <a class="code" href="types__nl_8h.html#a13">sint</a> <a class="code" href="classNL3D_1_1IObs.html#n4">NumFathers</a>;
+<a name="l00565"></a><a class="code" href="classNL3D_1_1IObs.html#n5">00565</a> <a class="code" href="types__nl_8h.html#a13">sint</a> <a class="code" href="classNL3D_1_1IObs.html#n5">NumSons</a>;
+00566
+<a name="l00567"></a><a class="code" href="classNL3D_1_1IObs.html#n6">00567</a> <font class="keyword">mutable</font> <a class="code" href="classNL3D_1_1IObs.html#t2">ConstItObsList</a> <a class="code" href="classNL3D_1_1IObs.html#n6">CurSonIt</a>;
+<a name="l00568"></a><a class="code" href="classNL3D_1_1IObs.html#n7">00568</a> <font class="keyword">mutable</font> <a class="code" href="classNL3D_1_1IObs.html#t2">ConstItObsList</a> <a class="code" href="classNL3D_1_1IObs.html#n7">CurFatherIt</a>;
+00569
+00570 };
+00571
+00572
+00573
+00574 <font class="comment">// ***************************************************************************</font>
+<a name="l00596"></a><a class="code" href="classNL3D_1_1ITrav.html">00596</a> <font class="comment"></font><font class="keyword">class </font>ITrav : <font class="keyword">public</font> NLMISC::CRefCount
+00597 {
+00598 <font class="keyword">public</font>:
+00599
+00601
+00602
+<a name="l00603"></a><a class="code" href="classNL3D_1_1ITrav.html#z598_0">00603</a> <a class="code" href="classNL3D_1_1ITrav.html#z598_0">ITrav</a>() {<a class="code" href="classNL3D_1_1ITrav.html#n0">Root</a>=NULL;}
+<a name="l00605"></a><a class="code" href="classNL3D_1_1ITrav.html#z598_1">00605</a> <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1ITrav.html#z598_1">~ITrav</a>() {<a class="code" href="classNL3D_1_1ITrav.html#n0">Root</a>= NULL;}
+00607
+00609
+00610
+00614 <font class="keyword">virtual</font> IObs *<a class="code" href="classNL3D_1_1ITrav.html#z599_0">createDefaultObs</a>() <font class="keyword">const</font> =0;
+00616 <font class="keyword">virtual</font> <a class="code" href="classNLMISC_1_1CClassId.html">NLMISC::CClassId</a> <a class="code" href="classNL3D_1_1ITrav.html#z599_1">getClassId</a>() <font class="keyword">const</font> =0;
+<a name="l00618"></a><a class="code" href="classNL3D_1_1ITrav.html#z599_2">00618</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1ITrav.html#z599_2">addedToMOT</a>(CMOT *mot) {}
+00620
+00621
+00623
+00624
+00632 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1ITrav.html#z600_0">setRoot</a>(IModel *root);
+00634 IModel *<a class="code" href="classNL3D_1_1ITrav.html#z600_1">getRoot</a>() <font class="keyword">const</font>;
+00641 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1ITrav.html#z600_2">link</a>(IModel *m1, IModel *m2) <font class="keyword">const</font>;
+00647 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1ITrav.html#z600_3">unlink</a>(IModel *m1, IModel *m2) <font class="keyword">const</font>;
+00649 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1ITrav.html#z600_4">moveChildren</a>(IModel *parentFrom, IModel *parentTo) <font class="keyword">const</font>;
+00651 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1ITrav.html#z600_5">copyChildren</a>(IModel *parentFrom, IModel *parentTo) <font class="keyword">const</font>;
+00652
+00653
+00655 <a class="code" href="types__nl_8h.html#a13">sint</a> <a class="code" href="classNL3D_1_1ITrav.html#z600_6">getNumChildren</a>(IModel *m) <font class="keyword">const</font>;
+00657 IModel *<a class="code" href="classNL3D_1_1ITrav.html#z600_7">getFirstChild</a>(IModel *m) <font class="keyword">const</font>;
+00659 IModel *<a class="code" href="classNL3D_1_1ITrav.html#z600_8">getNextChild</a>(IModel *m) <font class="keyword">const</font>;
+00660
+00662 <a class="code" href="types__nl_8h.html#a13">sint</a> <a class="code" href="classNL3D_1_1ITrav.html#z600_9">getNumParents</a>(IModel *m) <font class="keyword">const</font>;
+00664 IModel *<a class="code" href="classNL3D_1_1ITrav.html#z600_10">getFirstParent</a>(IModel *m) <font class="keyword">const</font>;
+00666 IModel *<a class="code" href="classNL3D_1_1ITrav.html#z600_11">getNextParent</a>(IModel *m) <font class="keyword">const</font>;
+00667
+00669
+00670
+00671 <font class="keyword">protected</font>:
+00672 <font class="comment">// The root observer.</font>
+<a name="l00673"></a><a class="code" href="classNL3D_1_1ITrav.html#n0">00673</a> <a class="code" href="classNLMISC_1_1CRefPtr.html">NLMISC::CRefPtr&lt;IObs&gt;</a> <a class="code" href="classNL3D_1_1ITrav.html#n0">Root</a>;
+00674
+00675 };
+00676
+00677
+00678
+00679
+00680 }
+00681
+00682
+00683 <font class="preprocessor">#endif // NL_MOT_H</font>
+00684 <font class="preprocessor"></font>
+00685 <font class="comment">/* End of mot.h */</font>
+00686
+</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>