proland::WaterElevationLayer Class Reference

An ElevationGraphLayer for rivers and lakes graphs. More...

#include <WaterElevationLayer.h>

Inheritance diagram for proland::WaterElevationLayer:
proland::ElevationGraphLayer proland::GraphLayer proland::CurveDataFactory proland::GraphListener

List of all members.

Classes

class  WaterElevationCurveData
 An ElevationCurveData for river elevation profiles. More...
class  WaterElevationMargin
 An ElevationMargin for rivers and lakes. More...

Public Member Functions

 WaterElevationLayer (ptr< GraphProducer > graphProducer, ptr< Program > layerProgram, ptr< Program > fillProg, ptr< TileProducer > elevations, int displayLevel=0, bool quality=true, bool deform=false)
 Creates a new WaterElevationLayer.
virtual ~WaterElevationLayer ()
 Deletes this WaterOrthoLayer.
virtual CurveDatanewCurveData (CurveId id, CurvePtr flattenCurve)
 Returns a new CurveData, whose type depends on the class that implements CurveDataFactory.

Protected Member Functions

 WaterElevationLayer ()
 Creates an uninitialized WaterOrthoLayer.
void init (ptr< GraphProducer > graphProducer, ptr< Program > layerProgram, ptr< Program > fillProg, ptr< TileProducer > elevations, int displayLevel=0, bool quality=true, bool deform=false)
 Initializes this WaterElevationLayer.

Protected Attributes

ptr< Program > fillProg
 The Program to be used to draw the large rivers and the lakes in this layer.

Private Attributes

ptr< Mesh< vec2f, unsigned int > > mesh
 The mesh used for drawing tesselated areas (large rivers and lakes).
ptr< Mesh< vec4f, unsigned int > > meshuv
 The mesh used for drawing small rivers and the axis of large rivers.
ptr< Tesselatortess
 The tesselator used for drawing areas (large rivers and lakes).

Detailed Description

An ElevationGraphLayer for rivers and lakes graphs.

Authors:
Antoine Begault, Eric Bruneton, Guillaume Piolat

Constructor & Destructor Documentation

proland::WaterElevationLayer::WaterElevationLayer ( ptr< GraphProducer graphProducer,
ptr< Program >  layerProgram,
ptr< Program >  fillProg,
ptr< TileProducer >  elevations,
int  displayLevel = 0,
bool  quality = true,
bool  deform = false 
)

Creates a new WaterElevationLayer.

Parameters:
graphProducer the GraphProducer that produces the Graph tiles that this layer must draw.
layerProgram the Program to be used to draw the rivers in this layer.
fillProg the Program to be used to draw the large rivers and the lakes in this layer.
elevations the producer used to compute raw terrain elevations, themselves used to compute ElevationCurveData objects.
displayLevel the tile level to start display. Tiles whole level is less than displayLevel are not drawn by this Layer, and graphProducer is not asked to produce the corresponding graph tiles.
quality enable or not the quality mode (better display).
deform whether we apply a spherical deformation on the layer or not.
virtual proland::WaterElevationLayer::~WaterElevationLayer (  )  [virtual]

Deletes this WaterOrthoLayer.

proland::WaterElevationLayer::WaterElevationLayer (  )  [protected]

Creates an uninitialized WaterOrthoLayer.


Member Function Documentation

void proland::WaterElevationLayer::init ( ptr< GraphProducer graphProducer,
ptr< Program >  layerProgram,
ptr< Program >  fillProg,
ptr< TileProducer >  elevations,
int  displayLevel = 0,
bool  quality = true,
bool  deform = false 
) [protected]

Initializes this WaterElevationLayer.

Parameters:
graphProducer the GraphProducer that produces the Graph tiles that this layer must draw.
layerProgram the Program to be used to draw the rivers in this layer.
fillProg the Program to be used to draw the large rivers and the lakes in this layer.
elevations the producer used to compute raw terrain elevations, themselves used to compute ElevationCurveData objects.
displayLevel the tile level to start display. Tiles whole level is less than displayLevel are not drawn by this Layer, and graphProducer is not asked to produce the corresponding graph tiles.
quality enable or not the quality mode (better display).
deform whether we apply a spherical deformation on the layer or not.
virtual CurveData* proland::WaterElevationLayer::newCurveData ( CurveId  id,
CurvePtr  flattenCurve 
) [virtual]

Returns a new CurveData, whose type depends on the class that implements CurveDataFactory.

Parameters:
id the CurveId of the described Curve.
flattenCurve flattened version of the described Curve.

Reimplemented from proland::CurveDataFactory.


Member Data Documentation

ptr<Program> proland::WaterElevationLayer::fillProg [protected]

The Program to be used to draw the large rivers and the lakes in this layer.

ptr< Mesh<vec2f, unsigned int> > proland::WaterElevationLayer::mesh [private]

The mesh used for drawing tesselated areas (large rivers and lakes).

Contains vertex positions.

ptr< Mesh<vec4f, unsigned int> > proland::WaterElevationLayer::meshuv [private]

The mesh used for drawing small rivers and the axis of large rivers.

Contains vertex positions and UV attributes. The position is set to the vertex x,y coordinates. The u attribute contains the vertex z coordinate, and the v attribute the signed distance to the river axis (divided by the river width).

The tesselator used for drawing areas (large rivers and lakes).


Generated on Sat May 12 09:42:46 2012 for proland by  doxygen 1.6.1