mercator 0.4.0
A terrain generation library for the Worldforge system.
|
Terrain modifier which is defined by a shape variable. More...
#include <TerrainMod.h>
Public Member Functions | |
ShapeTerrainMod (const Shape< 2 > &s) | |
Constructor. More... | |
bool | checkIntersects (const Segment &s) const override |
void | setShape (const Shape< 2 > &s) |
void | setFunction (effector_func f) |
Change the function used to apply this mod to existing points. More... | |
virtual void | apply (float &point, int x, int z) const =0 |
Apply this modifier on a terrain segment. More... | |
Context * | context () const |
void | setContext (std::unique_ptr< Context > context) |
const WFMath::AxisBox< 2 > & | bbox () const |
Accessor for the bounding box of the geometric shape. More... | |
Protected Attributes | |
Shape< 2 > | m_shape |
Shape of the modifier. More... | |
effector_func | m_function |
Function used to apply this mod to existing points. More... | |
WFMath::AxisBox< 2 > | m_box |
The bounding box of the geometric shape. More... | |
std::unique_ptr< Context > | m_context |
The application context of this effector. More... | |
Terrain modifier which is defined by a shape variable.
This template extends TerrainMod by adding the ability to query the bounding box of the shape that defines this modification to the terrain.
Definition at line 52 of file TerrainMod.h.
|
explicit |
Constructor.
s | shape of the modifier. |
Definition at line 15 of file TerrainMod_impl.h.
References Mercator::Effector::m_box, and Mercator::ShapeTerrainMod< Shape >::m_shape.
|
pure virtualinherited |
Apply this modifier on a terrain segment.
The segment is at x,y in local coordinates. Output is placed into point.
Implemented in Mercator::LevelTerrainMod< Shape >, Mercator::AdjustTerrainMod< Shape >, Mercator::SlopeTerrainMod< Shape >, and Mercator::CraterTerrainMod< Shape >.
|
inlineinherited |
Accessor for the bounding box of the geometric shape.
Definition at line 37 of file Effector.h.
References Mercator::Effector::m_box.
Referenced by Mercator::Forest::populate().
|
overridevirtual |
Implements Mercator::Effector.
Definition at line 24 of file TerrainMod_impl.h.
|
inlineinherited |
Definition at line 32 of file Effector.h.
|
inherited |
Definition at line 12 of file Effector.cpp.
|
inlineinherited |
Change the function used to apply this mod to existing points.
Definition at line 36 of file TerrainMod.h.
References Mercator::TerrainMod::m_function.
void Mercator::ShapeTerrainMod< Shape >::setShape | ( | const Shape< 2 > & | s | ) |
Definition at line 31 of file TerrainMod_impl.h.
|
protectedinherited |
The bounding box of the geometric shape.
Definition at line 57 of file Effector.h.
Referenced by Mercator::Effector::bbox(), Mercator::Area::contains(), Mercator::Effector::operator=(), Mercator::Area::setShape(), and Mercator::ShapeTerrainMod< Shape >::ShapeTerrainMod().
|
protectedinherited |
The application context of this effector.
Definition at line 60 of file Effector.h.
Referenced by Mercator::Effector::operator=().
|
protectedinherited |
Function used to apply this mod to existing points.
This makes the basic mods much more powerful without the need for extra classes. It completely obsoletes AdjustTerrainMod, which is now the same as LevelTerrainMod with this function changed from set() to sum()
Definition at line 29 of file TerrainMod.h.
Referenced by Mercator::TerrainMod::setFunction().
|
protected |
Shape of the modifier.
Definition at line 67 of file TerrainMod.h.
Referenced by Mercator::ShapeTerrainMod< Shape >::ShapeTerrainMod().