# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::CLayeredOrderingTable Class Template Reference

The same as an ordering table, but it allows to have several layers for the display. More...

#include <layered_ordering_table.h>

List of all members.

Public Methods

 CLayeredOrderingTable ()
 ctor. More...

void init (uint32 nNbEntries)
 Initialization. More...

uint32 getSize ()
 Just return the number of entries in the ordering tables. More...

void reset (uint maxElementToInsert)
 Put all the layers to empty. More...

void insert (uint layer, T *pValue, uint32 nEntryPos=0)
 Insert an element in the ordering table. More...

void begin (bool forwardTraversal=true)
 Traversal operations. More...

T * get ()
 Get the currently selected element. More...

void next ()
 Move selection pointer to the next element. More...


Private Types

typedef std::vector< T * > TTypePtVect

Private Attributes

COrderingTable< T > _Layer0
TTypePtVect _Layer1
COrderingTable< T > _Layer2
uint _IndexInLayer1
uint8 _CurrLayer
bool _ForwardTraversal


Detailed Description

template<class T>
class NL3D::CLayeredOrderingTable< T >

The same as an ordering table, but it allows to have several layers for the display.

  • Layer 0 acts as an ordering table.
    • Layer 1 is a simple vector, with no sort.
    • Layer 2 acts as an ordering table. Typically, this can be used to sort objects that are above or below a surface (which fit in layer 1).

Definition at line 43 of file layered_ordering_table.h.


Member Typedef Documentation

template<class T>
typedef std::vector<T *> NL3D::CLayeredOrderingTable::TTypePtVect [private]
 

Definition at line 106 of file layered_ordering_table.h.


Constructor & Destructor Documentation

template<class T>
NL3D::CLayeredOrderingTable< T >::CLayeredOrderingTable  
 

ctor.

Definition at line 119 of file layered_ordering_table.h.


Member Function Documentation

template<class T>
void NL3D::CLayeredOrderingTable< T >::begin bool    forwardTraversal = true [inline]
 

Traversal operations.

LayeredOrderingTable<Face> ot; ot.begin(); while( ot.get() != NULL ) { Face *pF = ot.get(); // Do the treatment you want here ot.next(); }

Parameters:
forwardTraversal  true to traverse from layer 0 to layer 2 and vice versa.

Definition at line 171 of file layered_ordering_table.h.

References _CurrLayer, _ForwardTraversal, _IndexInLayer1, _Layer0, _Layer1, and _Layer2.

template<class T>
T * NL3D::CLayeredOrderingTable< T >::get   [inline]
 

Get the currently selected element.

Definition at line 220 of file layered_ordering_table.h.

References _IndexInLayer1, _Layer0, _Layer1, _Layer2, and nlassert.

template<class T>
uint32 NL3D::CLayeredOrderingTable< T >::getSize  
 

Just return the number of entries in the ordering tables.

Definition at line 133 of file layered_ordering_table.h.

References _Layer0, _Layer2, and nlassert.

template<class T>
void NL3D::CLayeredOrderingTable< T >::init uint32    nNbEntries
 

Initialization.

The ordering tables have a range from 0 to nNbEntries-1

Definition at line 125 of file layered_ordering_table.h.

References _Layer0, and _Layer2.

template<class T>
void NL3D::CLayeredOrderingTable< T >::insert uint    layer,
T *    pValue,
uint32    nEntryPos = 0
 

Insert an element in the ordering table.

Parameters:
layer  the layer in which to insert the object. Might be 0, 1 or 2
entry  pos The position for the ordering tables. It is ignored when the layer is 1.

Definition at line 150 of file layered_ordering_table.h.

References _Layer0, _Layer1, _Layer2, and nlassert.

template<class T>
void NL3D::CLayeredOrderingTable< T >::next   [inline]
 

Move selection pointer to the next element.

Definition at line 242 of file layered_ordering_table.h.

References _CurrLayer, _IndexInLayer1, _Layer0, _Layer1, and _Layer2.

template<class T>
void NL3D::CLayeredOrderingTable< T >::reset uint    maxElementToInsert
 

Put all the layers to empty.

Parameters:
maxElementToInsert  prepare allocator for insert by setting maximum insert() that will arise.

Definition at line 141 of file layered_ordering_table.h.

References _Layer0, _Layer1, and _Layer2.


Member Data Documentation

template<class T>
uint8 NL3D::CLayeredOrderingTable::_CurrLayer [private]
 

Definition at line 111 of file layered_ordering_table.h.

Referenced by begin, and next.

template<class T>
bool NL3D::CLayeredOrderingTable::_ForwardTraversal [private]
 

Definition at line 112 of file layered_ordering_table.h.

Referenced by begin.

template<class T>
uint NL3D::CLayeredOrderingTable::_IndexInLayer1 [private]
 

Definition at line 110 of file layered_ordering_table.h.

Referenced by begin, get, and next.

template<class T>
COrderingTable<T> NL3D::CLayeredOrderingTable::_Layer0 [private]
 

Definition at line 107 of file layered_ordering_table.h.

Referenced by begin, get, getSize, init, insert, next, and reset.

template<class T>
TTypePtVect NL3D::CLayeredOrderingTable::_Layer1 [private]
 

Definition at line 108 of file layered_ordering_table.h.

Referenced by begin, get, insert, next, and reset.

template<class T>
COrderingTable<T> NL3D::CLayeredOrderingTable::_Layer2 [private]
 

Definition at line 109 of file layered_ordering_table.h.

Referenced by begin, get, getSize, init, insert, next, and reset.


The documentation for this class was generated from the following file: