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

A landscape. More...

#include <landscape.h>

Inheritance diagram for NL3D::CLandscape:

NLMISC::CRefCount List of all members.

Accessors.

CZonegetZone (sint zoneId)
 Get a zone pointer. More...

const CZonegetZone (sint zoneId) const
 Get a zone pointer. More...

void getZoneList (std::vector< uint16 > &zoneIds) const
 Return list of zone loaded. More...

void buildZoneName (sint zoneId, std::string &zoneName)
 From an Id, return the name of the zone, in the form "150_EM", without extension. More...


Allocators.

CTessFacenewTessFace ()
CTessVertexnewTessVertex ()
CTessNearVertexnewTessNearVertex ()
CTessFarVertexnewTessFarVertex ()
CTileMaterialnewTileMaterial ()
CTileFacenewTileFace ()
void deleteTessFace (CTessFace *f)
void deleteTessVertex (CTessVertex *v)
void deleteTessNearVertex (CTessNearVertex *v)
void deleteTessFarVertex (CTessFarVertex *v)
void deleteTileMaterial (CTileMaterial *tm)
void deleteTileFace (CTileFace *tf)
CBlockMemory< CTessFaceTessFaceAllocator
CBlockMemory< CTessVertexTessVertexAllocator
CBlockMemory< CTessNearVertexTessNearVertexAllocator
CBlockMemory< CTessFarVertexTessFarVertexAllocator
CBlockMemory< CTileMaterialTileMaterialAllocator
CBlockMemory< CTileFaceTileFaceAllocator
CLandscapeFaceVectorManager _FaceVectorManager
CTessBlock _TessBlockModificationRoot

Visual Collision system.

void addTrianglesInBBox (const CPatchIdentEx &paIdEx, const CAABBox &bbox, std::vector< CTrianglePatch > &triangles, uint8 tileTessLevel) const
 This method search only on the given patch. More...

void addPatchBlocksInBBox (const CPatchIdentEx &paIdEx, const CAABBox &bbox, std::vector< CPatchBlockIdent > &paBlockIds)
 private version of buildPatchBlocksInBBox, searching only for one patch. More...

CQuadGrid< CPatchIdentEx_PatchQuadGrid
 The QuadGrid of patch. More...

const uint _PatchQuadGridSize = 128
const float _PatchQuadGridEltSize = 16

[NOHEADER]

const CTileVegetableDescgetTileVegetableDesc (uint16 tileId)
 For a given tile Id, look into tileSet, and get the tile vegetable descriptor. More...

CVegetableManager_VegetableManager
 The VegetableManager. (ptr only for include speed). More...

bool _VegetableManagerEnabled
 Tells if the Vegetable Managemnt is enabled. More...

bool _DriverOkForVegetable
 Tells if the current dirver support vegetable. More...

CTessList< CLandscapeVegetableBlock_VegetableBlockList
 List of VegetableBlock, to be tested for creation each frame. More...


UpdateLighting management

void linkPatchToNearUL (CPatch *patch)
 Used by Patch to link/unlink from _ULRootNearPatch. More...

void unlinkPatchFromNearUL (CPatch *patch)
void updateLightingTextureFar (float ratio)
 Update All Far texture, given a ratio along total lumels. More...

void updateLightingTextureNear (float ratio)
 Update All Near texture, given a ratio along total lumels. More...

double _ULPrecTime
bool _ULPrecTimeInit
double _ULTime
float _ULFrequency
 Frequency of update. More...

sint _ULTotalFarPixels
 Far UpdateLighting. More...

float _ULFarPixelsToUpdate
 Current number of far pixels to update. If negative, I have some advance. More...

CTextureFar_ULRootTextureFar
 The current TextureFar rendered. More...

uint _ULFarCurrentPatchId
 Current patch id in the current TextureFar processed. More...

sint _ULTotalNearPixels
 Near UpdateLighting. More...

float _ULNearPixelsToUpdate
 Current number of near pixels to update. If negative, I have some advance. More...

CPatch_ULRootNearPatch
 The current patch rendered. More...

uint _ULNearCurrentTessBlockId
 Current tessBlock id in the current patch processed. More...


DynamicLighting management

CTextureDLMgetTextureDLM () const
 for CPatch. More...

CPatchDLMContextListgetPatchDLMContextList () const
 for CPatch. More...

NLMISC::CSmartPtr< ITexture_TextureDLM
 The dynamic lightmap Texture. More...

CPatchDLMContextList_PatchDLMContextList
 List of DLM Context. More...

float _DLMMaxAttEnd
 Max AttEnd. More...

CRGBA _DLMGlobalVegetableColor
 an approximate value used to simulate diffuse material of vegetables. More...

CRGBA _PointLightDiffuseMaterial
 The diffuse material of landscape, used for StaticPointLights and DynamicPointLights. More...


Public Methods

 CLandscape ()
 Constructor. More...

 ~CLandscape ()
 Destructor. clear(). More...

Init/Build.
void init ()
 init the landscape VBuffers, texture cache etc... More...

bool addZone (const CZone &newZone)
 Add a zone which should be builded (or loaded), but not compiled. More...

bool removeZone (uint16 zoneId)
 remove a zone by its unique Id. More...

void clear ()
 Disconnect, and Delete all zones. More...

void checkBinds () throw (EBadBind)
 Verify the binding of patchs of all zones. throw EBadBind if error. More...

void checkBinds (uint16 zoneId) throw (EBadBind)
 Verify the binding of patchs of one zone. throw EBadBind if error. nop if zone not loaded. More...

bool initTileBanks ()
 Build tileBank. More...

Landscape Parameters.
void setTileNear (float tileNear)
 Set tile near distance. Default 50.f. maximized to length of Far alpha transition). More...

float getTileNear () const
 Get tile near distance. More...

void setThreshold (float thre)
 Set threshold for subdivsion quality. The lower is threshold, the more the landscape is subdivided. Default: 0.001. More...

float getThreshold () const
 Get threshold. More...

void setRefineMode (bool enabled)
bool getRefineMode () const
void setTileMaxSubdivision (uint tileDiv)
 Set Maximum Tile subdivision. Valid values must be in [0..4] (assert). Default is 0 (for now :) ). More...

uint getTileMaxSubdivision ()
 Get Maximum Tile subdivision. More...

void setNoiseMode (bool enabled)
 Enable the noise or not. NB: only new tesselation computed is modified, so you should call it only at init time. More...

bool getNoiseMode () const
Render methods.
void setDriver (IDriver *drv)
 A driver is needed for VB allocation. More...

void clip (const CVector &refineCenter, const std::vector< CPlane > &pyramid)
 Clip the landscape according to frustum. More...

void refine (const CVector &refineCenter)
 Refine/Geomorph the tesselation of the landscape. More...

void render (const CVector &refineCenter, const CVector &frontVector, const CPlane pyramid[NL3D_TESSBLOCK_NUM_CLIP_PLANE], bool doTileAddPass=false)
 Render the landscape. More...

void refineAll (const CVector &refineCenter)
 Refine/Geomorph ALL the tesselation of the landscape, from the view point refineCenter. Even if !RefineMode. More...

void excludePatchFromRefineAll (sint zoneId, uint patch, bool exclude)
 This is especially for Pacs. exlude a patch to be refineAll()ed. More...

void averageTesselationVertices ()
 This is especially for Pacs. More...

Collision methods.
void buildCollideFaces (const CAABBoxExt &bbox, std::vector< CTriangle > &faces, bool faceSplit)
 Build the set of faces of landscape, which are IN a bbox. More...

void buildCollideFaces (sint zoneId, sint patch, std::vector< CTriangle > &faces)
 Build the set of faces of landscape, from a certain patch. More...

void buildTrianglesInBBox (const CAABBox &bbox, std::vector< CTrianglePatch > &triangles, uint8 tileTessLevel)
 method relatively identical than buildCollideFaces(bbox....). More...

void buildPatchBlocksInBBox (const CAABBox &bbox, std::vector< CPatchBlockIdent > &paBlockIds)
 Same as buildTrianglesInBBox(), but fill blockId instead of raw triangles. More...

void fillPatchQuadBlock (CPatchQuadBlock &quadBlock) const
 Fill a CPatchQuadBlock, from its required PatchId. More...

CVector getTesselatedPos (const CPatchIdent &patchId, const CUV &uv) const
 From the current tesselation of a patch of landscape, and a UV in this patch, return tesselated position. More...

void getTessellationLeaves (std::vector< const CTessFace * > &leaves) const
 From the current tesselation of landscape, build the list of leaves faces. More...

Tile mgt.
void flushTiles (IDriver *drv, uint16 tileStart, uint16 nbTiles)
 Force a range of tiles to be loaded in the driver... More...

void releaseTiles (uint16 tileStart, uint16 nbTiles)
 Force a range of tiles to be loaded in the driver... More...

NLMISC::CSmartPtr< ITexturegetTileTexture (uint16 tileId, CTile::TBitmap bitmapType, CVector &uvScaleBias)
 Return the texture for a tile Id. UseFull for Tile edition. More...

CTileElementgetTileElement (const CPatchIdent &patchId, const CUV &uv)
 Return the tile element for a patch at specific UV. UseFull for getting surface data. Return NULL if not found. More...

Lighting.
void setupStaticLight (const CRGBA &diffuse, const CRGBA &ambiant, float multiply)
 Setup the light color use for static illumination. More...

const CRGBA * getStaticLight () const
 Get the light color by shading table. More...

void setPointLightDiffuseMaterial (CRGBA diffuse)
 Setup the equivalent material diffuse component used for both Static and Dynamic PointLights. More...

CRGBA getPointLightDiffuseMaterial () const
void enableAutomaticLighting (bool enable)
 Enable automatic near lightmap computing. More...

void setupAutomaticLightDir (const CVector &lightDir)
 For automatic near lightmap computing (if enabled): setup the lightdir. More...

bool getAutomaticLighting () const
 return true if AutomaticLighting is enabled. More...

const CVector & getAutomaticLightDir () const
 return the light direction setuped in enableAutomaticLighting(). More...

