#include <TerrainMod.h>
Public Member Functions | |
InnerTerrainModLevel (TerrainMod &terrainMod) | |
Ctor. | |
virtual | ~InnerTerrainModLevel () |
Dtor. | |
virtual bool | parseAtlasData (const Atlas::Message::MapType &modElement) |
virtual Mercator::TerrainMod * | getModifier () |
Protected Attributes | |
InnerTerrainMod_impl * | mModifier_impl |
A reference to inner mod implementation. |
Eris::InnerTerrainModLevel::InnerTerrainModLevel | ( | TerrainMod & | terrainMod | ) |
Mercator::TerrainMod * Eris::InnerTerrainModLevel::getModifier | ( | ) | [virtual] |
Accessor for the Mercator::TerrainMod created and held by this instance.
If no terrain mod could be created, such as with faulty Atlas data, or if parseAtlasData() hasn't been called yet, this will return a null pointer.
Implements Eris::InnerTerrainMod.
References Eris::InnerTerrainMod_impl::getModifier(), and mModifier_impl.
bool Eris::InnerTerrainModLevel::parseAtlasData | ( | const Atlas::Message::MapType & | modElement | ) | [virtual] |
Tries to parse the Atlas data.
It's up to the specific subclasses to provide proper parsing of the data depending on their needs. If the data is successfully parsed, a new Mercator::TerrainMod instance will be created.
modElement | The Atlas element describing the terrainmod. This should in most instances correspond directly to the "terrainmod" element found in the root atlas attribute map. |
Implements Eris::InnerTerrainMod.
References Eris::InnerTerrainModLevel_impl< Shape >::createInstance(), Eris::TerrainMod::getEntity(), Eris::Entity::getOrientation(), mModifier_impl, Eris::InnerTerrainMod::mTerrainMod, Eris::InnerTerrainMod::parsePosition(), and Eris::InnerTerrainMod::parseShape().
A reference to inner mod implementation.
This is separate from this class because of the heavy use of templated shapes. The ownership is ours, so it will be destroyed when this instance is destroyed.
Referenced by getModifier(), parseAtlasData(), and ~InnerTerrainModLevel().