aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03000.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a03000.html')
-rw-r--r--docs/doxygen/nel/a03000.html1089
1 files changed, 1089 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03000.html b/docs/doxygen/nel/a03000.html
new file mode 100644
index 00000000..01cc347f
--- /dev/null
+++ b/docs/doxygen/nel/a03000.html
@@ -0,0 +1,1089 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: TemplateNLMISC::CObjectVector&lt; T, EnableObjectBehavior &gt; class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLMISC::CObjectVector&lt; T, EnableObjectBehavior &gt; Class Template Reference</h1><code>#include &lt;<a class="el" href="a06116.html">object_vector.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;class T, bool EnableObjectBehavior = true&gt;<br>
+ class NLMISC::CObjectVector&lt; T, EnableObjectBehavior &gt;</h3>
+
+The purpose of this class is to copy most (but not all) of stl vector&lt;&gt; features, without some of the speed/memory problems involved:<ul>
+<li>size of a vector&lt;T&gt; is 16 bytes typically. size of a <a class="el" href="a03000.html">CObjectVector</a> is 8 bytes (only a ptr and a size).</li><li><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1984_3">CObjectVector&lt;T&gt;::size()</a> is faster than <a class="el" href="a04223.html#a587">vector::size()</a></li><li><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1982_1">CObjectVector&lt;T&gt;::resize()</a> is faster because it do not copy from a default value, it just call the default constructor of the objects.</li><li><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1982_0">clear()</a> actually free memory (no reserve scheme)</li></ul>
+<p>
+Object contructors, destructors, operator= are correctly called, unless EnableObjectBehavior template argument is set to false (default is true) In this case: ctor, dtor are not called, and <a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1980_2">operator=()</a> use memcpy.<p>
+Of course some features are not implemented (for benefit of speed/memory):<ul>
+<li>no reserve() scheme</li></ul>
+<p>
+Also, for now, not all vector&lt;&gt; features are implemented (iterator, erase etc...).<p>
+<dl compact><dt><b>Author:</b></dt><dd>Lionel Berenguier <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00077">77</a> of file <a class="el" href="a06116.html">object_vector.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Allocation</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1982_0">clear</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1982_1">resize</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a626">s</a>)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Object</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1980_0">CObjectVector</a> (const <a class="el" href="a03000.html">CObjectVector</a> &amp;vec)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1980_1">CObjectVector</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03000.html">CObjectVector</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1980_2">operator=</a> (const <a class="el" href="a03000.html">CObjectVector</a> &amp;vec)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1980_3">~CObjectVector</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Tools</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1986_0">copy</a> (<a class="el" href="a04558.html#a11">uint32</a> dstFirst, <a class="el" href="a04558.html#a11">uint32</a> dstLast, const T *srcPtr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1986_1">fill</a> (const T &amp;<a class="el" href="a04223.html#a658">value</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1986_2">fill</a> (<a class="el" href="a04558.html#a11">uint32</a> dstFirst, <a class="el" href="a04558.html#a11">uint32</a> dstLast, const T &amp;<a class="el" href="a04223.html#a658">value</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1986_3">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &amp;f)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Accessor</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1984_0">empty</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>T *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1984_1">getPtr</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>T &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1984_2">operator[]</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1984_3">size</a> () const </td></tr>
+
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectord0">construct</a> (<a class="el" href="a04558.html#a11">uint32</a> i0, <a class="el" href="a04558.html#a11">uint32</a> i1)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectord1">destruct</a> (<a class="el" href="a04558.html#a11">uint32</a> i0, <a class="el" href="a04558.html#a11">uint32</a> i1)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectord2">myRealloc</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a626">s</a>)</td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>T *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ptr on our array. <a href="#NLMISC_1_1CObjectVectorr0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">size of the array, in number of elements. <a href="#NLMISC_1_1CObjectVectorr1"></a><br><br></td></tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1980_1" doxytag="NLMISC::CObjectVector::CObjectVector" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::<a class="el" href="a03000.html">CObjectVector</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+copy cons. <dl compact><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>EReallocationFailed()</em>&nbsp;</td><td>if realloc fails.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00083">83</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+<div class="fragment"><pre>00084 {
+00085 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>= NULL;
+00086 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>= 0;
+00087 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1980_3" doxytag="NLMISC::CObjectVector::~CObjectVector" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::~<a class="el" href="a03000.html">CObjectVector</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+copy cons. <dl compact><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>EReallocationFailed()</em>&nbsp;</td><td>if realloc fails.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00088">88</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+<div class="fragment"><pre>00089 {
+00090 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_0">clear</a>();
+00091 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1980_0" doxytag="NLMISC::CObjectVector::CObjectVector" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::<a class="el" href="a03000.html">CObjectVector</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03000.html">CObjectVector</a>&lt; T, EnableObjectBehavior &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>vec</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+copy cons. <dl compact><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>EReallocationFailed()</em>&nbsp;</td><td>if realloc fails.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00095">95</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+<div class="fragment"><pre>00096 {
+00097 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>= NULL;
+00098 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>= 0;
+00099 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1980_2">operator=</a>(vec);
+00100 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1982_0" doxytag="NLMISC::CObjectVector::clear" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::clear </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+clear the array.
+<p>
+Definition at line <a class="el" href="a06116.html#l00124">124</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00328">NLMISC::CObjectVector&lt; sint8, false &gt;::myRealloc()</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; sint8, false &gt;::resize()</a>, <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>, and <a class="el" href="a06116.html#l00088">NLMISC::CObjectVector&lt; sint8, false &gt;::~CObjectVector()</a>.
+<p>
+<div class="fragment"><pre>00125 {
+00126 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectord1">destruct</a>(0, _Size);
+00127 <span class="preprocessor">#ifndef NL_OV_USE_NEW_ALLOCATOR</span>
+00128 <span class="preprocessor"></span> free(_Ptr);
+00129 <span class="preprocessor">#else // NL_OV_USE_NEW_ALLOCATOR</span>
+00130 <span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>)
+00131 <span class="keyword">delete</span> [] (<span class="keywordtype">char</span>*)<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>;
+00132 <span class="preprocessor">#endif // NL_OV_USE_NEW_ALLOCATOR</span>
+00133 <span class="preprocessor"></span> <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>= NULL;
+00134 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>= 0;
+00135 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectord0" doxytag="NLMISC::CObjectVector::construct" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::construct </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>i0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>i1</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00382">382</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; sint8, false &gt;::resize()</a>.
+<p>
+<div class="fragment"><pre>00383 {
+00384 <span class="comment">// don't do it if elements don't need it.</span>
+00385 <span class="keywordflow">if</span>(!EnableObjectBehavior)
+00386 <span class="keywordflow">return</span>;
+00387 <span class="comment">// for all elements</span>
+00388 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=i0;i&lt;i1;i++)
+00389 {
+00390 <span class="comment">// Must do a placement new</span>
+00391 <span class="preprocessor">#undef new</span>
+00392 <span class="preprocessor"></span> <span class="comment">// call ctor.</span>
+00393 <span class="keyword">new</span> (<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>+i) T;
+00394 <span class="comment">// Must do a placement new</span>
+00395 <span class="preprocessor">#define new NL_NEW</span>
+00396 <span class="preprocessor"></span> }
+00397 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1986_0" doxytag="NLMISC::CObjectVector::copy" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::copy </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>dstFirst</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>dstLast</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const T *&nbsp;</td>
+ <td class="mdname" nowrap> <em>srcPtr</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+copy elements from an array ptr to this vector, beetween dstFirst element (included) and dstLast element (not included). nlassert if last is too big. copy(y, x, ...) where y&gt;=x is valid, and nothing is copied.
+<p>
+Definition at line <a class="el" href="a06116.html#l00206">206</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00104">NLMISC::CObjectVector&lt; sint8, false &gt;::operator=()</a>.
+<p>
+<div class="fragment"><pre>00207 {
+00208 <span class="comment">// test if something to copy.</span>
+00209 <span class="keywordflow">if</span>(dstFirst&gt;=dstLast)
+00210 <span class="keywordflow">return</span>;
+00211 <a class="code" href="a04199.html#a6">nlassert</a>(dstLast&lt;=_Size);
+00212 <span class="comment">// if not object elements</span>
+00213 <span class="keywordflow">if</span>(!EnableObjectBehavior)
+00214 {
+00215 <span class="comment">// just memcpy</span>
+00216 memcpy(_Ptr+dstFirst, srcPtr, (dstLast-dstFirst)*<span class="keyword">sizeof</span>(T));
+00217 }
+00218 <span class="keywordflow">else</span>
+00219 {
+00220 <span class="comment">// call ope= for all elements.</span>
+00221 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=dstFirst; i&lt;dstLast; i++, srcPtr++)
+00222 {
+00223 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>[i]= *srcPtr;
+00224 }
+00225 }
+00226 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectord1" doxytag="NLMISC::CObjectVector::destruct" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::destruct </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>i0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>i1</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00368">368</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00124">NLMISC::CObjectVector&lt; sint8, false &gt;::clear()</a>, and <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; sint8, false &gt;::resize()</a>.
+<p>
+<div class="fragment"><pre>00369 {
+00370 <span class="comment">// don't do it if elements don't need it.</span>
+00371 <span class="keywordflow">if</span>(!EnableObjectBehavior)
+00372 <span class="keywordflow">return</span>;
+00373 <span class="comment">// for all elements</span>
+00374 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=i0;i&lt;i1;i++)
+00375 {
+00376 <span class="comment">// call dtor.</span>
+00377 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>[i].~T();
+00378 }
+00379 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1984_0" doxytag="NLMISC::CObjectVector::empty" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::empty </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return true if the container is empty
+<p>
+Definition at line <a class="el" href="a06116.html#l00180">180</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+<div class="fragment"><pre>00180 {<span class="keywordflow">return</span> <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>==0;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1986_1" doxytag="NLMISC::CObjectVector::fill" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::fill </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const T &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>value</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+fill all elements with a value
+<p>
+Definition at line <a class="el" href="a06116.html#l00246">246</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+<div class="fragment"><pre>00247 {
+00248 <span class="comment">// call ope= for all elements.</span>
+00249 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>; i++)
+00250 {
+00251 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>[i]= <a class="code" href="a04223.html#a658">value</a>;
+00252 }
+00253 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1986_2" doxytag="NLMISC::CObjectVector::fill" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::fill </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>dstFirst</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>dstLast</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+fill elements with a value, beetween dstFirst element (included) and dstLast element (not included).
+<p>
+Definition at line <a class="el" href="a06116.html#l00231">231</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+<div class="fragment"><pre>00232 {
+00233 <span class="comment">// test if something to copy.</span>
+00234 <span class="keywordflow">if</span>(dstFirst&gt;=dstLast)
+00235 <span class="keywordflow">return</span>;
+00236 <a class="code" href="a04199.html#a6">nlassert</a>(dstLast&lt;=_Size);
+00237 <span class="comment">// call ope= for all elements.</span>
+00238 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=dstFirst; i&lt;dstLast; i++)
+00239 {
+00240 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>[i]= <a class="code" href="a04223.html#a658">value</a>;
+00241 }
+00242 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1984_1" doxytag="NLMISC::CObjectVector::getPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> T* <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::getPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return a ptr on the first element of the array. NULL if empty.
+<p>
+Definition at line <a class="el" href="a06116.html#l00195">195</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06003.html#l00399">NL3D::CMeshMorpher::updateRawSkin()</a>.
+<p>
+<div class="fragment"><pre>00195 {<span class="keywordflow">return</span> <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectord2" doxytag="NLMISC::CObjectVector::myRealloc" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::myRealloc </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00328">328</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; sint8, false &gt;::resize()</a>.
+<p>
+<div class="fragment"><pre>00329 {
+00330 <span class="preprocessor">#ifndef NL_OV_USE_NEW_ALLOCATOR</span>
+00331 <span class="preprocessor"></span> <span class="comment">// try to realloc the array.</span>
+00332 T *newPtr= (T*)realloc(_Ptr, s*<span class="keyword">sizeof</span>(T));
+00333 <span class="preprocessor">#else // NL_OV_USE_NEW_ALLOCATOR</span>
+00334 <span class="preprocessor"></span> <a class="code" href="a04558.html#a15">uint</a> allocSize= <a class="code" href="a04223.html#a626">s</a>*<span class="keyword">sizeof</span>(T);
+00335 T *newPtr= NULL;
+00336 <span class="keywordflow">if</span> (!<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a> || (allocSize &gt; <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>*<span class="keyword">sizeof</span>(T)))
+00337 {
+00338 <span class="comment">// Reallocate</span>
+00339 <span class="keywordtype">char</span> *newblock = <span class="keyword">new</span> <span class="keywordtype">char</span>[allocSize];
+00340 <span class="keywordflow">if</span> (<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>)
+00341 {
+00342 memcpy (newblock, _Ptr, _Size*<span class="keyword">sizeof</span>(T));
+00343 <span class="keyword">delete</span> [] (<span class="keywordtype">char</span>*)<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>;
+00344 }
+00345 newPtr = (T*)newblock;
+00346 }
+00347 <span class="keywordflow">else</span>
+00348 {
+00349 <span class="comment">// Old block is big enough</span>
+00350 newPtr = <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>;
+00351 }
+00352 <span class="preprocessor">#endif // NL_OV_USE_NEW_ALLOCATOR</span>
+00353 <span class="preprocessor"></span> <span class="comment">// if realloc failure</span>
+00354 <span class="keywordflow">if</span>(newPtr==NULL)
+00355 {
+00356 <span class="comment">// leave the array in a clean state.</span>
+00357 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_0">clear</a>();
+00358 <span class="comment">// exception.</span>
+00359 <span class="keywordflow">throw</span> EReallocationFailed();
+00360 }
+00361 <span class="keywordflow">else</span>
+00362 {
+00363 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>= newPtr;
+00364 }
+00365 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1980_2" doxytag="NLMISC::CObjectVector::operator=" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03000.html">CObjectVector</a>&amp; <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::operator= </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03000.html">CObjectVector</a>&lt; T, EnableObjectBehavior &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>vec</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+copy the array. <dl compact><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>EReallocationFailed()</em>&nbsp;</td><td>if realloc fails.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00104">104</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00095">NLMISC::CObjectVector&lt; sint8, false &gt;::CObjectVector()</a>.
+<p>
+<div class="fragment"><pre>00105 {
+00106 <span class="comment">// *this=*this mgt.</span>
+00107 <span class="keywordflow">if</span>(<span class="keyword">this</span>==&amp;vec)
+00108 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+00109 <span class="comment">// resize to the same size as vec.</span>
+00110 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_1">resize</a>(vec._Size);
+00111 <span class="comment">// copy All the array.</span>
+00112 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1986_0">copy</a>(0, _Size, vec._Ptr);
+00113
+00114 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+00115 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1984_2" doxytag="NLMISC::CObjectVector::operator[]" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> T&amp; <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::operator[] </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>index</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Element accessor. no check is made on index. (No exception, no <a class="el" href="a04199.html#a6">nlassert()</a>)
+<p>
+Definition at line <a class="el" href="a06116.html#l00188">188</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+<div class="fragment"><pre>00189 {
+00190 <span class="keywordflow">return</span> <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a>[<a class="code" href="a04223.html#a566">index</a>];
+00191 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1982_1" doxytag="NLMISC::CObjectVector::resize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::resize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+resize the array. If reallocation occurs, ptr returned by <a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1984_1">getPtr()</a> may not be the same. When reallocation occurs, memory is coped, but operator= are not called. <dl compact><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>EReallocationFailed()</em>&nbsp;</td><td>if realloc fails.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00142">142</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a05486.html#l00762">NLMISC::CBitmap::alphaLuminanceToAlpha()</a>, <a class="el" href="a05486.html#l00677">NLMISC::CBitmap::alphaLuminanceToLuminance()</a>, <a class="el" href="a05486.html#l00519">NLMISC::CBitmap::alphaLuminanceToRGBA()</a>, <a class="el" href="a05486.html#l00607">NLMISC::CBitmap::alphaToAlphaLuminance()</a>, <a class="el" href="a05486.html#l00490">NLMISC::CBitmap::alphaToRGBA()</a>, <a class="el" href="a05486.html#l00965">NLMISC::CBitmap::decompressDXT1()</a>, <a class="el" href="a05486.html#l01090">NLMISC::CBitmap::decompressDXT3()</a>, <a class="el" href="a05486.html#l01200">NLMISC::CBitmap::decompressDXT5()</a>, <a class="el" href="a05486.html#l00736">NLMISC::CBitmap::luminanceToAlpha()</a>, <a class="el" href="a05486.html#l00579">NLMISC::CBitmap::luminanceToAlphaLuminance()</a>, <a class="el" href="a05486.html#l00462">NLMISC::CBitmap::luminanceToRGBA()</a>, <a class="el" href="a06116.html#l00104">NLMISC::CObjectVector&lt; sint8, false &gt;::operator=()</a>, <a class="el" href="a05486.html#l01508">NLMISC::CBitmap::resample()</a>, <a class="el" href="a05486.html#l00708">NLMISC::CBitmap::rgbaToAlpha()</a>, <a class="el" href="a05486.html#l00550">NLMISC::CBitmap::rgbaToAlphaLuminance()</a>, <a class="el" href="a05486.html#l00635">NLMISC::CBitmap::rgbaToLuminance()</a>, <a class="el" href="a05486.html#l02781">NLMISC::CBitmap::rot90CCW()</a>, <a class="el" href="a05486.html#l02746">NLMISC::CBitmap::rot90CW()</a>, <a class="el" href="a06116.html#l00260">NLMISC::CObjectVector&lt; sint8, false &gt;::serial()</a>, and <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>.
+<p>
+<div class="fragment"><pre>00143 {
+00144 <span class="comment">// if same size, no-op.</span>
+00145 <span class="keywordflow">if</span>(<a class="code" href="a04223.html#a626">s</a>==<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>)
+00146 <span class="keywordflow">return</span>;
+00147
+00148 <span class="comment">// if empty, just clear.</span>
+00149 <span class="keywordflow">if</span>(<a class="code" href="a04223.html#a626">s</a>==0)
+00150 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_0">clear</a>();
+00151 <span class="comment">// crop the array?</span>
+00152 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="a04223.html#a626">s</a>&lt;<a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>)
+00153 {
+00154 <span class="comment">// destruct the objects to be freed</span>
+00155 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectord1">destruct</a>(s, _Size);
+00156 <span class="comment">// realloc</span>
+00157 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectord2">myRealloc</a>(s);
+00158 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a> = <a class="code" href="a04223.html#a626">s</a>;
+00159 }
+00160 <span class="comment">// else, enlarge the array</span>
+00161 <span class="keywordflow">else</span>
+00162 {
+00163 <span class="comment">// realloc first</span>
+00164 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectord2">myRealloc</a>(s);
+00165 <span class="comment">// For all new elements, construct them.</span>
+00166 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectord0">construct</a>(_Size, s);
+00167 <span class="comment">// change size.</span>
+00168 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>= <a class="code" href="a04223.html#a626">s</a>;
+00169 }
+00170 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1986_3" doxytag="NLMISC::CObjectVector::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>f</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serial this ObjectVector. NB: actually, the serial of a vector&lt;&gt; and the serial of a <a class="el" href="a03000.html">CObjectVector</a> is the same in the stream.
+<p>
+Definition at line <a class="el" href="a06116.html#l00260">260</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+<div class="fragment"><pre>00261 {
+00262 <span class="comment">// Open a node header</span>
+00263 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_3">xmlPushBegin</a> (<span class="stringliteral">"VECTOR"</span>);
+00264
+00265 <span class="comment">// Attrib size</span>
+00266 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_5">xmlSetAttrib</a> (<span class="stringliteral">"size"</span>);
+00267
+00268 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00269 <span class="keywordflow">if</span>(f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00270 {
+00271 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(len);
+00272
+00273 <span class="comment">// Open a node header</span>
+00274 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+00275
+00276 <span class="comment">// special version for vector: adjut good size.</span>
+00277 <a class="code" href="a05378.html#a381">contReset</a>(*<span class="keyword">this</span>);
+00278 <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1982_1">resize</a> (len);
+00279
+00280 <span class="comment">// Read the vector</span>
+00281 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i&lt;<a class="code" href="a04223.html#a571">len</a>;i++)
+00282 {
+00283 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"ELM"</span>);
+00284
+00285 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_Ptr[i]);
+00286
+00287 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00288 }
+00289 }
+00290 <span class="keywordflow">else</span>
+00291 {
+00292 <a class="code" href="a04223.html#a571">len</a>= <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorz1984_3">size</a>();
+00293 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(len);
+00294
+00295 <span class="comment">// Close the node header</span>
+00296 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+00297
+00298 <span class="comment">// Write the vector</span>
+00299 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i&lt;<a class="code" href="a04223.html#a571">len</a>;i++)
+00300 {
+00301 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"ELM"</span>);
+00302
+00303 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_Ptr[i]);
+00304
+00305 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00306 }
+00307 }
+00308
+00309 <span class="comment">// Close the node</span>
+00310 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00311 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorz1984_3" doxytag="NLMISC::CObjectVector::size" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::<a class="el" href="a04223.html#a587">size</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return size of the array (in number of elements)
+<p>
+Definition at line <a class="el" href="a06116.html#l00184">184</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a05486.html#l00965">NLMISC::CBitmap::decompressDXT1()</a>, <a class="el" href="a05486.html#l01090">NLMISC::CBitmap::decompressDXT3()</a>, <a class="el" href="a05486.html#l01200">NLMISC::CBitmap::decompressDXT5()</a>, <a class="el" href="a06393.html#l01885">NL3D::CSkeletonModel::renderShadowSkins()</a>, <a class="el" href="a06393.html#l01449">NL3D::CSkeletonModel::renderSkinList()</a>, <a class="el" href="a06116.html#l00260">NLMISC::CObjectVector&lt; sint8, false &gt;::serial()</a>, and <a class="el" href="a06393.html#l00658">NL3D::CSkeletonModel::traverseAnimDetail()</a>.
+<p>
+<div class="fragment"><pre>00184 {<span class="keywordflow">return</span> <a class="code" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CObjectVectorr0" doxytag="NLMISC::CObjectVector::_Ptr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> T* <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::<a class="el" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Ptr on our array.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00321">321</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00104">NLMISC::CObjectVector&lt; sint8, false &gt;::operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CObjectVectorr1" doxytag="NLMISC::CObjectVector::_Size" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, bool EnableObjectBehavior = true&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a03000.html">NLMISC::CObjectVector</a>&lt; T, EnableObjectBehavior &gt;::<a class="el" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+size of the array, in number of elements.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06116.html#l00323">323</a> of file <a class="el" href="a06116.html">object_vector.h</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00104">NLMISC::CObjectVector&lt; sint8, false &gt;::operator=()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="a06116.html">object_vector.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:23:51 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>