mercator
0.4.0
A terrain generation library for the Worldforge system.
|
Shader for adding grass to the terrain. More...
#include <GrassShader.h>
Public Types | |
typedef std::map< std::string, float > | Parameters |
STL map of parameter values for a shader constructor. More... | |
Public Member Functions | |
GrassShader (float lowThreshold=default_lowThreshold, float highThreshold=default_highThreshold, float cutoff=default_cutoff, float intercept=default_intercept) | |
Constructor. More... | |
GrassShader (const Parameters ¶ms) | |
Constructor. More... | |
float | lowThreshold () const |
Accessor for level above which the shader renders. More... | |
float | highThreshold () const |
Accessor for level below which the shader renders. More... | |
float | cutoff () const |
Accessor for slope below which grass is opaque. More... | |
float | intercept () const |
Accessor for slope steeper than which no grass grows. More... | |
bool | checkIntersect (const Segment &) const override |
Check whether this Shader has any effect on the given Segment. More... | |
void | shade (Surface &) const override |
Populate a Surface with data. More... | |
bool | getColor () const |
Accessor for color flag. More... | |
bool | getAlpha () const |
Accessor for alpha flag. More... | |
std::unique_ptr< Surface > | newSurface (const Segment &) const |
Create a new Surface which matches the requirements of this shader. More... | |
Static Public Attributes | |
static const std::string | key_lowThreshold |
Key string used when specifying the low threshold parameter. More... | |
static const std::string | key_highThreshold |
Key string used when specifying the high threshold parameter. More... | |
static const std::string | key_cutoff |
Key string used when specifying the cutoff parameter. More... | |
static const std::string | key_intercept |
Key string used when specifying the intercept parameter. More... | |
static const float | default_lowThreshold = 1.f |
Default level above which the shader renders. More... | |
static const float | default_highThreshold = 20.f |
Default level below which the shader renders. More... | |
static const float | default_cutoff = 1.f |
Default slope below which grass is opaque. More... | |
static const float | default_intercept = 2.f |
Default slope steeper than which no grass grows. More... | |
Shader for adding grass to the terrain.
This shader is used to add grassy vegetation to some terrain. The mask generated by this shader depends on two factors. The altitude of the terrain, and its slope. Two parameter specify the low and high altitude values between which vegetation grows. The low value will typically be just above sea level, and the high value could be anything up to the height above which plants cannot grow.
Definition at line 50 of file GrassShader.h.
|
inherited |
|
explicit |
Constructor.
lowThreshold | level above which the shader renders. |
highThreshold | level above which the shader renders. |
cutoff | slope below which grass is opaque. |
intercept | slope steeper than which no grass grows. |
Definition at line 30 of file GrassShader.cpp.
|
explicit |
Constructor.
params | a map of parameters for the shader. |
Definition at line 37 of file GrassShader.cpp.
References key_cutoff, key_highThreshold, key_intercept, and key_lowThreshold.
|
overridevirtual |
Check whether this Shader has any effect on the given Segment.
Implements Mercator::Shader.
Definition at line 78 of file GrassShader.cpp.
References Mercator::Segment::getMax(), and Mercator::Segment::getMin().
|
inline |
Accessor for slope below which grass is opaque.
Definition at line 108 of file GrassShader.h.
|
inlineinherited |
|
inlineinherited |
|
inline |
Accessor for level below which the shader renders.
Definition at line 106 of file GrassShader.h.
|
inline |
Accessor for slope steeper than which no grass grows.
Definition at line 110 of file GrassShader.h.
|
inline |
Accessor for level above which the shader renders.
Definition at line 104 of file GrassShader.h.
Create a new Surface which matches the requirements of this shader.
Called by terrain when creating a new Segment to add the necessary Surface objects to that Segment.
Definition at line 27 of file Shader.cpp.
Referenced by Mercator::Terrain::addShader().
|
overridevirtual |
Populate a Surface with data.
Implements Mercator::Shader.
Definition at line 88 of file GrassShader.cpp.
References Mercator::Segment::get(), Mercator::Buffer< DataType >::getChannels(), Mercator::Buffer< DataType >::getData(), Mercator::Segment::getPoints(), Mercator::Segment::getResolution(), Mercator::Surface::getSegment(), and Mercator::Segment::getSize().
|
static |
Default slope below which grass is opaque.
Definition at line 83 of file GrassShader.h.
|
static |
Default level below which the shader renders.
Definition at line 81 of file GrassShader.h.
|
static |
Default slope steeper than which no grass grows.
Definition at line 85 of file GrassShader.h.
|
static |
Default level above which the shader renders.
Definition at line 79 of file GrassShader.h.
|
static |
Key string used when specifying the cutoff parameter.
Definition at line 74 of file GrassShader.h.
Referenced by GrassShader().
|
static |
Key string used when specifying the high threshold parameter.
Definition at line 72 of file GrassShader.h.
Referenced by GrassShader().
|
static |
Key string used when specifying the intercept parameter.
Definition at line 76 of file GrassShader.h.
Referenced by GrassShader().
|
static |
Key string used when specifying the low threshold parameter.
Definition at line 70 of file GrassShader.h.
Referenced by GrassShader().