From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/a03475.html | 2010 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2010 insertions(+) create mode 100644 docs/doxygen/nel/a03475.html (limited to 'docs/doxygen/nel/a03475.html') diff --git a/docs/doxygen/nel/a03475.html b/docs/doxygen/nel/a03475.html new file mode 100644 index 00000000..a1ff1fd0 --- /dev/null +++ b/docs/doxygen/nel/a03475.html @@ -0,0 +1,2010 @@ + + +NeL: NL3D::CTessBlock class Reference + + + +
+

NL3D::CTessBlock Class Reference

#include <tess_block.h> +

+


Detailed Description

+A block of 2*2 tiles, for accurate clipping.
Author:
Lionel Berenguier

+Nevrax France

+
Date:
2000
+ +

+ +

+Definition at line 59 of file tess_block.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

void appendToModifyListAndDeleteFaceVector (CTessBlock &root, CLandscapeFaceVectorManager &mgr)
void clip ()
void clipFar (const CVector &refineCenter, float tileDistNear, float farTransition)
void createFaceVectorFar0 (CLandscapeFaceVectorManager &mgr)
void createFaceVectorFar1 (CLandscapeFaceVectorManager &mgr)
void createFaceVectorTile (CLandscapeFaceVectorManager &mgr)
 CTessBlock ()
void deleteFaceVectorFar0 (CLandscapeFaceVectorManager &mgr)
void deleteFaceVectorFar1 (CLandscapeFaceVectorManager &mgr)
void deleteFaceVectorTile (CLandscapeFaceVectorManager &mgr)
void extendSphereAdd (const CVector &vec)
void extendSphereCompile ()
void extendSphereFirst (const CVector &vec)
void forceClip ()
bool getClipped () const
CTessBlockgetNextToModify ()
CPatchgetPatch ()
void init (CPatch *patch)
bool isInModifyList () const
void refillFaceVectorFar0 ()
void refillFaceVectorFar1 ()
void refillFaceVectorTile ()
void removeFromModifyList ()
void resetClip ()
bool visibleFar0 () const
bool visibleFar1 () const
bool visibleTile () const
 ~CTessBlock ()

Data Fields

uint FaceTileMaterialRefCount
uint32Far0FaceVector
uint32Far1FaceVector
CTessList< CTessFaceFarFaceList
CTessList< CTessFarVertexFarVertexList
uint LightMapId
CPatchRdrPassLightMapRdrPass
uint LightMapRefCount
CTessList< CTessNearVertexNearVertexList
CTileMaterialRdrTileRoot [4]
uint TileMaterialRefCount
CLandscapeVegetableBlockVegetableBlock

Static Public Attributes

CPlane CurrentPyramid [4]

Private Attributes

CTessBlock_NextToModify
CPatch_Patch
CTessBlock_PrecToModify
NLMISC::CAABBox BBox
NLMISC::CBSphere BSphere
bool Clipped
bool Empty
bool EmptyFar1
bool FullFar1
+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
NL3D::CTessBlock::CTessBlock  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 42 of file tess_block.cpp. +

+References _NextToModify, _PrecToModify, Clipped, EmptyFar1, FaceTileMaterialRefCount, Far0FaceVector, Far1FaceVector, FullFar1, LightMapRefCount, NL3D_TESSBLOCK_TILESIZE, RdrTileRoot, sint, TileMaterialRefCount, and VegetableBlock. +

+

00043 {
+00044         _Patch= NULL;
+00045 
+00046         // init bounding info.
+00047         Empty= true;
+00048         // By default, the tessBlock is clipped.
+00049         Clipped= true;
+00050         FullFar1= false;
+00051         EmptyFar1= false;
+00052 
+00053         // init vert/face list.
+00054         for(sint i=0;i<NL3D_TESSBLOCK_TILESIZE;i++)
+00055         {
+00056                 RdrTileRoot[i]=NULL;
+00057         }
+00058 
+00059         // init LightMap.
+00060         LightMapRefCount= 0;
+00061 
+00062         Far0FaceVector= NULL;
+00063         Far1FaceVector= NULL;
+00064 
+00065         _PrecToModify= NULL;
+00066         _NextToModify= NULL;
+00067 
+00068         FaceTileMaterialRefCount= 0;
+00069         TileMaterialRefCount= 0;
+00070 
+00071         // Micro-vegetation.
+00072         VegetableBlock= NULL;
+00073 }
+
+