void removeAllPointLights ()
 This method remove all PointLights in all Zones, and hence reset TileLightInfluences. More...

void setPointLightFactor (const std::string &lightGroupName, NLMISC::CRGBA nFactor)
 set the Light factor for all pointLights in All zones with LightGroupName= "lightGroupName". More...

HeightField DeltaZ.
CVector getHeightFieldDeltaZ (float x, float y) const
 return the HeightField DeltaZ for the 2D position. (0,0,dZ) is returned. More...

void setHeightField (const CHeightMap &hf)
 set the HeightField data. More...

void createVegetableBlendLayersModels (CScene *scene)
 init the vegetable layer models in the CScene (see CVegetableManager). More...

void setVegetableTime (double time)
 set the vegetable manager Time (in seconds) NB: MOT stuff (called by CLandscapeModel), don't use it. More...

void setVegetableUpdateLightingTime (double time)
 set the vegetable manager System Time (in seconds) for update lighting NB: MOT stuff (called by CLandscapeModel), don't use it. More...

void enableVegetable (bool enable)
 enable the vegetable management in landscape. More...

bool isVegetableActive () const
 return if the vegetable management is actually activated: actually return _VerexShaderOk && _VegetableEnabled. More...

void loadVegetableTexture (const std::string &textureFileName)
 load a texture for the vegetable, lookup in CPath. More...

void setupVegetableLighting (const CRGBA &ambient, const CRGBA &diffuse, const CVector &directionalLight)
 setup lighting ambient and diffuse for vegetable. More...

void setVegetableWind (const CVector &windDir, float windFreq, float windPower, float windBendMin)
 set the vegetable Wind for animation. More...

uint getNumVegetableFaceRendered () const
 return the number of faces displayed in Driver with the vegetable manager. More...

void setVegetableUpdateLightingFrequency (float freq)
 set the frequency of Vegetable lighting update. More...

void setupColorsFromTileFlags (const NLMISC::CRGBA colors[4])
 Debug purpose only : setup the colors of the patch of all the currently loaded zones so that it shows which tiles have vegetable disabled, or are above, below water. More...

Lightmap get interface.
uint8 getLumel (const CPatchIdent &patchId, const CUV &uv) const
 Get the lumel under the position. return 255 if invalid patchId. More...

void appendTileLightInfluences (const CPatchIdent &patchId, const CUV &uv, std::vector< CPointLightInfluence > &pointLightList) const
 Append lights under the position to pointLightList. Do nothing if invalid patchId. More...

Precision ZBuffer mgt.
void setPZBModelPosition (const CVector &pos)
 Set the ModelPosition (for Precision ZBuffer purpose). More...

const CVector & getPZBModelPosition () const
 
See also:
setPZBModelPosition().
More...


UpdateLighting management
void updateLighting (double time)
 update the lighting of patch, within a certain amount of time. More...

void setUpdateLightingFrequency (float freq)
 set the frequency of lighting update. More...

void updateLightingAll ()
 update the lighting of ALL patch (slow method). More...

Dynamic Lighting management
void computeDynamicLighting (const std::vector< CPointLight * > &pls)
 Compute dynamic lightmaps. More...

uint getDynamicLightingMemoryLoad () const
 For bench only. More...

void setDynamicLightingMaxAttEnd (float maxAttEnd)
 Set PointLight Max Attenuation End landscape support. More...

float getDynamicLightingMaxAttEnd () const
 see setDynamicLightingMaxAttEnd(). More...

void setDLMGlobalVegetableColor (CRGBA gvc)
 For Vegetable Dynamic ligthing only: this is an approximate color of all vegetables. More...

CRGBA getDLMGlobalVegetableColor () const
 see setDLMGlobalVegetableColor(). More...


Public Attributes

CTileBank TileBank
CTileFarBank TileFarBank

Private Types

typedef NLMISC::CRefPtr< ITextureRPTexture
typedef std::map< std::string,
RPTexture
TTileTextureMap
typedef TTileTextureMap::iterator ItTileTextureMap
typedef std::set< CPatchRdrPassTTileRdrPassSet
typedef TTileRdrPassSet::iterator ItTileRdrPassSet
typedef NLMISC::CSmartPtr<
CPatchRdrPass
TSPRenderPass
typedef std::set< TSPRenderPassTSPRenderPassSet
typedef TSPRenderPassSet::iterator ItSPRenderPassSet
typedef std::vector< TSPRenderPassSetTSPRdrPassSetVector
typedef std::map< std::string,
NLMISC::CRGBA
TLightGroupColorMap
typedef TLightGroupColorMap::iterator ItLightGroupColorMap

Private Methods

CPatchRdrPassgetFarRenderPass (CPatch *pPatch, uint farIndex, float &far1UScale, float &far1VScale, float &far1UBias, float &far1VBias, bool &bRot)
void freeFarRenderPass (CPatch *pPatch, CPatchRdrPass *pass, uint farIndex)
CPatchRdrPassgetTileRenderPass (uint16 tileId, bool additiveRdrPass)
void getTileUvScaleBiasRot (uint16 tileId, CTile::TBitmap bitmapType, CVector &uvScaleBias, uint8 &rotAlpha)
void resetRenderFarAndDeleteVBFV ()
void forceMergeAtTileLevel ()
 For changing TileMaxSubdivision. force tesselation to be under tile. More...

void updateGlobalsAndLockBuffers (const CVector &refineCenter)
void lockBuffers ()
void unlockBuffers ()
void synchronizeATIVBHards ()
void updateTessBlocksFaceVector ()
void eraseFarRenderPassFromSet (CPatchRdrPass *pass)
bool eraseTileFarIfNotGood (uint tileNumber, uint sizeOrder0, uint sizeOrder1, uint sizeOrder2)
void addPatch ()
void removePatch ()
void loadTile (uint16 tileId)
void releaseTile (uint16 tileId)
ITexturefindTileTexture (const std::string &textName)
CPatchRdrPassfindTileRdrPass (const CPatchRdrPass &pass)
void checkZoneBinds (CZone &curZone, EBadBind &bindError)
uint getTileLightMap (CRGBA map[NL_TILE_LIGHTMAP_SIZE *NL_TILE_LIGHTMAP_SIZE], CPatchRdrPass *&lightmapRdrPass)
void getTileLightMapUvInfo (uint tileLightMapId, CVector &uvScaleBias)
void releaseTileLightMap (uint tileLightMapId)
void refillTileLightMap (uint tileLightMapId, CRGBA map[NL_TILE_LIGHTMAP_SIZE *NL_TILE_LIGHTMAP_SIZE])

Static Private Methods

uint getRdrPassIndexWithSize (uint width, uint height)

Private Attributes

TZoneMap Zones
float _TileDistNear
float _Threshold
bool _RefineMode
float _FarTransition
uint _TileMaxSubdivision
float _VPThresholdChange
TTileTextureMap TileTextureMap
TTileRdrPassSet TileRdrPassSet
std::vector< CTileInfo * > TileInfos
std::vector< TSPRenderPass_TextureNears
uint _NFreeLightMaps
CMaterial TileMaterial
CMaterial FarMaterial
TSPRenderPassSet _FarRdrPassSet
TSPRdrPassSetVector _FarRdrPassSetVectorFree
bool _FarInitialized
CRGBA _LightValue [256]
bool _AutomaticLighting
CVector _AutomaticLightDir
TLightGroupColorMap _LightGroupColorMap
CHeightField _HeightField
VertexBuffer mgt.
CRefPtr< IDriver_Driver
CLandscapeVBAllocator _Far0VB
CLandscapeVBAllocator _Far1VB
CLandscapeVBAllocator _TileVB
bool _VertexShaderOk
bool _RenderMustRefillVB
bool _NoiseEnabled
CTessFacePriorityList _SplitPriorityList
 The priority list of faces which may need to split. More...

CTessFacePriorityList _MergePriorityList
 The priority list of faces which may need to merge. More...

CVector _OldRefineCenter
 OldRefineCenter setuped in prec refine(). More...

bool _OldRefineCenterSetuped
CTessFacePListNode _RootNewLeaves
 newTessFace() append the face to _RootNewLeaves. More...

Precision ZBuffer mgt.
CVector _PZBModelPosition
 
See also:
setPZBModelPosition().
More...



Friends

class CTessFace
class CPatch
class CZone

Detailed Description

A landscape.

Use CZone to build zone, and use landscape to dynamically add/remove them, for render.

Limits:

  • 65535 zones max in whole world (16 bits ZoneId ).
  • 65535 patchs max by zone.
  • patch order 2x2 minimum.
  • patch order 16x16 maximum.
  • connectivity on a edge: 1/1, 1/2, or 1/4.
  • connectivity on a edge of a zone: 1/1 only.
  • The value of Noise amplitude is global and cannot go over 1 meter (+- 1m). Sorry, this is a FIXED (for ever) value which should NEVER change (because of Gfx database).
If you use the tiles mapped on the patches, load the near bank file (.bank) and the far bank file (.farbank) by seralizing TileBank and TileFarBank with those files. Then call initTileBanks.

Author:
Lionel Berenguier , Nevrax France
Date:
2000

Definition at line 138 of file landscape.h.


Member Typedef Documentation

typedef TLightGroupColorMap::iterator NL3D::CLandscape::ItLightGroupColorMap [private]
 

Definition at line 768 of file landscape.h.

Referenced by addZone.

typedef TSPRenderPassSet::iterator NL3D::CLandscape::ItSPRenderPassSet [private]
 

Definition at line 745 of file landscape.h.

Referenced by clear, and render.

typedef TTileRdrPassSet::iterator NL3D::CLandscape::ItTileRdrPassSet [private]
 

Definition at line 695 of file landscape.h.

Referenced by findTileRdrPass, flushTiles, releaseTiles, and render.

typedef TTileTextureMap::iterator NL3D::CLandscape::ItTileTextureMap [private]
 

Definition at line 692 of file landscape.h.

typedef NLMISC::CRefPtr<ITexture> NL3D::CLandscape::RPTexture [private]
 

