# 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::CLandscapeVegetableBlock Class Reference

A block of vegetable IG (one IG per distance type). More...

#include <landscape_vegetable_block.h>

Inheritance diagram for NL3D::CLandscapeVegetableBlock:

NL3D::CTessNodeList List of all members.

Public Methods

 CLandscapeVegetableBlock ()
 Constructor. More...

void init (const CVector &center, CVegetableManager *vegetManager, CVegetableClipBlock *vegetableClipBlock, CPatch *patch, uint ts, uint tt, CTessList< CLandscapeVegetableBlock > &list)
 build the vegetable block, create sortBlocks, and append to list. More...

void release (CVegetableManager *vegeManager, CTessList< CLandscapeVegetableBlock > &list)
 release all IGs, reset the Vegetable block and remove from list. call before destruction. More...

void update (const CVector &viewCenter, CVegetableManager *vegeManager)
 update state of the vegetableBlock. More...


Private Methods

void createVegetableIGForDistType (uint i, CVegetableManager *vegeManager, CLandscapeVegetableBlockCreateContext &vbCreateCtx)

Private Attributes

CVector _Center
 The center of this object, to compute distance. More...

CVegetableClipBlock_VegetableClipBlock
 To which VegetableClipBlock we must add vegetables IGs. More...

CPatch_Patch
 Which patch owns this block. More...

uint8 _Ts
 Coordinate of the lower-left tile. 2x2 tile vegetables are generated. More...

uint8 _Tt
 Coordinate of the lower-left tile. 2x2 tile vegetables are generated. More...

uint8 _CurDistType
 The current distance type. 0 means all IG are created. NL3D_VEGETABLE_BLOCK_NUMDIST means none. More...

CVegetableSortBlock_VegetableSortBlock [NL3D_TESSBLOCK_TILESIZE]
 The sortBlocks generated by this vegetable block, one for each tilematerial. More...

CVegetableInstanceGroup_VegetableIG [NL3D_TESSBLOCK_TILESIZE][NL3D_VEGETABLE_BLOCK_NUMDIST]
 The instance groups generated by this vegetable block, one for each distance type. and one per each tilematerial. More...


Detailed Description

A block of vegetable IG (one IG per distance type).

NB: there is one CLandscapeVegetableBlock per landscape TessBlock.

Author:
Lionel Berenguier , Nevrax France
Date:
2001

Definition at line 63 of file landscape_vegetable_block.h.


Constructor & Destructor Documentation

NL3D::CLandscapeVegetableBlock::CLandscapeVegetableBlock  
 

Constructor.

Definition at line 71 of file landscape_vegetable_block.cpp.

References _CurDistType, _VegetableClipBlock, _VegetableIG, _VegetableSortBlock, NL3D_TESSBLOCK_TILESIZE, and NL3D_VEGETABLE_BLOCK_NUMDIST.


Member Function Documentation

void NL3D::CLandscapeVegetableBlock::createVegetableIGForDistType uint    i,
CVegetableManager   vegeManager,
CLandscapeVegetableBlockCreateContext   vbCreateCtx
[private]
 

Definition at line 227 of file landscape_vegetable_block.cpp.

References _Patch, _Ts, _Tt, _VegetableIG, _VegetableSortBlock, NL3D_TESSBLOCK_TILESIZE, and nlassert.

Referenced by update.

void NL3D::CLandscapeVegetableBlock::init const CVector &    center,
CVegetableManager   vegetManager,
CVegetableClipBlock   vegetableClipBlock,
CPatch   patch,
uint    ts,
uint    tt,
CTessList< CLandscapeVegetableBlock > &    list
 

build the vegetable block, create sortBlocks, and append to list.

Definition at line 89 of file landscape_vegetable_block.cpp.

References _Center, _Patch, _Ts, _Tt, _VegetableClipBlock, _VegetableSortBlock, NL3D_PATCH_TILE_RADIUS, NL3D_TESSBLOCK_TILESIZE, nlassert, s, and t.

void NL3D::CLandscapeVegetableBlock::release CVegetableManager   vegeManager,
CTessList< CLandscapeVegetableBlock > &    list
 

release all IGs, reset the Vegetable block and remove from list. call before destruction.

Definition at line 124 of file landscape_vegetable_block.cpp.

References _CurDistType, _VegetableIG, _VegetableSortBlock, NL3D_TESSBLOCK_TILESIZE, and NL3D_VEGETABLE_BLOCK_NUMDIST.

void NL3D::CLandscapeVegetableBlock::update const CVector &    viewCenter,
CVegetableManager   vegeManager
 

update state of the vegetableBlock.

If distance type change, then create / delete any wanted Ig. Warning! IG creation Use OptFastFloor()! So call must be enclosed with a OptFastFloorBegin()/OptFastFloorEnd().

Definition at line 155 of file landscape_vegetable_block.cpp.

References _Center, _CurDistType, _Patch, _Ts, _Tt, _VegetableIG, _VegetableSortBlock, createVegetableIGForDistType, and NL3D_TESSBLOCK_TILESIZE.


Member Data Documentation

CVector NL3D::CLandscapeVegetableBlock::_Center [private]
 

The center of this object, to compute distance.

Definition at line 90 of file landscape_vegetable_block.h.

Referenced by init, and update.

uint8 NL3D::CLandscapeVegetableBlock::_CurDistType [private]
 

The current distance type. 0 means all IG are created. NL3D_VEGETABLE_BLOCK_NUMDIST means none.

Definition at line 98 of file landscape_vegetable_block.h.

Referenced by CLandscapeVegetableBlock, release, and update.

CPatch* NL3D::CLandscapeVegetableBlock::_Patch [private]
 

Which patch owns this block.

Definition at line 94 of file landscape_vegetable_block.h.

Referenced by createVegetableIGForDistType, init, and update.

uint8 NL3D::CLandscapeVegetableBlock::_Ts [private]
 

Coordinate of the lower-left tile. 2x2 tile vegetables are generated.

Definition at line 96 of file landscape_vegetable_block.h.

Referenced by createVegetableIGForDistType, init, and update.

uint8 NL3D::CLandscapeVegetableBlock::_Tt [private]
 

Coordinate of the lower-left tile. 2x2 tile vegetables are generated.

Definition at line 96 of file landscape_vegetable_block.h.

Referenced by createVegetableIGForDistType, init, and update.

CVegetableClipBlock* NL3D::CLandscapeVegetableBlock::_VegetableClipBlock [private]
 

To which VegetableClipBlock we must add vegetables IGs.

Definition at line 92 of file landscape_vegetable_block.h.

Referenced by CLandscapeVegetableBlock, and init.

CVegetableInstanceGroup* NL3D::CLandscapeVegetableBlock::_VegetableIG[NL3D_TESSBLOCK_TILESIZE][NL3D_VEGETABLE_BLOCK_NUMDIST] [private]
 

The instance groups generated by this vegetable block, one for each distance type. and one per each tilematerial.

Definition at line 107 of file landscape_vegetable_block.h.

Referenced by CLandscapeVegetableBlock, createVegetableIGForDistType, release, and update.

CVegetableSortBlock* NL3D::CLandscapeVegetableBlock::_VegetableSortBlock[NL3D_TESSBLOCK_TILESIZE] [private]
 

The sortBlocks generated by this vegetable block, one for each tilematerial.

Definition at line 102 of file landscape_vegetable_block.h.

Referenced by CLandscapeVegetableBlock, createVegetableIGForDistType, init, release, and update.


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