NL3D::CTessList< T > Class Template Reference

#include <tess_list.h>


Detailed Description

template<class T>
class NL3D::CTessList< T >

A basic speed list gestion, to add/remove already created Object. Object must herit from CTessNodeList. Also, provide a fast size().
Author:
Lionel Berenguier

Nevrax France

Date:
2000

Definition at line 61 of file tess_list.h.

Public Member Functions

void append (T *node)
T * begin ()
void clear ()
 CTessList ()
void remove (T *node)
sint size () const

Private Attributes

T * Root
sint Size


Constructor & Destructor Documentation

template<class T>
NL3D::CTessList< T >::CTessList  )  [inline]
 

Definition at line 68 of file tess_list.h.

00068 {Root= NULL; Size= 0;}


Member Function Documentation

template<class T>
void NL3D::CTessList< T >::append T *  node  )  [inline]
 

Definition at line 73 of file tess_list.h.

Referenced by NL3D::CLandscapeVegetableBlock::init().

00074         {
00075                 Size++;
00076                 nlassert(node);
00077                 // inserted???
00078                 nlassert(node->Prec==NULL && Root!=node);
00079                 // update Next.
00080                 node->Next= Root;
00081                 if(Root)
00082                         Root->Prec= node;
00083                 // update Prec.
00084                 node->Prec= NULL;
00085                 Root= node;
00086         }

template<class T>
T* NL3D::CTessList< T >::begin void   )  [inline]
 

Definition at line 71 of file tess_list.h.

Referenced by NL3D::CPatch::computeGeomorphAlphaFar1VertexListVB(), NL3D::CPatch::computeGeomorphFar0VertexListVB(), NL3D::CPatch::computeGeomorphTileVertexListVB(), NL3D::CPatch::computeGeomorphVertexList(), NL3D::CPatch::debugAllocationMarkIndicesFarList(), NL3D::CPatch::debugAllocationMarkIndicesNearList(), NL3D::CPatch::fillFar0DLMUvOnlyVertexListVB(), NL3D::CPatch::fillFar0VertexListVB(), NL3D::CPatch::fillFar1DLMUvOnlyVertexListVB(), NL3D::CPatch::fillFar1VertexListVB(), NL3D::CPatch::fillTileVertexListVB(), NL3D::CTessBlock::refillFaceVectorTile(), NL3D::CPatch::updateFar0VBAlloc(), NL3D::CPatch::updateFar1VBAlloc(), and NL3D::CPatch::updateTileVBAlloc().

00071 {return Root;}

template<class T>
void NL3D::CTessList< T >::clear void   )  [inline]
 

Definition at line 112 of file tess_list.h.

00113         {
00114                 Root= NULL;
00115                 Size= 0;
00116         }

template<class T>
void NL3D::CTessList< T >::remove T *  node  )  [inline]
 

Definition at line 87 of file tess_list.h.

Referenced by NL3D::CLandscapeVegetableBlock::release().

00088         {
00089                 Size--;
00090                 nlassert(node);
00091                 // inserted???
00092                 nlassert(node->Prec!=NULL || Root==node);
00093                 nlassert(Size>=0);
00094                 // update Prec.
00095                 if(!node->Prec)
00096                 {
00097                         nlassert(Root==node);
00098                         Root= (T*)node->Next;
00099                 }
00100                 else
00101                 {
00102                         node->Prec->Next= node->Next;
00103                 }
00104                 // update Next.
00105                 if(node->Next)
00106                         node->Next->Prec= node->Prec;
00107                 node->Next= NULL;
00108                 node->Prec= NULL;
00109         }

template<class T>
sint NL3D::CTessList< T >::size  )  const [inline]
 

Definition at line 70 of file tess_list.h.

Referenced by NL3D::CTessBlock::createFaceVectorTile(), and NL3D::CTessBlock::refillFaceVectorTile().

00070 {return Size;}


Field Documentation

template<class T>
T* NL3D::CTessList< T >::Root [private]
 

Definition at line 64 of file tess_list.h.

template<class T>
sint NL3D::CTessList< T >::Size [private]
 

Definition at line 65 of file tess_list.h.


The documentation for this class was generated from the following file:
Generated on Tue Mar 16 07:49:01 2004 for NeL by doxygen 1.3.6