Definition at line 690 of file landscape.h.

typedef std::map<std::string, NLMISC::CRGBA> NL3D::CLandscape::TLightGroupColorMap [private]
 

Definition at line 767 of file landscape.h.

typedef std::vector<TSPRenderPassSet> NL3D::CLandscape::TSPRdrPassSetVector [private]
 

Definition at line 746 of file landscape.h.

typedef NLMISC::CSmartPtr<CPatchRdrPass> NL3D::CLandscape::TSPRenderPass [private]
 

Definition at line 696 of file landscape.h.

typedef std::set<TSPRenderPass> NL3D::CLandscape::TSPRenderPassSet [private]
 

Definition at line 744 of file landscape.h.

typedef std::set<CPatchRdrPass> NL3D::CLandscape::TTileRdrPassSet [private]
 

Definition at line 694 of file landscape.h.

typedef std::map<std::string, RPTexture> NL3D::CLandscape::TTileTextureMap [private]
 

Definition at line 691 of file landscape.h.


Constructor & Destructor Documentation

NL3D::CLandscape::CLandscape  
 

Constructor.

Definition at line 177 of file landscape.cpp.

References _AutomaticLightDir, _AutomaticLighting, _DLMGlobalVegetableColor, _DLMMaxAttEnd, _DriverOkForVegetable, _FarInitialized, _FarRdrPassSetVectorFree, _FarTransition, _MergePriorityList, _NFreeLightMaps, _NoiseEnabled, _OldRefineCenter, _OldRefineCenterSetuped, _PatchDLMContextList, _PointLightDiffuseMaterial, _PZBModelPosition, _RefineMode, _RenderMustRefillVB, _SplitPriorityList, _TextureDLM, _Threshold, _TileDistNear, _TileMaxSubdivision, _ULFarCurrentPatchId, _ULFarPixelsToUpdate, _ULFrequency, _ULNearCurrentTessBlockId, _ULNearPixelsToUpdate, _ULPrecTimeInit, _ULRootNearPatch, _ULRootTextureFar, _ULTotalFarPixels, _ULTotalNearPixels, _VegetableManager, _VegetableManagerEnabled, _VertexShaderOk, _VPThresholdChange, getRdrPassIndexWithSize, NL3D_LANDSCAPE_DLM_HEIGHT, NL3D_LANDSCAPE_DLM_WIDTH, NL3D_LANDSCAPE_VEGETABLE_MAX_AGP_VERTEX_LIGHTED, NL3D_LANDSCAPE_VEGETABLE_MAX_AGP_VERTEX_UNLIT, NL3D_REFINE_PLIST_DIST_MAX_MOD, NL3D_REFINE_PLIST_DIST_STEP, NL3D_REFINE_PLIST_NUM_ENTRIES, NL3D_REFINE_PLIST_SPLIT_NUMQUADRANT, NL3D_TESS_ALLOC_BLOCKSIZE, NL3D_TESSRDR_ALLOC_BLOCKSIZE, NL_MAX_SIZE_OF_TEXTURE_EDGE, setupStaticLight, and TileInfos.

NL3D::CLandscape::~CLandscape  
 

Destructor. clear().

Definition at line 273 of file landscape.cpp.

References _PatchDLMContextList, _TextureDLM, _VegetableManager, and clear.


Member Function Documentation

void NL3D::CLandscape::addPatch   [private]
 

void NL3D::CLandscape::addPatchBlocksInBBox const CPatchIdentEx   paIdEx,
const CAABBox &    bbox,
std::vector< CPatchBlockIdent > &    paBlockIds
[private]
 

private version of buildPatchBlocksInBBox, searching only for one patch.

Definition at line 2310 of file landscape.cpp.

References CPatch.

Referenced by buildPatchBlocksInBBox.

void NL3D::CLandscape::addTrianglesInBBox const CPatchIdentEx   paIdEx,
const CAABBox &    bbox,
std::vector< CTrianglePatch > &    triangles,
uint8    tileTessLevel
const [private]
 

This method search only on the given patch.

NB: this method use a convex hull subdivion to search in O(logn) what part of the patch to insert.

Parameters:
bbox  the bbox to test against.
triangles  array to be filled (no clear performed, elements added).
tileTessLevel  0,1 or 2 size of the triangles (2*2m, 1*1m or 0.5*0.5m). Level of subdivision of a tile.

Definition at line 2277 of file landscape.cpp.

References CPatch.

Referenced by buildTrianglesInBBox.

bool NL3D::CLandscape::addZone const CZone   newZone
 

Add a zone which should be builded (or loaded), but not compiled.

CLandscape compile it. The contents of newZone are copied into the landscape.

Parameters:
newZone  the new zone.
Returns:
true if OK, false otherwise. As example, Fail if newZone is already connected.

Definition at line 387 of file landscape.cpp.

References _LightGroupColorMap, _PatchQuadGrid, CPatch, CZone, ItLightGroupColorMap, nlassert, unlockBuffers, updateGlobalsAndLockBuffers, updateTessBlocksFaceVector, and Zones.

void NL3D::CLandscape::appendTileLightInfluences const CPatchIdent   patchId,
const CUV &    uv,
std::vector< CPointLightInfluence > &    pointLightList
const
 

Append lights under the position to pointLightList. Do nothing if invalid patchId.

Definition at line 3207 of file landscape.cpp.

References CPatch, nlassert, and Zones.

void NL3D::CLandscape::averageTesselationVertices  
 

This is especially for Pacs.

Each Vertex->EndPos which is not a corner of a patch is set to the mean of its 2 shared Patchs. NB: Works with special cases of rectangular patchs and binded patchs.

Definition at line 778 of file landscape.cpp.

References _TessBlockModificationRoot, NL3D::ItZoneMap, nlassert, unlockBuffers, updateGlobalsAndLockBuffers, updateTessBlocksFaceVector, and Zones.

void NL3D::CLandscape::buildCollideFaces sint    zoneId,
sint    patch,
std::vector< CTriangle > &    faces
 

Build the set of faces of landscape, from a certain patch.

Usefull for collisions. Triangles are built first in S then T order. There is two triangles by tiles. So the number of triangles for a patch is 2*OrderS*OrderT.

Definition at line 2439 of file landscape.cpp.

References CPatch, NL3D::ItZoneMap, nlassert, x, y, and Zones.

void NL3D::CLandscape::buildCollideFaces const CAABBoxExt &    bbox,
std::vector< CTriangle > &    faces,
bool    faceSplit
 

Build the set of faces of landscape, which are IN a bbox.

Usefull for collisions. The faces are builded at Tile level (2m*2m).

Parameters:
bbox  the bbox where faces are searched.
faces  the result of the build.
faceSplit  if true, Only faces which are IN or partialy IN the bbox are returned. Else the clipping is done on patch level. Worst, but faster.

Definition at line 2363 of file landscape.cpp.

References CPatch, NL3D::ItZoneMap, x, y, and Zones.

void NL3D::CLandscape::buildPatchBlocksInBBox const CAABBox &    bbox,
std::vector< CPatchBlockIdent > &    paBlockIds
 

Same as buildTrianglesInBBox(), but fill blockId instead of raw triangles.

NB: this method use first a quadgrid to locate patchs of interest, then for each patch, it uses a convex hull subdivion to search in O(logn) what part of the patch to insert.

Parameters:
bbox  the bbox to test against. NB: you should modify your bbox according to heighfield.
paBlockIds  array to be filled (no clear performed, elements added).

Definition at line 2323 of file landscape.cpp.

References _PatchQuadGrid, and addPatchBlocksInBBox.

void NL3D::CLandscape::buildTrianglesInBBox const CAABBox &    bbox,
std::vector< CTrianglePatch > &    triangles,
uint8    tileTessLevel
 

method relatively identical than buildCollideFaces(bbox....).

Differences below: NB: this method use first a quadgrid to locate patchs of interest, then for each patch, it uses a convex hull subdivion to search in O(logn) what part of the patch to insert.

Parameters:
bbox  the bbox to test against. NB: you should modify your bbox according to heighfield.
triangles  array to be filled (array first cleared, then elements added).
tileTessLevel  0,1 or 2 size of the triangles (2*2m, 1*1m or 0.5*0.5m). Level of subdivision of a tile.

Definition at line 2290 of file landscape.cpp.

References _PatchQuadGrid, and addTrianglesInBBox.

void NL3D::CLandscape::buildZoneName sint    zoneId,
std::string &    zoneName
[static]
 

From an Id, return the name of the zone, in the form "150_EM", without extension.

Definition at line 516 of file landscape.cpp.

References x, and y.

void NL3D::CLandscape::checkBinds uint16    zoneId throw (EBadBind)
 

Verify the binding of patchs of one zone. throw EBadBind if error. nop if zone not loaded.

Definition at line 2260 of file landscape.cpp.

References NL3D::ItZoneMap.

void NL3D::CLandscape::checkBinds   throw (EBadBind)
 

Verify the binding of patchs of all zones. throw EBadBind if error.

Definition at line 2244 of file landscape.cpp.

References NL3D::ItZoneMap.

void NL3D::CLandscape::checkZoneBinds CZone   curZone,
EBadBind   bindError
[private]
 

Definition at line 2215 of file landscape.cpp.

References CZone, and getZone.

void NL3D::CLandscape::clear  
 

Disconnect, and Delete all zones.

Definition at line 525 of file landscape.cpp.

References _Driver, _Far0VB, _Far1VB, _FarRdrPassSet, _FarRdrPassSetVectorFree, _PatchQuadGrid, _TileVB, eraseFarRenderPassFromSet, getZoneList, ItSPRenderPassSet, nlverify, and removeZone.

Referenced by ~CLandscape.

void NL3D::CLandscape::clip const CVector &    refineCenter,
const std::vector< CPlane > &    pyramid
 

Clip the landscape according to frustum.

Planes must be normalized.

Definition at line 589 of file landscape.cpp.

References _TessBlockModificationRoot, NL3D::ItZoneMap, nlassert, unlockBuffers, updateGlobalsAndLockBuffers, updateTessBlocksFaceVector, and Zones.