+ + + + +
+ + + + + + + + + +
NL3D::CTessBlock::~CTessBlock  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 77 of file tess_block.cpp. +

+References isInModifyList(), LightMapRefCount, nlassert, and removeFromModifyList(). +

+

00078 {
+00079         if(isInModifyList())
+00080         {
+00081                 removeFromModifyList();
+00082         }
+00083 
+00084         // LightMap should be released
+00085         nlassert(LightMapRefCount==0);
+00086 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CTessBlock::appendToModifyListAndDeleteFaceVector CTessBlock root,
CLandscapeFaceVectorManager mgr
+
+ + + + + +
+   + + +

+ +

+Definition at line 354 of file tess_block.cpp. +

+References _NextToModify, _PrecToModify, deleteFaceVectorFar0(), deleteFaceVectorFar1(), deleteFaceVectorTile(), and isInModifyList(). +

+Referenced by NL3D::CPatch::dirtTessBlockFaceVector(). +

+

00355 {
+00356         // If already appened, return.
+00357         if(isInModifyList())
+00358                 return;
+00359 
+00360         // append to root.
+00361         _PrecToModify= &root;
+00362         _NextToModify= root._NextToModify;
+00363         if(root._NextToModify)
+00364                 root._NextToModify->_PrecToModify= this;
+00365         root._NextToModify= this;
+00366 
+00367         // Then delete All faceVector that may exist.
+00368         deleteFaceVectorFar0(mgr);
+00369         deleteFaceVectorFar1(mgr);
+00370         deleteFaceVectorTile(mgr);
+00371 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTessBlock::clip  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 146 of file tess_block.cpp. +

+References NLMISC::CBSphere::clipBack(), Clipped, NL3D_TESSBLOCK_NUM_CLIP_PLANE, and sint. +

+Referenced by NL3D::CPatch::preRender(). +

+

00147 {
+00148         Clipped= false;
+00149         for(sint i=0;i<NL3D_TESSBLOCK_NUM_CLIP_PLANE;i++)
+00150         {
+00151                 // If entirely out.
+00152                 if(!BSphere.clipBack( CTessBlock::CurrentPyramid[i] ))
+00153                 {
+00154                         Clipped= true;
+00155                         break;
+00156                 }
+00157         }
+00158 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTessBlock::clipFar const CVector refineCenter,
float  tileDistNear,
float  farTransition
+
+ + + + + +
+   + + +

+ +

+Definition at line 160 of file tess_block.cpp. +

+References NLMISC::CBSphere::Center, EmptyFar1, FullFar1, r, and NLMISC::CBSphere::Radius. +

+Referenced by NL3D::CPatch::preRender(). +

+

00161 {
+00162         float   r= (refineCenter-BSphere.Center).norm();
+00163         if( (r-BSphere.Radius) > tileDistNear)
+00164         {
+00165                 FullFar1= true;
+00166         }
+00167         else
+00168         {
+00169                 if( (r+BSphere.Radius) < (tileDistNear-farTransition) )
+00170                         EmptyFar1= true;
+00171         }
+00172 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::createFaceVectorFar0 CLandscapeFaceVectorManager mgr  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 198 of file tess_block.cpp. +

+References NL3D::CLandscapeFaceVectorManager::createFaceVector(), Far0FaceVector, FarFaceList, nlassert, refillFaceVectorFar0(), and NL3D::CTessList< CTessFace >::size(). +

+Referenced by NL3D::CPatch::createFaceVectorFar0OrTile(), and NL3D::CPatch::recreateTessBlockFaceVector(). +

+

00199 {
+00200         nlassert(Far0FaceVector==NULL);
+00201         // If size is not 0.
+00202         if(FarFaceList.size()>0)
+00203         {
+00204                 // Create a faceVector of the wanted triangles size.
+00205                 Far0FaceVector= mgr.createFaceVector(FarFaceList.size());
+00206 
+00207                 // init.
+00208                 refillFaceVectorFar0();
+00209         }
+00210 
+00211 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::createFaceVectorFar1 CLandscapeFaceVectorManager mgr  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 242 of file tess_block.cpp. +

+References NL3D::CLandscapeFaceVectorManager::createFaceVector(), Far1FaceVector, FarFaceList, nlassert, refillFaceVectorFar1(), and NL3D::CTessList< CTessFace >::size(). +

+Referenced by NL3D::CPatch::createFaceVectorFar1(), and NL3D::CPatch::recreateTessBlockFaceVector(). +

+

00243 {
+00244         nlassert(Far1FaceVector==NULL);
+00245         // If size is not 0.
+00246         if(FarFaceList.size()>0)
+00247         {
+00248                 // Create a faceVector of the wanted triangles size.
+00249                 Far1FaceVector= mgr.createFaceVector(FarFaceList.size());
+00250 
+00251                 // init.
+00252                 refillFaceVectorFar1();
+00253         }
+00254 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::createFaceVectorTile CLandscapeFaceVectorManager mgr  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 302 of file tess_block.cpp. +

+References NL3D::CLandscapeFaceVectorManager::createFaceVector(), NL3D_MAX_TILE_FACE, NL3D_TESSBLOCK_TILESIZE, RdrTileRoot, refillFaceVectorTile(), NL3D::CTessList< T >::size(), NL3D::CTileMaterial::TileFaceList, uint, and uint32. +

+Referenced by NL3D::CPatch::recreateTessBlockFaceVector(). +

+

00303 {
+00304         // For all tiles existing, and for all facePass existing, create the faceVector.
+00305         for(uint tileId=0; tileId<NL3D_TESSBLOCK_TILESIZE; tileId++)
+00306         {
+00307                 // if tile exist.
+00308                 if(RdrTileRoot[tileId])
+00309                 {
+00310                         // For all Pass faces of the tile.
+00311                         for(uint facePass=0; facePass<NL3D_MAX_TILE_FACE; facePass++)
+00312                         {
+00313                                 CTessList<CTileFace>    &faceList= RdrTileRoot[tileId]->TileFaceList[facePass];
+00314                                 uint32          *&faceVector= RdrTileRoot[tileId]->TileFaceVectors[facePass];
+00315                                 // If some triangles create them.
+00316                                 if(faceList.size()>0)
+00317                                 {
+00318                                         // Create a faceVector of the wanted triangles size.
+00319                                         faceVector= mgr.createFaceVector(faceList.size());
+00320                                 }
+00321                         }
+00322                 }
+00323         }
+00324 
+00325         // init.
+00326         refillFaceVectorTile();
+00327 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::deleteFaceVectorFar0 CLandscapeFaceVectorManager mgr  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 213 of file tess_block.cpp. +

+References NL3D::CLandscapeFaceVectorManager::deleteFaceVector(), and Far0FaceVector. +

+Referenced by appendToModifyListAndDeleteFaceVector(), and NL3D::CPatch::deleteFaceVectorFar0OrTile(). +

+

00214 {
+00215         if(Far0FaceVector)
+00216         {
+00217                 mgr.deleteFaceVector(Far0FaceVector);
+00218                 Far0FaceVector= NULL;
+00219         }
+00220 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::deleteFaceVectorFar1 CLandscapeFaceVectorManager mgr  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 256 of file tess_block.cpp. +

+References NL3D::CLandscapeFaceVectorManager::deleteFaceVector(), and Far1FaceVector. +

+Referenced by appendToModifyListAndDeleteFaceVector(), and NL3D::CPatch::deleteFaceVectorFar1(). +

+

00257 {
+00258         if(Far1FaceVector)
+00259         {
+00260                 mgr.deleteFaceVector(Far1FaceVector);
+00261                 Far1FaceVector= NULL;
+00262         }
+00263 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::deleteFaceVectorTile CLandscapeFaceVectorManager mgr  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 329 of file tess_block.cpp. +

+References NL3D::CLandscapeFaceVectorManager::deleteFaceVector(), NL3D_MAX_TILE_FACE, NL3D_TESSBLOCK_TILESIZE, RdrTileRoot, NL3D::CTileMaterial::TileFaceVectors, uint, and uint32. +

+Referenced by appendToModifyListAndDeleteFaceVector(). +

+

00330 {
+00331         // For all tiles existing, and for all facePass existing, delete the faceVector.
+00332         for(uint tileId=0; tileId<NL3D_TESSBLOCK_TILESIZE; tileId++)
+00333         {
+00334                 // if tile exist.
+00335                 if(RdrTileRoot[tileId])
+00336                 {
+00337                         // For all Pass faces of the tile.
+00338                         for(uint facePass=0; facePass<NL3D_MAX_TILE_FACE; facePass++)
+00339                         {
+00340                                 uint32          *&faceVector= RdrTileRoot[tileId]->TileFaceVectors[facePass];
+00341                                 // If the faceVector exist, delete it.
+00342                                 if(faceVector)
+00343                                 {
+00344                                         mgr.deleteFaceVector(faceVector);
+00345                                         faceVector= NULL;
+00346                                 }
+00347                         }
+00348                 }
+00349         }
+00350 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::extendSphereAdd const CVector vec  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 115 of file tess_block.cpp. +

+References NLMISC::CAABBox::extend(), and NLMISC::CAABBox::include(). +

+Referenced by extendSphereFirst(). +

+

00116 {
+00117         if( !BBox.include(vec) )
+00118                 BBox.extend(vec);
+00119 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTessBlock::extendSphereCompile  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 122 of file tess_block.cpp. +

+References NLMISC::CBSphere::Center, NLMISC::CAABBox::getCenter(), NLMISC::CAABBox::getRadius(), and NLMISC::CBSphere::Radius. +

+

00123 {
+00124         BSphere.Center= BBox.getCenter();
+00125         BSphere.Radius= BBox.getRadius();
+00126 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::extendSphereFirst const CVector vec  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 102 of file tess_block.cpp. +

+References extendSphereAdd(), NLMISC::CAABBox::setCenter(), and NLMISC::CAABBox::setHalfSize(). +

+

00103 {
+00104         if(Empty)
+00105         {
+00106                 Empty= false;
+00107                 BBox.setCenter(vec);
+00108                 BBox.setHalfSize(CVector::Null);
+00109         }
+00110         else
+00111                 extendSphereAdd(vec);
+00112 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTessBlock::forceClip  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 139 of file tess_block.cpp. +

+References Clipped. +

+Referenced by NL3D::CPatch::preRender(), and NL3D::CPatch::updateClipPatchVB(). +

+

00140 {
+00141         Clipped= true;
+00142 }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CTessBlock::getClipped  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 132 of file tess_block.h. +

+References Clipped. +

+Referenced by NL3D::CPatch::computeSoftwareGeomorphAndAlpha(). +

+

00132 {return Clipped;}
+
+

+ + + + +
+ + + + + + + + + +
CTessBlock* NL3D::CTessBlock::getNextToModify  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 160 of file tess_block.h. +

+References _NextToModify. +

+Referenced by NL3D::CLandscape::averageTesselationVertices(), NL3D::CLandscape::clip(), and NL3D::CLandscape::updateTessBlocksFaceVector(). +

+

00160 {return _NextToModify;}
+
+

+ + + + +
+ + + + + + + + + +
CPatch * NL3D::CTessBlock::getPatch  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 94 of file tess_block.cpp. +

+Referenced by NL3D::CLandscape::updateTessBlocksFaceVector(). +

+

00095 {
+00096         return _Patch;
+00097 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTessBlock::init CPatch patch  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 89 of file tess_block.cpp. +

+Referenced by NL3D::CPatch::compile(). +

+

00090 {
+00091         _Patch= patch;
+00092 }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CTessBlock::isInModifyList  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 152 of file tess_block.h. +

+References _PrecToModify. +

+Referenced by appendToModifyListAndDeleteFaceVector(), NL3D::CPatch::dirtTessBlockFaceVector(), removeFromModifyList(), and ~CTessBlock(). +

+

00152 {return _PrecToModify!=NULL;}
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTessBlock::refillFaceVectorFar0  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 177 of file tess_block.cpp. +

+References NL3D::CTessList< CTessFace >::begin(), Far0FaceVector, FarFaceList, NL3D::CTessFace::FVBase, NL3D::CTessFace::FVLeft, NL3D::CTessFace::FVRight, NL3D::CTessFarVertex::Index0, NL3D::CTessNodeList::Next, nlassert, NL3D::CTessList< CTessFace >::size(), and uint32. +

+Referenced by createFaceVectorFar0(), and NL3D::CPatch::preRender(). +

+

00178 {
+00179         // If size is not 0.
+00180         if(FarFaceList.size()>0)
+00181         {
+00182                 nlassert(Far0FaceVector!=NULL);
+00183 
+00184                 // Fill this faceVector, with FarFaceList
+00185                 CTessFace       *pFace;
+00186                 uint32          *dest= Far0FaceVector+1;
+00187                 for(pFace= FarFaceList.begin(); pFace; pFace= (CTessFace*)pFace->Next)
+00188                 {
+00189                         *(dest++)= pFace->FVBase->Index0;
+00190                         *(dest++)= pFace->FVLeft->Index0;
+00191                         *(dest++)= pFace->FVRight->Index0;
+00192                 }
+00193         }
+00194 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTessBlock::refillFaceVectorFar1  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 223 of file tess_block.cpp. +

+References NL3D::CTessList< CTessFace >::begin(), Far1FaceVector, FarFaceList, NL3D::CTessFace::FVBase, NL3D::CTessFace::FVLeft, NL3D::CTessFace::FVRight, NL3D::CTessFarVertex::Index1, NL3D::CTessNodeList::Next, nlassert, NL3D::CTessList< CTessFace >::size(), and uint32. +

+Referenced by createFaceVectorFar1(), and NL3D::CPatch::preRender(). +

+

00224 {
+00225         // If size is not 0.
+00226         if(FarFaceList.size()>0)
+00227         {
+00228                 nlassert(Far1FaceVector!=NULL);
+00229                 // Fill this faceVector, with FarFaceList
+00230                 CTessFace       *pFace;
+00231                 uint32          *dest= Far1FaceVector+1;
+00232                 for(pFace= FarFaceList.begin(); pFace; pFace= (CTessFace*)pFace->Next)
+00233                 {
+00234                         *(dest++)= pFace->FVBase->Index1;
+00235                         *(dest++)= pFace->FVLeft->Index1;
+00236                         *(dest++)= pFace->FVRight->Index1;
+00237                 }
+00238         }
+00239 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTessBlock::refillFaceVectorTile  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 267 of file tess_block.cpp. +

+References NL3D::CTessList< T >::begin(), NL3D::CTessNearVertex::Index, NL3D::CTessNodeList::Next, NL3D_MAX_TILE_FACE, NL3D_TESSBLOCK_TILESIZE, nlassert, RdrTileRoot, NL3D::CTessList< T >::size(), NL3D::CTileMaterial::TileFaceList, uint, uint32, and NL3D::CTileFace::V. +

+Referenced by createFaceVectorTile(), and NL3D::CPatch::preRender(). +

+

00268 {
+00269         // For all tiles existing, and for all facePass existing, fill the faceVector.
+00270         for(uint tileId=0; tileId<NL3D_TESSBLOCK_TILESIZE; tileId++)
+00271         {
+00272                 // if tile exist.
+00273                 if(RdrTileRoot[tileId])
+00274                 {
+00275                         // For all Pass faces of the tile.
+00276                         for(uint facePass=0; facePass<NL3D_MAX_TILE_FACE; facePass++)
+00277                         {
+00278                                 CTessList<CTileFace>    &faceList= RdrTileRoot[tileId]->TileFaceList[facePass];
+00279                                 uint32                                  *faceVector= RdrTileRoot[tileId]->TileFaceVectors[facePass];
+00280                                 // If some triangles create them.
+00281                                 if(faceList.size()>0)
+00282                                 {
+00283                                         nlassert( faceVector!=NULL );
+00284 
+00285                                         // Fill this faceVector, with the TileFaceList
+00286                                         CTileFace       *pFace;
+00287                                         uint32          *dest= faceVector+1;
+00288                                         for(pFace= faceList.begin(); pFace; pFace= (CTileFace*)pFace->Next)
+00289                                         {
+00290                                                 *(dest++)= pFace->V[CTessFace::IdUvBase]->Index;
+00291                                                 *(dest++)= pFace->V[CTessFace::IdUvLeft]->Index;
+00292                                                 *(dest++)= pFace->V[CTessFace::IdUvRight]->Index;
+00293                                         }
+00294                                 }
+00295                         }
+00296                 }
+00297         }
+00298 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTessBlock::removeFromModifyList  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 373 of file tess_block.cpp. +

+References _NextToModify, _PrecToModify, and isInModifyList(). +

+Referenced by NL3D::CLandscape::updateTessBlocksFaceVector(), and ~CTessBlock(). +

+

00374 {
+00375         // If already removed, return.
+00376         // _PrecToModify must be !NULL
+00377         if(!isInModifyList())
+00378                 return;
+00379 
+00380         // unlink.
+00381         _PrecToModify->_NextToModify= _NextToModify;
+00382         if(_NextToModify)
+00383                 _NextToModify->_PrecToModify= _PrecToModify;
+00384         _PrecToModify= NULL;
+00385         _NextToModify= NULL;
+00386 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTessBlock::resetClip  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 130 of file tess_block.cpp. +

+References Clipped, EmptyFar1, and FullFar1. +

+Referenced by NL3D::CPatch::CPatch(), and NL3D::CPatch::preRender(). +

+

00131 {
+00132         Clipped= false;
+00133         FullFar1= false;
+00134         EmptyFar1= false;
+00135 }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CTessBlock::visibleFar0  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 133 of file tess_block.h. +

+References Clipped, and FullFar1. +

+Referenced by NL3D::CPatch::checkCreateVertexVBFar(), NL3D::CPatch::checkDeleteVertexVBFar(), NL3D::CPatch::checkFillVertexVBFar(), NL3D::CPatch::computeSoftwareGeomorphAndAlpha(), NL3D::CPatch::fillVB(), NL3D::CPatch::fillVBFar0Only(), NL3D::CPatch::fillVBFarsDLMUvOnly(), NL3D::CPatch::preRender(), NL3D::CPatch::renderFar0(), and NL3D::CPatch::updateVBAlloc(). +

+

00133 {return !Clipped && !FullFar1;}
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CTessBlock::visibleFar1  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 135 of file tess_block.h. +

+References Clipped, and EmptyFar1. +

+Referenced by NL3D::CPatch::allocateVBAndFaceVectorFar1Only(), NL3D::CPatch::checkCreateVertexVBFar(), NL3D::CPatch::checkDeleteVertexVBFar(), NL3D::CPatch::checkFillVertexVBFar(), NL3D::CPatch::computeSoftwareGeomorphAndAlpha(), NL3D::CPatch::deleteVBAndFaceVectorFar1Only(), NL3D::CPatch::fillVB(), NL3D::CPatch::fillVBFar1Only(), NL3D::CPatch::fillVBFarsDLMUvOnly(), NL3D::CPatch::preRender(), NL3D::CPatch::renderFar1(), and NL3D::CPatch::updateVBAlloc(). +

+

00135 {return !Clipped && !EmptyFar1;}
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CTessBlock::visibleTile  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 134 of file tess_block.h. +

+References Clipped, and FullFar1. +

+Referenced by NL3D::CPatch::checkCreateVertexVBNear(), NL3D::CPatch::checkDeleteVertexVBNear(), NL3D::CPatch::checkFillVertexVBNear(), NL3D::CPatch::computeSoftwareGeomorphAndAlpha(), NL3D::CPatch::fillVB(), NL3D::CPatch::preRender(), and NL3D::CPatch::updateVBAlloc(). +

+

00134 {return !Clipped && !FullFar1;}
+
+


Field Documentation

+

+ + + + +
+ + +
CTessBlock* NL3D::CTessBlock::_NextToModify [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 167 of file tess_block.h. +

+Referenced by appendToModifyListAndDeleteFaceVector(), CTessBlock(), getNextToModify(), and removeFromModifyList().

+

+ + + + +
+ + +
CPatch* NL3D::CTessBlock::_Patch [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 163 of file tess_block.h.

+

+ + + + +
+ + +
CTessBlock* NL3D::CTessBlock::_PrecToModify [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 166 of file tess_block.h. +

+Referenced by appendToModifyListAndDeleteFaceVector(), CTessBlock(), isInModifyList(), and removeFromModifyList().

+

+ + + + +
+ + +
NLMISC::CAABBox NL3D::CTessBlock::BBox [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 73 of file tess_block.h.

+

+ + + + +
+ + +
NLMISC::CBSphere NL3D::CTessBlock::BSphere [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 74 of file tess_block.h.

+

+ + + + +
+ + +
bool NL3D::CTessBlock::Clipped [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 78 of file tess_block.h. +

+Referenced by clip(), CTessBlock(), forceClip(), getClipped(), resetClip(), visibleFar0(), visibleFar1(), and visibleTile().

+

+ + + + +
+ + +
CPlane NL3D::CTessBlock::CurrentPyramid [static] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 37 of file tess_block.cpp.

+

+ + + + +
+ + +
bool NL3D::CTessBlock::Empty [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 75 of file tess_block.h.

+

+ + + + +
+ + +
bool NL3D::CTessBlock::EmptyFar1 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 80 of file tess_block.h. +

+Referenced by clipFar(), CTessBlock(), resetClip(), and visibleFar1().

+

+ + + + +
+ + +
uint NL3D::CTessBlock::FaceTileMaterialRefCount +
+
+ + + + + +
+   + + +

+ +

+Definition at line 92 of file tess_block.h. +

+Referenced by NL3D::CPatch::appendFaceToRenderList(), CTessBlock(), NL3D::CPatch::preRender(), and NL3D::CPatch::removeFaceFromRenderList().

+

+ + + + +
+ + +
uint32* NL3D::CTessBlock::Far0FaceVector +
+
+ + + + + +
+   + + +

+ +

+Definition at line 67 of file tess_block.h. +

+Referenced by createFaceVectorFar0(), CTessBlock(), deleteFaceVectorFar0(), refillFaceVectorFar0(), and NL3D::CPatch::renderFar0().

+

+ + + + +
+ + +
uint32* NL3D::CTessBlock::Far1FaceVector +
+
+ + + + + +
+   + + +

+ +

+Definition at line 68 of file tess_block.h. +

+Referenced by createFaceVectorFar1(), CTessBlock(), deleteFaceVectorFar1(), refillFaceVectorFar1(), and NL3D::CPatch::renderFar1().

+

+ + + + +
+ + +
CTessList<CTessFace> NL3D::CTessBlock::FarFaceList +
+
+ + + + + +
+   + + +

+ +

+Definition at line 89 of file tess_block.h. +

+Referenced by NL3D::CPatch::appendFaceToRenderList(), createFaceVectorFar0(), createFaceVectorFar1(), refillFaceVectorFar0(), refillFaceVectorFar1(), NL3D::CPatch::removeFaceFromRenderList(), and NL3D::CPatch::resetMasterBlock().

+

+ + + + +
+ + +
CTessList<CTessFarVertex> NL3D::CTessBlock::FarVertexList +
+
+ + + + + +
+   + + +

+ +

+Definition at line 85 of file tess_block.h. +

+Referenced by NL3D::CPatch::allocateVBAndFaceVectorFar1Only(), NL3D::CPatch::appendFarVertexToRenderList(), NL3D::CPatch::computeSoftwareGeomorphAndAlpha(), NL3D::CPatch::debugAllocationMarkIndices(), NL3D::CPatch::deleteVBAndFaceVectorFar1Only(), NL3D::CPatch::fillVB(), NL3D::CPatch::fillVBFar0Only(), NL3D::CPatch::fillVBFar1Only(), NL3D::CPatch::fillVBFarsDLMUvOnly(), NL3D::CPatch::preRender(), NL3D::CPatch::removeFarVertexFromRenderList(), NL3D::CPatch::resetMasterBlock(), and NL3D::CPatch::updateVBAlloc().

+

+ + + + +
+ + +
bool NL3D::CTessBlock::FullFar1 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 79 of file tess_block.h. +

+Referenced by clipFar(), CTessBlock(), resetClip(), visibleFar0(), and visibleTile().

+

+ + + + +
+ + +
uint NL3D::CTessBlock::LightMapId +
+
+ + + + + +
+   + + +

+ +

+Definition at line 98 of file tess_block.h. +

+Referenced by NL3D::CPatch::getTileLightMap(), NL3D::CPatch::getTileLightMapUvInfo(), NL3D::CPatch::releaseTileLightMap(), and NL3D::CPatch::updateTessBlockLighting().

+

+ + + + +
+ + +
CPatchRdrPass* NL3D::CTessBlock::LightMapRdrPass +
+
+ + + + + +
+   + + +

+ +

+Definition at line 100 of file tess_block.h. +

+Referenced by NL3D::CPatch::getTileLightMap().

+

+ + + + +
+ + +
uint NL3D::CTessBlock::LightMapRefCount +
+
+ + + + + +
+   + + +

+ +

+Definition at line 99 of file tess_block.h. +

+Referenced by CTessBlock(), NL3D::CPatch::getTileLightMap(), NL3D::CPatch::releaseTileLightMap(), NL3D::CPatch::updateTessBlockLighting(), and ~CTessBlock().

+

+ + + + +
+ + +
CTessList<CTessNearVertex> NL3D::CTessBlock::NearVertexList +
+
+ + + + + +
+   + + +

+ +

+Definition at line 86 of file tess_block.h. +

+Referenced by NL3D::CPatch::computeSoftwareGeomorphAndAlpha(), NL3D::CPatch::debugAllocationMarkIndices(), NL3D::CPatch::fillVB(), NL3D::CPatch::preRender(), NL3D::CPatch::resetMasterBlock(), and NL3D::CPatch::updateVBAlloc().

+

+ + + + +
+ + +
CTileMaterial* NL3D::CTessBlock::RdrTileRoot[ 4 ] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 90 of file tess_block.h. +

+Referenced by createFaceVectorTile(), CTessBlock(), deleteFaceVectorTile(), NL3D::CPatch::preRender(), and refillFaceVectorTile().

+

+ + + + +
+ + +
uint NL3D::CTessBlock::TileMaterialRefCount +
+
+ + + + + +
+   + + +

+ +

+Definition at line 94 of file tess_block.h. +

+Referenced by NL3D::CPatch::appendTileMaterialToRenderList(), CTessBlock(), NL3D::CPatch::getTileMaterialRefCount(), and NL3D::CPatch::removeTileMaterialFromRenderList().

+

+ + + + +
+ + +
CLandscapeVegetableBlock* NL3D::CTessBlock::VegetableBlock +
+
+ + + + + +
+   + + +

+ +

+Definition at line 104 of file tess_block.h. +

+Referenced by CTessBlock().

+


The documentation for this class was generated from the following files: +
Generated on Tue Mar 16 07:48:02 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1