Mercator
|
Base class for modifiers to the procedurally generated terrain. More...
#include <TerrainMod.h>
Public Member Functions | |
int | addToSegment (Segment &) const |
void | updateToSegment (Segment &) const |
void | removeFromSegment (Segment &) const |
void | setFunction (effector_func f) |
Change the function used to apply this mod to existing points. | |
virtual void | apply (float &point, int x, int y) const =0 |
Apply this modifier on a terrain segment. More... | |
![]() | |
Context * | context () const |
void | setContext (Context *) |
const WFMath::AxisBox< 2 > & | bbox () const |
Accessor for the bounding box of the geometric shape. | |
virtual bool | checkIntersects (const Segment &s) const =0 |
Protected Attributes | |
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. | |
Context * | m_context |
The application context of this effector. | |
Additional Inherited Members | |
![]() | |
Effector () | |
Constructor. | |
Effector (const Effector &) | |
Copy constructor. | |
Effector & | operator= (const Effector &) |
Assignment. | |
Base class for modifiers to the procedurally generated terrain.
Anything that modifies the terrain implements this interface.
|
pure virtual |
Apply this modifier on a terrain segment.
The segment is at x,y in local coordinates. Output is placed into point.
Implemented in Mercator::CraterTerrainMod< Shape >, Mercator::SlopeTerrainMod< Shape >, Mercator::AdjustTerrainMod< Shape >, and Mercator::LevelTerrainMod< Shape >.
Referenced by Mercator::AdjustTerrainMod< Shape >::AdjustTerrainMod(), Mercator::Segment::applyMod(), Mercator::CraterTerrainMod< Shape >::CraterTerrainMod(), Mercator::LevelTerrainMod< Shape >::LevelTerrainMod(), setFunction(), and Mercator::SlopeTerrainMod< Shape >::SlopeTerrainMod().
|
protected |
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()
Referenced by Mercator::LevelTerrainMod< Shape >::apply(), and Mercator::SlopeTerrainMod< Shape >::apply().