void NL3D::CLandscape::computeDynamicLighting const std::vector< CPointLight * > &    pls
 

Compute dynamic lightmaps.

Parameters:
pls  list of pointLigths to influence landscape

Definition at line 3428 of file landscape.cpp.

References _DLMMaxAttEnd, _PatchDLMContextList, _PatchQuadGrid, _PointLightDiffuseMaterial, CPatch, unlockBuffers, and updateGlobalsAndLockBuffers.

void NL3D::CLandscape::createVegetableBlendLayersModels CScene   scene
 

init the vegetable layer models in the CScene (see CVegetableManager).

NB: MOT stuff (called by CLandscapeModel), don't use it.

Definition at line 3159 of file landscape.cpp.

References _VegetableManager.

void NL3D::CLandscape::deleteTessFace CTessFace   f [private]
 

Definition at line 2986 of file landscape.cpp.

References TessFaceAllocator.

void NL3D::CLandscape::deleteTessFarVertex CTessFarVertex   v [private]
 

Definition at line 3007 of file landscape.cpp.

References TessFarVertexAllocator, and v.

void NL3D::CLandscape::deleteTessNearVertex CTessNearVertex   v [private]
 

Definition at line 3001 of file landscape.cpp.

References TessNearVertexAllocator, and v.

void NL3D::CLandscape::deleteTessVertex CTessVertex   v [private]
 

Definition at line 2995 of file landscape.cpp.

References TessVertexAllocator, and v.

void NL3D::CLandscape::deleteTileFace CTileFace   tf [private]
 

Definition at line 3019 of file landscape.cpp.

References TileFaceAllocator.

void NL3D::CLandscape::deleteTileMaterial CTileMaterial   tm [private]
 

Definition at line 3013 of file landscape.cpp.

References TileMaterialAllocator.

void NL3D::CLandscape::enableAutomaticLighting bool    enable
 

Enable automatic near lightmap computing.

use setupStaticLight(). Default is disabled. NB: calling this method won't flush all texture near already computed.

Definition at line 2693 of file landscape.cpp.

References _AutomaticLighting.

void NL3D::CLandscape::enableVegetable bool    enable
 

enable the vegetable management in landscape.

Valid only if VertexShader is OK. if true, register TileBank vegetables Shape to manager.

Definition at line 3054 of file landscape.cpp.

References _VegetableManager, _VegetableManagerEnabled, CPatch, NL3D::ItZoneMap, TileBank, and Zones.

void NL3D::CLandscape::eraseFarRenderPassFromSet CPatchRdrPass   pass [private]
 

Definition at line 2153 of file landscape.cpp.

References _FarRdrPassSet, _ULFarCurrentPatchId, and _ULRootTextureFar.

Referenced by clear, and freeFarRenderPass.

bool NL3D::CLandscape::eraseTileFarIfNotGood uint    tileNumber,
uint    sizeOrder0,
uint    sizeOrder1,
uint    sizeOrder2
[private]
 

Definition at line 2562 of file landscape.cpp.

References TileFarBank.

Referenced by initTileBanks.

void NL3D::CLandscape::excludePatchFromRefineAll sint    zoneId,
uint    patch,
bool    exclude
 

This is especially for Pacs. exlude a patch to be refineAll()ed.

Definition at line 766 of file landscape.cpp.

References NL3D::ItZoneMap, and Zones.

void NL3D::CLandscape::fillPatchQuadBlock CPatchQuadBlock   quadBlock const
 

Fill a CPatchQuadBlock, from its required PatchId.

nlassert(PatchId size is less than NL_PATCH_BLOCK_MAX_QUAD)

Definition at line 2342 of file landscape.cpp.

References CPatch, nlassert, and Zones.

CPatchRdrPass * NL3D::CLandscape::findTileRdrPass const CPatchRdrPass   pass [private]
 

Definition at line 1631 of file landscape.cpp.

References ItTileRdrPassSet, and TileRdrPassSet.

Referenced by loadTile.

ITexture * NL3D::CLandscape::findTileTexture const std::string &    textName [private]
 

Definition at line 1611 of file landscape.cpp.

References TileTextureMap.

Referenced by loadTile.

void NL3D::CLandscape::flushTiles IDriver   drv,
uint16    tileStart,
uint16    nbTiles
 

Force a range of tiles to be loaded in the driver...

Definition at line 1856 of file landscape.cpp.

References ItTileRdrPassSet, loadTile, TileInfos, and TileRdrPassSet.

void NL3D::CLandscape::forceMergeAtTileLevel   [private]
 

For changing TileMaxSubdivision. force tesselation to be under tile.

Definition at line 376 of file landscape.cpp.

References NL3D::ItZoneMap, and Zones.

Referenced by setTileMaxSubdivision.

void NL3D::CLandscape::freeFarRenderPass CPatch   pPatch,
CPatchRdrPass   pass,
uint    farIndex
[private]
 

Definition at line 2110 of file landscape.cpp.

References _FarRdrPassSetVectorFree, _ULTotalFarPixels, eraseFarRenderPassFromSet, getRdrPassIndexWithSize, height, NL_NUM_PIXELS_ON_FAR_TILE_EDGE, nlassert, and width.

const CVector& NL3D::CLandscape::getAutomaticLightDir   const [inline]
 

return the light direction setuped in enableAutomaticLighting().

Definition at line 393 of file landscape.h.

References _AutomaticLightDir.

bool NL3D::CLandscape::getAutomaticLighting   const [inline]
 

return true if AutomaticLighting is enabled.

Definition at line 391 of file landscape.h.

References _AutomaticLighting.

CRGBA NL3D::CLandscape::getDLMGlobalVegetableColor   const [inline]
 

see setDLMGlobalVegetableColor().

Definition at line 584 of file landscape.h.

References _DLMGlobalVegetableColor.

float NL3D::CLandscape::getDynamicLightingMaxAttEnd   const [inline]
 

see setDynamicLightingMaxAttEnd().

Definition at line 575 of file landscape.h.

References _DLMMaxAttEnd.

uint NL3D::CLandscape::getDynamicLightingMemoryLoad   const
 

For bench only.

return approximate ammount of memory taken by dynamic lightmap in RAM. This is sizeof(global Texture in RAM) + all patchDLMContext. NB: not so slow, but do not call in final release.

Definition at line 3522 of file landscape.cpp.

References _PatchDLMContextList, NL3D_LANDSCAPE_DLM_HEIGHT, and NL3D_LANDSCAPE_DLM_WIDTH.

CPatchRdrPass * NL3D::CLandscape::getFarRenderPass CPatch   pPatch,
uint    farIndex,
float &    far1UScale,
float &    far1VScale,
float &    far1UBias,
float &    far1VBias,
bool &    bRot
[private]
 

Definition at line 2047 of file landscape.cpp.

References _FarRdrPassSet, _FarRdrPassSetVectorFree, _ULRootTextureFar, _ULTotalFarPixels, getRdrPassIndexWithSize, height, NL_NUM_PIXELS_ON_FAR_TILE_EDGE, nlassert, TileFarBank, and width.

CVector NL3D::CLandscape::getHeightFieldDeltaZ float    x,
float    y
const
 

return the HeightField DeltaZ for the 2D position. (0,0,dZ) is returned.

Definition at line 2707 of file landscape.cpp.

References _HeightField, NL3D::CLandscape::CHeightField::Height, NL3D::CLandscape::CHeightField::OOSizeX, NL3D::CLandscape::CHeightField::OOSizeY, NL3D::CLandscape::CHeightField::OriginX, NL3D::CLandscape::CHeightField::OriginY, NL3D::CLandscape::CHeightField::Width, x, y, and NL3D::CLandscape::CHeightField::ZPatchs.

uint8 NL3D::CLandscape::getLumel const CPatchIdent   patchId,
const CUV &    uv
const
 

Get the lumel under the position. return 255 if invalid patchId.

Definition at line 3188 of file landscape.cpp.

References CPatch, nlassert, and Zones.

bool NL3D::CLandscape::getNoiseMode   const
 

Definition at line 3040 of file landscape.cpp.

References _NoiseEnabled.

uint NL3D::CLandscape::getNumVegetableFaceRendered   const
 

return the number of faces displayed in Driver with the vegetable manager.

Out CPrimitiveProfile::NTriangles displayed by vegetable part is returned.

Definition at line 3145 of file landscape.cpp.

References _VegetableManager.

CPatchDLMContextList* NL3D::CLandscape::getPatchDLMContextList   const [inline, private]
 

for CPatch.

Definition at line 963 of file landscape.h.

CRGBA NL3D::CLandscape::getPointLightDiffuseMaterial   const [inline]
 

See also:
setPointLightDiffuseMaterial

Definition at line 372 of file landscape.h.

References _PointLightDiffuseMaterial.

const CVector& NL3D::CLandscape::getPZBModelPosition   const [inline]
 

See also:
setPZBModelPosition().

Definition at line 526 of file landscape.h.

References _PZBModelPosition.

uint NL3D::CLandscape::getRdrPassIndexWithSize uint    width,
uint    height
[static, private]
 

Definition at line 2530 of file landscape.cpp.

References height, NL_MAX_SIZE_OF_TEXTURE_EDGE_SHIFT, nlassert, and width.

Referenced by CLandscape, freeFarRenderPass, and getFarRenderPass.

bool NL3D::CLandscape::getRefineMode   const [inline]
 

Definition at line 200 of file landscape.h.

References _RefineMode.

const CRGBA* NL3D::CLandscape::getStaticLight   const [inline]
 

Get the light color by shading table.

Returns:
a CRGBA[256] array. It give the static light color for a shading value.

Definition at line 358 of file landscape.h.

References _LightValue.

CVector NL3D::CLandscape::getTesselatedPos const CPatchIdent   patchId,
const CUV &    uv
const
 

From the current tesselation of a patch of landscape, and a UV in this patch, return tesselated position.

NB: return Null if patch not found.

Definition at line 2479 of file landscape.cpp.

