diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a03000.html | 1089 |
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< T, EnableObjectBehavior > 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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLMISC::CObjectVector< T, EnableObjectBehavior > Class Template Reference</h1><code>#include <<a class="el" href="a06116.html">object_vector.h</a>></code> +<p> +<hr><a name="_details"></a><h2>Detailed Description</h2> +<h3>template<class T, bool EnableObjectBehavior = true><br> + class NLMISC::CObjectVector< T, EnableObjectBehavior ></h3> + +The purpose of this class is to copy most (but not all) of stl vector<> features, without some of the speed/memory problems involved:<ul> +<li>size of a vector<T> 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<T>::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<T>::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<> 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 </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 </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> </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> &vec)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </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> & </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> &vec)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </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 </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorz1986_1">fill</a> (const T &<a class="el" href="a04223.html#a658">value</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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 &<a class="el" href="a04223.html#a658">value</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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> &f)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">Accessor</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </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 * </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 & </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> </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 </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 </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 </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 * </td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorr0">_Ptr</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03000.html#NLMISC_1_1CObjectVectorr1">_Size</a></td></tr> + +<tr><td class="mdescLeft"> </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 & 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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::<a class="el" href="a03000.html">CObjectVector</a> </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::~<a class="el" href="a03000.html">CObjectVector</a> </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::<a class="el" href="a03000.html">CObjectVector</a> </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03000.html">CObjectVector</a>< T, EnableObjectBehavior > & </td> + <td class="mdname1" valign="top" nowrap> <em>vec</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::clear </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< sint8, false >::myRealloc()</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector< sint8, false >::resize()</a>, <a class="el" href="a06393.html#l01117">NL3D::CSkeletonModel::updateSkinRenderLists()</a>, and <a class="el" href="a06116.html#l00088">NLMISC::CObjectVector< sint8, false >::~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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::construct </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </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> </td> + <td class="mdname" nowrap> <em>i1</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </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< sint8, false >::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<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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::copy </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </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> </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 * </td> + <td class="mdname" nowrap> <em>srcPtr</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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>=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< sint8, false >::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>=dstLast) +00210 <span class="keywordflow">return</span>; +00211 <a class="code" href="a04199.html#a6">nlassert</a>(dstLast<=_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<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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::destruct </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </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> </td> + <td class="mdname" nowrap> <em>i1</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </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< sint8, false >::clear()</a>, and <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector< sint8, false >::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<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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::empty </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::fill </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const T & </td> + <td class="mdname1" valign="top" nowrap> <em>value</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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<<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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::fill </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </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> </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 & </td> + <td class="mdname" nowrap> <em>value</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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>=dstLast) +00235 <span class="keywordflow">return</span>; +00236 <a class="code" href="a04199.html#a6">nlassert</a>(dstLast<=_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<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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> T* <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::getPtr </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::myRealloc </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>s</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< sint8, false >::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 > <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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03000.html">CObjectVector</a>& <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::operator= </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03000.html">CObjectVector</a>< T, EnableObjectBehavior > & </td> + <td class="mdname1" valign="top" nowrap> <em>vec</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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< sint8, false >::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>==&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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> T& <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::operator[] </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>index</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::resize </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>s</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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< sint8, false >::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< sint8, false >::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><<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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Serial this ObjectVector. NB: actually, the serial of a vector<> 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<<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<<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<class T, bool EnableObjectBehavior = true> </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>< T, EnableObjectBehavior >::<a class="el" href="a04223.html#a587">size</a> </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< sint8, false >::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<class T, bool EnableObjectBehavior = true> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> T* <a class="el" href="a03000.html">NLMISC::CObjectVector</a>< T, EnableObjectBehavior >::<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> + + </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< sint8, false >::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<class T, bool EnableObjectBehavior = true> </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>< T, EnableObjectBehavior >::<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> + + </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< sint8, false >::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> |