mercator 0.4.0
A terrain generation library for the Worldforge system.
DepthShader.h
1// This file may be redistributed and modified only under the terms of
2// the GNU General Public License (See COPYING for details).
3// Copyright (C) 2003 Alistair Riddoch
4
5#ifndef MERCATOR_FILL_DEPTH_SHADER_H
6#define MERCATOR_FILL_DEPTH_SHADER_H
7
8#include "Shader.h"
9
10namespace Mercator {
11
19class DepthShader : public Shader {
20 private:
22 float m_waterLevel;
24 float m_murkyDepth;
25 public:
27 static const std::string key_waterLevel;
29 static const std::string key_murkyDepth;
30
32 static const float default_waterLevel;
34 static const float default_murkyDepth;
35
45 explicit DepthShader(const Parameters & params);
46 ~DepthShader() override;
47
49 float waterLevel() const { return m_waterLevel; }
51 float murkyDepth() const { return m_murkyDepth; }
52
53 bool checkIntersect(const Segment &) const override;
54 void shade(Surface &) const override;
55};
56
57} // namespace Mercator
58
59#endif // MERCATOR_FILL_DEPTH_SHADER_H
Shader to give the appearance of deep murky water.
Definition: DepthShader.h:19
static const float default_murkyDepth
Default depth at which the bottom becomes completely obscured.
Definition: DepthShader.h:34
static const std::string key_murkyDepth
Key string used when specifying the murky depth parameter.
Definition: DepthShader.h:29
float waterLevel() const
Accessor for the level of the surface of the water.
Definition: DepthShader.h:49
void shade(Surface &) const override
Populate a Surface with data.
Definition: DepthShader.cpp:59
bool checkIntersect(const Segment &) const override
Check whether this Shader has any effect on the given Segment.
Definition: DepthShader.cpp:50
DepthShader(float waterLevel=default_waterLevel, float murkyDepth=default_murkyDepth)
Constructor.
Definition: DepthShader.cpp:29
static const std::string key_waterLevel
Key string used when specifying the water level parameter.
Definition: DepthShader.h:27
static const float default_waterLevel
Default level of the surface of the water.
Definition: DepthShader.h:32
float murkyDepth() const
Accessor for the depth at which the bottom becomes completely obscured.
Definition: DepthShader.h:51
Class storing heightfield and other data for a single fixed size square area of terrain defined by fo...
Definition: Segment.h:37
Base class for Shader objects which create surface data for use when rendering terrain.
Definition: Shader.h:25
std::map< std::string, float > Parameters
STL map of parameter values for a shader constructor.
Definition: Shader.h:59
Data store for terrain surface data.
Definition: Surface.h:23