References _OldRefineCenter, _Threshold, _TileDistNear, _VertexShaderOk, CPatch, nlassert, NLMISC::sqr, and Zones.

void NL3D::CLandscape::getTessellationLeaves std::vector< const CTessFace * > &    leaves const
 

From the current tesselation of landscape, build the list of leaves faces.

Warning: ptrs are only valid between 2 tesselation (2 calls of Scene::render() or 2 calls of refine*() etc...)

Definition at line 2908 of file landscape.cpp.

References CPatch, and Zones.

CTextureDLM* NL3D::CLandscape::getTextureDLM   const [inline, private]
 

for CPatch.

Definition at line 959 of file landscape.h.

float NL3D::CLandscape::getThreshold   const [inline]
 

Get threshold.

Definition at line 198 of file landscape.h.

CTileElement * NL3D::CLandscape::getTileElement const CPatchIdent   patchId,
const CUV &    uv
 

Return the tile element for a patch at specific UV. UseFull for getting surface data. Return NULL if not found.

Definition at line 1837 of file landscape.cpp.

References CPatch, nlassert, and Zones.

uint NL3D::CLandscape::getTileLightMap CRGBA    map[NL_TILE_LIGHTMAP_SIZE *NL_TILE_LIGHTMAP_SIZE],
CPatchRdrPass *&    lightmapRdrPass
[private]
 

Definition at line 1917 of file landscape.cpp.

References _NFreeLightMaps, _TextureNears, _ULTotalNearPixels, NL3D::NbTileLightMapByTexture, NL_TILE_LIGHTMAP_SIZE, nlassert, and NL3D::TextureNearSize.

void NL3D::CLandscape::getTileLightMapUvInfo uint    tileLightMapId,
CVector &    uvScaleBias
[private]
 

Definition at line 1975 of file landscape.cpp.

References id, NL3D::NbTileLightMapByLine, NL3D::NbTileLightMapByTexture, NL_TILE_LIGHTMAP_SIZE, s, t, and NL3D::TextureNearSize.

uint NL3D::CLandscape::getTileMaxSubdivision  
 

Get Maximum Tile subdivision.

Definition at line 358 of file landscape.cpp.

References _TileMaxSubdivision.

float NL3D::CLandscape::getTileNear   const [inline]
 

Get tile near distance.

Definition at line 194 of file landscape.h.

CPatchRdrPass * NL3D::CLandscape::getTileRenderPass uint16    tileId,
bool    additiveRdrPass
[private]
 

Definition at line 1762 of file landscape.cpp.

References loadTile, nlassert, and TileInfos.

Referenced by getTileTexture.

NLMISC::CSmartPtr< ITexture > NL3D::CLandscape::getTileTexture uint16    tileId,
CTile::TBitmap    bitmapType,
CVector &    uvScaleBias
 

Return the texture for a tile Id. UseFull for Tile edition.

Definition at line 1816 of file landscape.cpp.

References getTileRenderPass, and getTileUvScaleBiasRot.

void NL3D::CLandscape::getTileUvScaleBiasRot uint16    tileId,
CTile::TBitmap    bitmapType,
CVector &    uvScaleBias,
uint8   rotAlpha
[private]
 

Definition at line 1792 of file landscape.cpp.

References nlassert, and TileInfos.

Referenced by getTileTexture.

const CTileVegetableDesc & NL3D::CLandscape::getTileVegetableDesc uint16    tileId [private]
 

For a given tile Id, look into tileSet, and get the tile vegetable descriptor.

Parameters:
tileId  the tile [0..65535] to get the list of vegetable to create.

Definition at line 3152 of file landscape.cpp.

References TileBank.

const CZone * NL3D::CLandscape::getZone sint    zoneId const
 

Get a zone pointer.

Parameters:
zoneId  the zone of the update.
Returns:
Return a zone pointer. NULL if the zone doesn't exist or isn't loaded.

Definition at line 2201 of file landscape.cpp.

References Zones.

CZone * NL3D::CLandscape::getZone sint    zoneId
 

Get a zone pointer.

Parameters:
zoneId  the zone of the update.
Returns:
Return a zone pointer. NULL if the zone doesn't exist or isn't loaded.

Definition at line 2189 of file landscape.cpp.

References Zones.

Referenced by checkZoneBinds, NL3D::CZoneLighter::processCalc, and NL3D::CZoneLighter::processZonePointLightRT.

void NL3D::CLandscape::getZoneList std::vector< uint16 > &    zoneIds const
 

Return list of zone loaded.

Definition at line 505 of file landscape.cpp.

References Zones.

Referenced by clear.

void NL3D::CLandscape::init  
 

init the landscape VBuffers, texture cache etc...

Definition at line 290 of file landscape.cpp.

References _PatchQuadGrid, _PatchQuadGridEltSize, _PatchQuadGridSize, FarMaterial, and TileMaterial.

bool NL3D::CLandscape::initTileBanks  
 

Build tileBank.

Call this after loading the near and far tile banks.

Returns:
true if ok, false else. If false, far texture will be desactived.

Definition at line 2602 of file landscape.cpp.

References _FarInitialized, _VegetableManager, eraseTileFarIfNotGood, NL_TILE_FAR_SIZE_ORDER0, NL_TILE_FAR_SIZE_ORDER1, NL_TILE_FAR_SIZE_ORDER2, TileBank, and TileFarBank.

bool NL3D::CLandscape::isVegetableActive   const
 

return if the vegetable management is actually activated: actually return _VerexShaderOk && _VegetableEnabled.

Definition at line 3102 of file landscape.cpp.

References _DriverOkForVegetable, and _VegetableManagerEnabled.

Referenced by render.

void NL3D::CLandscape::linkPatchToNearUL CPatch   patch [private]
 

Used by Patch to link/unlink from _ULRootNearPatch.

Definition at line 3331 of file landscape.cpp.

References _ULRootNearPatch.

void NL3D::CLandscape::loadTile uint16    tileId [private]
 

Definition at line 1642 of file landscape.cpp.

References findTileRdrPass, findTileTexture, nlassert, nldebug, TileBank, and TileInfos.

Referenced by flushTiles, and getTileRenderPass.

void NL3D::CLandscape::loadVegetableTexture const std::string &    textureFileName
 

load a texture for the vegetable, lookup in CPath.

void NL3D::CLandscape::lockBuffers   [private]
 

Definition at line 868 of file landscape.cpp.

References _Far0VB, _Far1VB, _TileVB, _VegetableManager, and _VertexShaderOk.

Referenced by render, and updateGlobalsAndLockBuffers.

CTessFace * NL3D::CLandscape::newTessFace   [private]
 

Definition at line 2944 of file landscape.cpp.

References _RootNewLeaves, CTessFace, and TessFaceAllocator.

CTessFarVertex * NL3D::CLandscape::newTessFarVertex   [private]
 

Definition at line 2968 of file landscape.cpp.

References TessFarVertexAllocator.

CTessNearVertex * NL3D::CLandscape::newTessNearVertex   [private]
 

Definition at line 2962 of file landscape.cpp.

References TessNearVertexAllocator.

CTessVertex * NL3D::CLandscape::newTessVertex   [private]
 

Definition at line 2956 of file landscape.cpp.

References TessVertexAllocator.

CTileFace * NL3D::CLandscape::newTileFace   [private]
 

Definition at line 2980 of file landscape.cpp.

References TileFaceAllocator.

CTileMaterial * NL3D::CLandscape::newTileMaterial   [private]
 

Definition at line 2974 of file landscape.cpp.

References TileMaterialAllocator.

void NL3D::CLandscape::refillTileLightMap uint    tileLightMapId,
CRGBA    map[NL_TILE_LIGHTMAP_SIZE *NL_TILE_LIGHTMAP_SIZE]
[private]
 

Definition at line 2020 of file landscape.cpp.

References _TextureNears, id, NL3D::NbTileLightMapByTexture, NL_TILE_LIGHTMAP_SIZE, and nlassert.

void NL3D::CLandscape::refine const CVector &    refineCenter
 

Refine/Geomorph the tesselation of the landscape.

Definition at line 611 of file landscape.cpp.

References _MergePriorityList, _OldRefineCenter, _OldRefineCenterSetuped, _RefineMode, _RootNewLeaves, _SplitPriorityList, _VegetableBlockList, _VegetableManager, CTessFace, H_AUTO, NL3D_PROFILE_LAND_ADD, NL3D_PROFILE_LAND_SET, NL3D::OptFastFloorBegin, NL3D::OptFastFloorEnd, NL3D::ProfNMerges, NL3D::ProfNRefineComputeFaces, NL3D::ProfNRefineFaces, NL3D::ProfNRefineInTileTransition, NL3D::ProfNRefineLeaves, NL3D::ProfNRefineWithLowDistance, NL3D::ProfNSplits, NL3D::ProfNSplitsPass, unlockBuffers, updateGlobalsAndLockBuffers, and updateTessBlocksFaceVector.

void NL3D::CLandscape::refineAll const CVector &    refineCenter
 

Refine/Geomorph ALL the tesselation of the landscape, from the view point refineCenter. Even if !RefineMode.

Definition at line 743 of file landscape.cpp.

References NL3D::ItZoneMap, unlockBuffers, updateGlobalsAndLockBuffers, updateTessBlocksFaceVector, and Zones.

void NL3D::CLandscape::releaseTile uint16    tileId [private]
 

Definition at line 1744 of file landscape.cpp.

References nlassert, and TileInfos.

Referenced by releaseTiles.

void NL3D::CLandscape::releaseTileLightMap uint    tileLightMapId [private]
 

Definition at line 1998 of file landscape.cpp.

References _NFreeLightMaps, _TextureNears, _ULTotalNearPixels, id, NL3D::NbTileLightMapByTexture, NL_TILE_LIGHTMAP_SIZE, and nlassert.

void NL3D::CLandscape::releaseTiles uint16    tileStart,
uint16    nbTiles
 

Force a range of tiles to be loaded in the driver...

Definition at line 1884 of file landscape.cpp.

References ItTileRdrPassSet, releaseTile, TileInfos, and TileRdrPassSet.

