NL3D::CVertexCache Struct Reference


Public Member Functions

 CVertexCache (sint cacheSize, sint nbVerts)
uint getVertexInCache (uint vertIdInCache)
bool isVertexInCache (uint vert)
void tempTouchVertex (uint vert, bool inCache)
void touchVertex (uint vert)

Private Attributes

deque< uint32_Cache
vector< uint8_VertexInCache

Constructor & Destructor Documentation

NL3D::CVertexCache::CVertexCache sint  cacheSize,
sint  nbVerts
[inline]
 

Definition at line 103 of file stripifier.cpp.

References _VertexInCache, and sint.

00104         {
00105                 _VertexInCache.resize(nbVerts, 0);
00106                 _Cache.resize(cacheSize, 0xFFFFFFFF);
00107         }


Member Function Documentation

uint NL3D::CVertexCache::getVertexInCache uint  vertIdInCache  )  [inline]
 

Definition at line 134 of file stripifier.cpp.

References uint.

Referenced by NL3D::CStripifier::optimizeTriangles().

00135         {
00136                 return _Cache[vertIdInCache];
00137         }

bool NL3D::CVertexCache::isVertexInCache uint  vert  )  [inline]
 

Definition at line 128 of file stripifier.cpp.

References _VertexInCache, and uint.

Referenced by NL3D::COrderFace::countCacheMiss(), and touchVertex().

00129         {
00130                 return _VertexInCache[vert]==3;
00131         }

void NL3D::CVertexCache::tempTouchVertex uint  vert,
bool  inCache
[inline]
 

Definition at line 139 of file stripifier.cpp.

References _VertexInCache, and uint.

Referenced by NL3D::CStripifier::optimizeTriangles().

00140         {
00141                 if( _VertexInCache[vert]&1 )
00142                 {
00143                         if(inCache)
00144                                 _VertexInCache[vert]|= 2;
00145                         else
00146                                 _VertexInCache[vert]&= 1;
00147                 }
00148         }

void NL3D::CVertexCache::touchVertex uint  vert  )  [inline]
 

Definition at line 109 of file stripifier.cpp.

References _VertexInCache, isVertexInCache(), and uint.

Referenced by NL3D::COrderFace::insertInPB().

00110         {
00111                 if(isVertexInCache(vert))
00112                 {
00113                         // do nothing ?????? depends of vcache implementation
00114                 }
00115                 else
00116                 {
00117                         // pop front
00118                         uint    removed= _Cache.front();
00119                         if(removed!=0xFFFFFFFF)
00120                                 _VertexInCache[removed]= 0;
00121                         _Cache.pop_front();
00122                         // push_back
00123                         _VertexInCache[vert]= 3;
00124                         _Cache.push_back(vert);
00125                 }
00126         }


Field Documentation

deque<uint32> NL3D::CVertexCache::_Cache [private]
 

Definition at line 153 of file stripifier.cpp.

vector<uint8> NL3D::CVertexCache::_VertexInCache [private]
 

Definition at line 152 of file stripifier.cpp.

Referenced by CVertexCache(), isVertexInCache(), tempTouchVertex(), and touchVertex().


The documentation for this struct was generated from the following file:
Generated on Tue Mar 16 08:25:51 2004 for NeL by doxygen 1.3.6