void NL3D::CLandscape::removeAllPointLights  
 

This method remove all PointLights in all Zones, and hence reset TileLightInfluences.

Definition at line 3232 of file landscape.cpp.

References CPatch, NL3D::ItZoneMap, and Zones.

void NL3D::CLandscape::removePatch   [private]
 

bool NL3D::CLandscape::removeZone uint16    zoneId
 

remove a zone by its unique Id.

The zone is release()-ed (disconnected), then deleted.

Parameters:
zoneId  the zone to be removed.
Returns:
true if OK, false otherwise. As example, Fail if zone is not connected.

Definition at line 450 of file landscape.cpp.

References _PatchQuadGrid, CZone, nlassert, unlockBuffers, updateGlobalsAndLockBuffers, updateTessBlocksFaceVector, and Zones.

Referenced by clear.

void NL3D::CLandscape::render const CVector &    refineCenter,
const CVector &    frontVector,
const CPlane    pyramid[NL3D_TESSBLOCK_NUM_CLIP_PLANE],
bool    doTileAddPass = false
 

Render the landscape.

A more precise clip is made on TessBlocks. pyramid should be the same as one passed to clip(). For optimisation, this pyramid should contains only the Left/Right and Top/Bottom clip planes, in this order.

Parameters:
refineCenter  should be the position of the camera
frontVector  should be the J vector of the camera

Definition at line 945 of file landscape.cpp.

References _DLMGlobalVegetableColor, _Driver, _Far0VB, _Far1VB, _FarRdrPassSet, _PatchDLMContextList, _PointLightDiffuseMaterial, _PZBModelPosition, _RenderMustRefillVB, _TextureDLM, _TextureNears, _TileVB, _VegetableManager, _VertexShaderOk, _VPThresholdChange, CPatch, NL3D::drawPassTriArray, FarMaterial, NL3D::initPassTriArray, isVegetableActive, ItSPRenderPassSet, ItTileRdrPassSet, NL3D::ItZoneMap, lockBuffers, min, NL3D::NL3D_LandscapeGlobals_PassNTri, NL3D_MAX_TILE_PASS, NL3D_PROFILE_LAND_SET, NL3D_TESSBLOCK_NUM_CLIP_PLANE, NL3D_TILE_PASS_ADD, NL3D_TILE_PASS_LIGHTMAP, NL3D_TILE_PASS_RGB0, NL3D_TILE_PASS_RGB1, NL3D_TILE_PASS_RGB2, nlassert, nlstop, NL3D::ProfNRdrFar0, NL3D::ProfNRdrFar1, NL3D::ProfNRdrTile, synchronizeATIVBHards, TileMaterial, TileRdrPassSet, unlockBuffers, updateGlobalsAndLockBuffers, v, and Zones.

void NL3D::CLandscape::resetRenderFarAndDeleteVBFV   [private]
 

Definition at line 365 of file landscape.cpp.

References NL3D::ItZoneMap, and Zones.

Referenced by setTileNear.

void NL3D::CLandscape::setDLMGlobalVegetableColor CRGBA    gvc
 

For Vegetable Dynamic ligthing only: this is an approximate color of all vegetables.

Default is (180, 180, 180).

Definition at line 3544 of file landscape.cpp.

References _DLMGlobalVegetableColor.

void NL3D::CLandscape::setDriver IDriver   drv
 

A driver is needed for VB allocation.

The VB will be allocated only the first time the landscape is clipped. Because no VB are created for invisible patchs. call setDriver() before any clip().

Definition at line 569 of file landscape.cpp.

References _Driver, _DriverOkForVegetable, _VertexShaderOk, NL3D_LANDSCAPE_VEGETABLE_MAX_AGP_VERTEX_MAX, and nlassert.

void NL3D::CLandscape::setDynamicLightingMaxAttEnd float    maxAttEnd
 

Set PointLight Max Attenuation End landscape support.

Every pointLight AttEnd is clamped to this value. Default is 30.f.

Definition at line 3514 of file landscape.cpp.

References _DLMMaxAttEnd.

void NL3D::CLandscape::setHeightField const CHeightMap   hf
 

set the HeightField data.

NB: take lot of place in memory. only one is possible. You should setup this heightfield around the zones which will be loaded. It is applied only when a zone is loaded, so you should setup it 2km around the user, each time you move too far from a previous place (eg 160m from last setup).

Definition at line 2793 of file landscape.cpp.

References _HeightField, NL3D::CLandscape::CHeightField::Height, NL3D::CLandscape::CHeightField::OOSizeX, NL3D::CLandscape::CHeightField::OOSizeY, NL3D::CLandscape::CHeightField::OriginX, NL3D::CLandscape::CHeightField::OriginY, NL3D::CLandscape::CHeightField::SizeX, NL3D::CLandscape::CHeightField::SizeY, v, w, NL3D::CLandscape::CHeightField::Width, x, y, and NL3D::CLandscape::CHeightField::ZPatchs.

void NL3D::CLandscape::setNoiseMode bool    enabled
 

Enable the noise or not. NB: only new tesselation computed is modified, so you should call it only at init time.

Definition at line 3034 of file landscape.cpp.

References _NoiseEnabled.

void NL3D::CLandscape::setPointLightDiffuseMaterial CRGBA    diffuse
 

Setup the equivalent material diffuse component used for both Static and Dynamic PointLights.

Default is White.

Definition at line 3551 of file landscape.cpp.

References _PointLightDiffuseMaterial.

void NL3D::CLandscape::setPointLightFactor const std::string &    lightGroupName,
NLMISC::CRGBA    nFactor
 

set the Light factor for all pointLights in All zones with LightGroupName= "lightGroupName".

Additionaly, it stores a map<lightGroupName, NLMISC::CRGBA nFactor>, so each added zone will be correclty assigned.

Definition at line 3253 of file landscape.cpp.

References _LightGroupColorMap, NL3D::ItZoneMap, and Zones.

void NL3D::CLandscape::setPZBModelPosition const CVector &    pos
 

Set the ModelPosition (for Precision ZBuffer purpose).

NB: the model Pos may be floor-ed (for greater float precision). Should be setup to the camera position each frame.

NB: if vertexProgram is used, it is as faster as before (because of geomorph done each frame, and because of VP MAD instruction). NB: if vertexProgram is not used, it is a little slower, because of the substraction.

Definition at line 2929 of file landscape.cpp.

References _PZBModelPosition.

void NL3D::CLandscape::setRefineMode bool    enabled [inline]
 

Definition at line 199 of file landscape.h.

References _RefineMode.

void NL3D::CLandscape::setThreshold float    thre
 

Set threshold for subdivsion quality. The lower is threshold, the more the landscape is subdivided. Default: 0.001.

Definition at line 320 of file landscape.cpp.

References _Threshold, and _VPThresholdChange.

void NL3D::CLandscape::setTileMaxSubdivision uint    tileDiv
 

Set Maximum Tile subdivision. Valid values must be in [0..4] (assert). Default is 0 (for now :) ).

Definition at line 346 of file landscape.cpp.

References _TileMaxSubdivision, forceMergeAtTileLevel, and nlassert.

void NL3D::CLandscape::setTileNear float    tileNear
 

Set tile near distance. Default 50.f. maximized to length of Far alpha transition).

Definition at line 332 of file landscape.cpp.

References _FarTransition, _TileDistNear, and resetRenderFarAndDeleteVBFV.

void NL3D::CLandscape::setupAutomaticLightDir const CVector &    lightDir
 

For automatic near lightmap computing (if enabled): setup the lightdir.

Parameters:
lightDir  is the direction of the light vector used for the lighting. NB: the vector is normalized.

Definition at line 2699 of file landscape.cpp.

References _AutomaticLightDir.

void NL3D::CLandscape::setupColorsFromTileFlags const NLMISC::CRGBA    colors[4]
 

Debug purpose only : setup the colors of the patch of all the currently loaded zones so that it shows which tiles have vegetable disabled, or are above, below water.

User provides a table with 4 colors for each state : color 0 = above water color 1 = underwater color 2 = intersect water color 3 = vegetable disabled

Definition at line 3172 of file landscape.cpp.

References Zones.

void NL3D::CLandscape::setUpdateLightingFrequency float    freq
 

set the frequency of lighting update.

If freq==1, ALL patchs are updated each second. e.g: if 1/20, then every 20 seconds, all patchs are updated. If you set 0, no update will be done at all (this is the default setup!!).

Definition at line 3323 of file landscape.cpp.

References _ULFrequency.

void NL3D::CLandscape::setupStaticLight const CRGBA &    diffuse,
const CRGBA &    ambiant,
float    multiply
 

Setup the light color use for static illumination.

Parameters:
diffuse  is the color of the diffuse componante of the lighting.
ambiant  is the color of the ambiante componante of the lighting.
multiply  is the multiply factor. Final color is (diffuse*multiply*shading+ambiant*(1.0-shading))

Definition at line 2660 of file landscape.cpp.

References _LightValue, NLMISC::clamp, and r.

Referenced by CLandscape.

void NL3D::CLandscape::setupVegetableLighting const CRGBA &    ambient,
const CRGBA &    diffuse,
const CVector &    directionalLight
 

setup lighting ambient and diffuse for vegetable.

Definition at line 3115 of file landscape.cpp.

References _VegetableManager.

void NL3D::CLandscape::setVegetableTime double    time
 

set the vegetable manager Time (in seconds) NB: MOT stuff (called by CLandscapeModel), don't use it.

Definition at line 3130 of file landscape.cpp.

References _VegetableManager.

void NL3D::CLandscape::setVegetableUpdateLightingFrequency float    freq
 

set the frequency of Vegetable lighting update.

If freq==1, ALL lighted igs are updated each second. e.g: if 1/20, then every 20 seconds, all Igs are updated. If you set 0, no update will be done at all (this is the default setup!!).

Definition at line 3166 of file landscape.cpp.

References _VegetableManager.

void NL3D::CLandscape::setVegetableUpdateLightingTime double    time
 

set the vegetable manager System Time (in seconds) for update lighting NB: MOT stuff (called by CLandscapeModel), don't use it.

Definition at line 3137 of file landscape.cpp.

References _VegetableManager.

void NL3D::CLandscape::setVegetableWind const CVector &    windDir,
float    windFreq,
float    windPower,
float    windBendMin
 

set the vegetable Wind for animation.

All thoses variables may be modified each frame without penalty.

Parameters:
windDir  is the direction of the wind. NB: only XY direction is kept.
windFreq  is the frequency for the animation (speed)
windPower  is the power of the wind, and is a factor (0..1) of Bend
windBendMin  is a value in (0..1) which indicate how much the vegetables are bended at minimum (for very powerfull wind)

Definition at line 3122 of file landscape.cpp.

References _VegetableManager.

void NL3D::CLandscape::synchronizeATIVBHards   [private]
 

Definition at line 894 of file landscape.cpp.

References _Far0VB, _Far1VB, and _TileVB.

Referenced by render.

void NL3D::CLandscape::unlinkPatchFromNearUL CPatch   patch [private]
 

Definition at line 3341 of file landscape.cpp.

References _ULNearCurrentTessBlockId, and _ULRootNearPatch.

void NL3D::CLandscape::unlockBuffers   [private]
 

Definition at line 883 of file landscape.cpp.

References _Far0VB, _Far1VB, _TileVB, and _VegetableManager.

Referenced by addZone, averageTesselationVertices, clip, computeDynamicLighting, refine, refineAll, removeZone, render, and updateLightingAll.

void NL3D::CLandscape::updateGlobalsAndLockBuffers const CVector &    refineCenter [private]
 

Definition at line 805 of file landscape.cpp.

References _Driver, _Far0VB, _Far1VB, _FarTransition, _PZBModelPosition, _Threshold, _TileDistNear, _TileMaxSubdivision, _TileVB, _VegetableManager, lockBuffers, and NLMISC::sqr.

Referenced by addZone, averageTesselationVertices, clip, computeDynamicLighting, refine, refineAll, removeZone, render, and updateLightingAll.

void NL3D::CLandscape::updateLighting double    time
 

update the lighting of patch, within a certain amount of time.

called by CLandscapeModel

Definition at line 3267 of file landscape.cpp.

References _ULFrequency, _ULPrecTime, _ULPrecTimeInit, _ULTime, updateLightingTextureFar, and updateLightingTextureNear.

void NL3D::CLandscape::updateLightingAll  
 

update the lighting of ALL patch (slow method).

NB: work even if UpdateLightingFrequency==0 Additionaly, vegetables are also ALL updated.

Definition at line 3294 of file landscape.cpp.

References _VegetableManager, NL3D::OptFastFloorBegin, NL3D::OptFastFloorEnd, unlockBuffers, updateGlobalsAndLockBuffers, updateLightingTextureFar, and updateLightingTextureNear.

void NL3D::CLandscape::updateLightingTextureFar float    ratio [private]
 

Update All Far texture, given a ratio along total lumels.

Definition at line 3361 of file landscape.cpp.

References _ULFarCurrentPatchId, _ULFarPixelsToUpdate, _ULRootTextureFar, _ULTotalFarPixels, min, and NL_NUM_FAR_PATCHES_BY_TEXTURE.

Referenced by updateLighting, and updateLightingAll.

void NL3D::CLandscape::updateLightingTextureNear float    ratio [private]
 

Update All Near texture, given a ratio along total lumels.

Definition at line 3398 of file landscape.cpp.

References _ULNearCurrentTessBlockId, _ULNearPixelsToUpdate, _ULRootNearPatch, _ULTotalNearPixels, and min.

Referenced by updateLighting, and updateLightingAll.

void NL3D::CLandscape::updateTessBlocksFaceVector   [private]
 

Definition at line 902 of file landscape.cpp.

References _TessBlockModificationRoot, and CPatch.

Referenced by addZone, averageTesselationVertices, clip, refine, refineAll, and removeZone.


Friends And Related Function Documentation

friend class CPatch [friend]
 

Definition at line 594 of file landscape.h.

Referenced by addPatchBlocksInBBox, addTrianglesInBBox, addZone, appendTileLightInfluences, buildCollideFaces, computeDynamicLighting, enableVegetable, fillPatchQuadBlock, getLumel, getTesselatedPos, getTessellationLeaves, getTileElement, removeAllPointLights, render, and updateTessBlocksFaceVector.

friend class CTessFace [friend]
 

Definition at line 593 of file landscape.h.

Referenced by newTessFace, and refine.

friend class CZone [friend]
 

Definition at line 595 of file landscape.h.

Referenced by addZone, checkZoneBinds, and removeZone.


Member Data Documentation

CVector NL3D::CLandscape::_AutomaticLightDir [private]
 

Definition at line 764 of file landscape.h.

Referenced by CLandscape, getAutomaticLightDir, and setupAutomaticLightDir.

bool NL3D::CLandscape::_AutomaticLighting [private]
 

Definition at line 763 of file landscape.h.

Referenced by CLandscape, enableAutomaticLighting, and getAutomaticLighting.

CRGBA NL3D::CLandscape::_DLMGlobalVegetableColor [private]
 

an approximate value used to simulate diffuse material of vegetables.

Definition at line 968 of file landscape.h.

Referenced by CLandscape, getDLMGlobalVegetableColor, render, and setDLMGlobalVegetableColor.

float NL3D::CLandscape::_DLMMaxAttEnd [private]
 

Max AttEnd.

Definition at line 965 of file landscape.h.

Referenced by CLandscape, computeDynamicLighting, getDynamicLightingMaxAttEnd, and setDynamicLightingMaxAttEnd.

CRefPtr<IDriver> NL3D::CLandscape::_Driver [private]
 

Definition at line 676 of file landscape.h.

Referenced by clear, render, setDriver, and updateGlobalsAndLockBuffers.

bool NL3D::CLandscape::_DriverOkForVegetable [private]
 

Tells if the current dirver support vegetable.

Definition at line 891 of file landscape.h.

Referenced by CLandscape, isVegetableActive, and setDriver.

CLandscapeFaceVectorManager NL3D::CLandscape::_FaceVectorManager [private]
 

Definition at line 623 of file landscape.h.

CLandscapeVBAllocator NL3D::CLandscape::_Far0VB [private]
 

Definition at line 677 of file landscape.h.

Referenced by clear, lockBuffers, render, synchronizeATIVBHards, unlockBuffers, and updateGlobalsAndLockBuffers.

CLandscapeVBAllocator NL3D::CLandscape::_Far1VB [private]
 

Definition at line 678 of file landscape.h.

Referenced by clear, lockBuffers, render, synchronizeATIVBHards, unlockBuffers, and updateGlobalsAndLockBuffers.

bool NL3D::CLandscape::_FarInitialized [private]
 

Definition at line 749 of file landscape.h.

Referenced by CLandscape, and initTileBanks.

TSPRenderPassSet NL3D::CLandscape::_FarRdrPassSet [private]
 

Definition at line 747 of file landscape.h.

Referenced by clear, eraseFarRenderPassFromSet, getFarRenderPass, and render.

TSPRdrPassSetVector NL3D::CLandscape::_FarRdrPassSetVectorFree [private]
 

Definition at line 748 of file landscape.h.

Referenced by CLandscape, clear, freeFarRenderPass, and getFarRenderPass.

float NL3D::CLandscape::_FarTransition [private]
 

Definition at line 669 of file landscape.h.

Referenced by CLandscape, setTileNear, and updateGlobalsAndLockBuffers.

CHeightField NL3D::CLandscape::_HeightField [private]
 

Definition at line 831 of file landscape.h.

Referenced by getHeightFieldDeltaZ, and setHeightField.

TLightGroupColorMap NL3D::CLandscape::_LightGroupColorMap [private]
 

Definition at line 769 of file landscape.h.

Referenced by addZone, and setPointLightFactor.

CRGBA NL3D::CLandscape::_LightValue[256] [private]
 

Definition at line 761 of file landscape.h.

Referenced by getStaticLight, and setupStaticLight.

CTessFacePriorityList NL3D::CLandscape::_MergePriorityList [private]
 

The priority list of faces which may need to merge.

Definition at line 874 of file landscape.h.

Referenced by CLandscape, and refine.

uint NL3D::CLandscape::_NFreeLightMaps [private]
 

Definition at line 729 of file landscape.h.

Referenced by CLandscape, getTileLightMap, and releaseTileLightMap.

bool NL3D::CLandscape::_NoiseEnabled [private]
 

Definition at line 865 of file landscape.h.

Referenced by CLandscape, getNoiseMode, and setNoiseMode.

CVector NL3D::CLandscape::_OldRefineCenter [private]
 

OldRefineCenter setuped in prec refine().

Definition at line 876 of file landscape.h.

Referenced by CLandscape, getTesselatedPos, and refine.

bool NL3D::CLandscape::_OldRefineCenterSetuped [private]
 

Definition at line 877 of file landscape.h.

Referenced by CLandscape, and refine.

CPatchDLMContextList* NL3D::CLandscape::_PatchDLMContextList [private]
 

List of DLM Context.

Definition at line 961 of file landscape.h.

Referenced by CLandscape, computeDynamicLighting, getDynamicLightingMemoryLoad, render, and ~CLandscape.

CQuadGrid<CPatchIdentEx> NL3D::CLandscape::_PatchQuadGrid [private]
 

The QuadGrid of patch.

Definition at line 844 of file landscape.h.

Referenced by addZone, buildPatchBlocksInBBox, buildTrianglesInBBox, clear, computeDynamicLighting, init, and removeZone.

const float NL3D::CLandscape::_PatchQuadGridEltSize = 16 [static, private]
 

Definition at line 100 of file landscape.cpp.

Referenced by init.

const uint NL3D::CLandscape::_PatchQuadGridSize = 128 [static, private]
 

Definition at line 98 of file landscape.cpp.

Referenced by init.

CRGBA NL3D::CLandscape::_PointLightDiffuseMaterial [private]
 

The diffuse material of landscape, used for StaticPointLights and DynamicPointLights.

Definition at line 971 of file landscape.h.

Referenced by CLandscape, computeDynamicLighting, getPointLightDiffuseMaterial, render, and setPointLightDiffuseMaterial.

CVector NL3D::CLandscape::_PZBModelPosition [private]
 

See also:
setPZBModelPosition().

Definition at line 907 of file landscape.h.

Referenced by CLandscape, getPZBModelPosition, render, setPZBModelPosition, and updateGlobalsAndLockBuffers.

bool NL3D::CLandscape::_RefineMode [private]
 

Definition at line 668 of file landscape.h.

Referenced by CLandscape, getRefineMode, refine, and setRefineMode.

bool NL3D::CLandscape::_RenderMustRefillVB [private]
 

Definition at line 683 of file landscape.h.

Referenced by CLandscape, and render.

CTessFacePListNode NL3D::CLandscape::_RootNewLeaves [private]
 

newTessFace() append the face to _RootNewLeaves.

Definition at line 879 of file landscape.h.

Referenced by newTessFace, and refine.

CTessFacePriorityList NL3D::CLandscape::_SplitPriorityList [private]
 

The priority list of faces which may need to split.

Definition at line 872 of file landscape.h.

Referenced by CLandscape, and refine.

CTessBlock NL3D::CLandscape::_TessBlockModificationRoot [private]
 

Definition at line 626 of file landscape.h.

Referenced by averageTesselationVertices, clip, and updateTessBlocksFaceVector.

NLMISC::CSmartPtr<ITexture> NL3D::CLandscape::_TextureDLM [private]
 

The dynamic lightmap Texture.

Definition at line 957 of file landscape.h.

Referenced by CLandscape, render, and ~CLandscape.

std::vector<TSPRenderPass> NL3D::CLandscape::_TextureNears [private]
 

Definition at line 728 of file landscape.h.

Referenced by getTileLightMap, refillTileLightMap, releaseTileLightMap, and render.

float NL3D::CLandscape::_Threshold [private]
 

Definition at line 667 of file landscape.h.

Referenced by CLandscape, getTesselatedPos, setThreshold, and updateGlobalsAndLockBuffers.

float NL3D::CLandscape::_TileDistNear [private]
 

Definition at line 666 of file landscape.h.

Referenced by CLandscape, getTesselatedPos, setTileNear, and updateGlobalsAndLockBuffers.

uint NL3D::CLandscape::_TileMaxSubdivision [private]
 

Definition at line 670 of file landscape.h.

Referenced by CLandscape, getTileMaxSubdivision, setTileMaxSubdivision, and updateGlobalsAndLockBuffers.

CLandscapeVBAllocator NL3D::CLandscape::_TileVB [private]
 

Definition at line 679 of file landscape.h.

Referenced by clear, lockBuffers, render, synchronizeATIVBHards, unlockBuffers, and updateGlobalsAndLockBuffers.

uint NL3D::CLandscape::_ULFarCurrentPatchId [private]
 

Current patch id in the current TextureFar processed.

Definition at line 928 of file landscape.h.

Referenced by CLandscape, eraseFarRenderPassFromSet, and updateLightingTextureFar.

float NL3D::CLandscape::_ULFarPixelsToUpdate [private]
 

Current number of far pixels to update. If negative, I have some advance.

Definition at line 924 of file landscape.h.

Referenced by CLandscape, and updateLightingTextureFar.

float NL3D::CLandscape::_ULFrequency [private]
 

Frequency of update.

Definition at line 918 of file landscape.h.

Referenced by CLandscape, setUpdateLightingFrequency, and updateLighting.

uint NL3D::CLandscape::_ULNearCurrentTessBlockId [private]
 

Current tessBlock id in the current patch processed.

Definition at line 938 of file landscape.h.

Referenced by CLandscape, unlinkPatchFromNearUL, and updateLightingTextureNear.

float NL3D::CLandscape::_ULNearPixelsToUpdate [private]
 

Current number of near pixels to update. If negative, I have some advance.

Definition at line 934 of file landscape.h.

Referenced by CLandscape, and updateLightingTextureNear.

double NL3D::CLandscape::_ULPrecTime [private]
 

Definition at line 914 of file landscape.h.

Referenced by updateLighting.

bool NL3D::CLandscape::_ULPrecTimeInit [private]
 

Definition at line 915 of file landscape.h.

Referenced by CLandscape, and updateLighting.

CPatch* NL3D::CLandscape::_ULRootNearPatch [private]
 

The current patch rendered.

Definition at line 936 of file landscape.h.

Referenced by CLandscape, linkPatchToNearUL, unlinkPatchFromNearUL, and updateLightingTextureNear.

CTextureFar* NL3D::CLandscape::_ULRootTextureFar [private]
 

The current TextureFar rendered.

Definition at line 926 of file landscape.h.

Referenced by CLandscape, eraseFarRenderPassFromSet, getFarRenderPass, and updateLightingTextureFar.

double NL3D::CLandscape::_ULTime [private]
 

Definition at line 916 of file landscape.h.

Referenced by updateLighting.

sint NL3D::CLandscape::_ULTotalFarPixels [private]
 

Far UpdateLighting.

Definition at line 922 of file landscape.h.

Referenced by CLandscape, freeFarRenderPass, getFarRenderPass, and updateLightingTextureFar.

sint NL3D::CLandscape::_ULTotalNearPixels [private]
 

Near UpdateLighting.

Definition at line 932 of file landscape.h.

Referenced by CLandscape, getTileLightMap, releaseTileLightMap, and updateLightingTextureNear.

CTessList<CLandscapeVegetableBlock> NL3D::CLandscape::_VegetableBlockList [private]
 

List of VegetableBlock, to be tested for creation each frame.

Definition at line 894 of file landscape.h.

Referenced by refine.

CVegetableManager* NL3D::CLandscape::_VegetableManager [private]
 

The VegetableManager. (ptr only for include speed).

Definition at line 886 of file landscape.h.

Referenced by CLandscape, createVegetableBlendLayersModels, enableVegetable, getNumVegetableFaceRendered, initTileBanks, lockBuffers, refine, render, setupVegetableLighting, setVegetableTime, setVegetableUpdateLightingFrequency, setVegetableUpdateLightingTime, setVegetableWind, unlockBuffers, updateGlobalsAndLockBuffers, updateLightingAll, and ~CLandscape.

bool NL3D::CLandscape::_VegetableManagerEnabled [private]
 

Tells if the Vegetable Managemnt is enabled.

Definition at line 889 of file landscape.h.

Referenced by CLandscape, enableVegetable, and isVegetableActive.

bool NL3D::CLandscape::_VertexShaderOk [private]
 

Definition at line 681 of file landscape.h.

Referenced by CLandscape, getTesselatedPos, lockBuffers, render, and setDriver.

float NL3D::CLandscape::_VPThresholdChange [private]
 

Definition at line 672 of file landscape.h.

Referenced by CLandscape, render, and setThreshold.

CMaterial NL3D::CLandscape::FarMaterial [private]
 

Definition at line 736 of file landscape.h.

Referenced by init, and render.

CBlockMemory<CTessFace> NL3D::CLandscape::TessFaceAllocator [private]
 

Definition at line 601 of file landscape.h.

Referenced by deleteTessFace, and newTessFace.

CBlockMemory<CTessFarVertex> NL3D::CLandscape::TessFarVertexAllocator [private]
 

Definition at line 604 of file landscape.h.

Referenced by deleteTessFarVertex, and newTessFarVertex.

CBlockMemory<CTessNearVertex> NL3D::CLandscape::TessNearVertexAllocator [private]
 

Definition at line 603 of file landscape.h.

Referenced by deleteTessNearVertex, and newTessNearVertex.

CBlockMemory<CTessVertex> NL3D::CLandscape::TessVertexAllocator [private]
 

Definition at line 602 of file landscape.h.

Referenced by deleteTessVertex, and newTessVertex.

CTileBank NL3D::CLandscape::TileBank
 

Definition at line 142 of file landscape.h.

Referenced by enableVegetable, getTileVegetableDesc, initTileBanks, and loadTile.

CBlockMemory<CTileFace> NL3D::CLandscape::TileFaceAllocator [private]
 

Definition at line 606 of file landscape.h.

Referenced by deleteTileFace, and newTileFace.

CTileFarBank NL3D::CLandscape::TileFarBank
 

Definition at line 143 of file landscape.h.

Referenced by eraseTileFarIfNotGood, getFarRenderPass, and initTileBanks.

std::vector<CTileInfo*> NL3D::CLandscape::TileInfos [private]
 

Definition at line 725 of file landscape.h.

Referenced by CLandscape, flushTiles, getTileRenderPass, getTileUvScaleBiasRot, loadTile, releaseTile, and releaseTiles.

CMaterial NL3D::CLandscape::TileMaterial [private]
 

Definition at line 733 of file landscape.h.

Referenced by init, and render.

CBlockMemory<CTileMaterial> NL3D::CLandscape::TileMaterialAllocator [private]
 

Definition at line 605 of file landscape.h.

Referenced by deleteTileMaterial, and newTileMaterial.

TTileRdrPassSet NL3D::CLandscape::TileRdrPassSet [private]
 

Definition at line 723 of file landscape.h.

Referenced by findTileRdrPass, flushTiles, releaseTiles, and render.

TTileTextureMap NL3D::CLandscape::TileTextureMap [private]
 

Definition at line 721 of file landscape.h.

Referenced by findTileTexture.

TZoneMap NL3D::CLandscape::Zones [private]
 

Definition at line 663 of file landscape.h.

Referenced by addZone, appendTileLightInfluences, averageTesselationVertices, buildCollideFaces, clip, enableVegetable, excludePatchFromRefineAll, fillPatchQuadBlock, forceMergeAtTileLevel, getLumel, getTesselatedPos, getTessellationLeaves, getTileElement, getZone, getZoneList, refineAll, removeAllPointLights, removeZone, render, resetRenderFarAndDeleteVBFV, setPointLightFactor, and setupColorsFromTileFlags.


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