i6engine  1.0
i6e::api::TerrainAppearanceComponent Class Reference

Tells the engine what heightmap and texture to use when rendering the GameObject. For creating a TerrainAppearanceComponent, these keys are possible:

Name Required Type Description Public
heightmap yes std::string heightmap used for this terrain, either this or heightdata required, if both are provided, heightdata is used yes
heightdata yes std::vector<std::vector<double>> heightdata used for this terrain, either this or heightmap required, if both are provided, heightdata is used yes
size yes double expansion of the terrain yes
inputScale yes double scale factor for the terrain heights, highest point of heightmap gets this height yes
vertices yes uint32_t vertices along an edge, must be 2^n + 1 yes
layers yes uint32_t amount of layers on the terrain yes
minX yes int64_t minimum X for duplicates of the terrain yes
maxX yes int64_t maximum X for duplicates of the terrain yes
minY yes int64_t maximum Y for duplicates of the terrain yes
maxY yes int64_t maximum Y for duplicates of the terrain yes
layer__size yes double size of the texture units for every layer yes
layer__diffusespecular yes std::string diffuse and specular map for every layer yes
layer__normal yes std::string normal and displacement map for every layer yes
layer__minHeight yes double minimum height where this layer shall appear, for every layer except the first yes
layer__fadeDist yes double defines how fast the layers are blend over, for every layer except the first yes
More...

#include <D:/Projekte/i6engine/libs/i6engine-modules/include/i6engine/api/components/TerrainAppearanceComponent.h>

Public Member Functions

 TerrainAppearanceComponent (const int64_t id, const attributeMap &params)
 
 ~TerrainAppearanceComponent ()
 
std::string getHeightmap () const
 Gets the GameObject's heightmap. More...
 
double getSize () const
 Gets the GameObject's size. More...
 
void setHeightAtPosition (size_t x, size_t z, double height)
 sets the height at a defined position in the terrain coordinates in vertices More...
 
void setHeightAtPosition (const Vec3 &pos, double height)
 sets the height at a defined position in the terrain position is a real world position More...
 
double getHeightAtPosition (size_t x, size_t z) const
 gets the height at a defined position in the terrain coordinates in vertices More...
 
double getHeightAtPosition (const Vec3 &pos) const
 gets the height at a defined position in the terrain position is a real world position More...
 
void saveCollisionShape (const std::string &outFile, const std::function< void(void)> &cb)
 saves collision shape as bullet collisionshape to given file calls callback after collision shape was exported More...
 
attributeMap synchronize () const override
 synchronizes the Components state More...
 
std::string getTemplateName () const override
 returns the name this template was registered with More...
 
std::vector< componentOptionsgetComponentOptions () override
 returns a vector containing all options of the Component being readable and writeable in the editor More...
 
- Public Member Functions inherited from i6e::api::Component
 Component ()
 Constructor for Component. More...
 
 Component (const int64_t id, const attributeMap &params)
 Constructor for Component. More...
 
virtual ~Component ()
 Destructor of Component. Must be implemented in derived class. More...
 
void setOwnerGO (const WeakGOPtr &objGo)
 Sets the GameObject that owns this Component. More...
 
GOPtr getOwnerGO ()
 Get the GameObject that owns this Component. More...
 
uint32_t getComponentID () const
 Returns the component identification string. More...
 
uint32_t getFamilyID () const
 Returns the family identification string. More...
 
std::string getIdentifier () const
 Returns the family identification string. More...
 
virtual void Tick ()
 Components can have Tick method like normal Subsystems this method is called by the ObjectController during every Tick if the component registered itself at the ObjectFacade. More...
 
void setDie () const
 component will be deleted soon More...
 
int64_t getID () const
 returns the id of the component More...
 
virtual void News (const GameMessage::Ptr &msg)
 Receives messages for this component override this function, if you expect messages. More...
 
void setSync (bool b)
 sets whether this object has to be synchronized or not More...
 
bool getSync () const
 
void enableTicking (bool allowTicking) const
 triggers doEnableTicking threadsafe More...
 
virtual std::pair< AddStrategy, int64_t > howToAdd (const ComPtr &comp) const
 asks, how to handle a new component with the same type More...
 
void setSelf (const WeakComPtr &self)
 sets weak_ptr on self for registration of ticker More...
 
std::vector< ComPtrgetSubComponents () const
 returns all SubComponents attached to this Component More...
 

Additional Inherited Members

- Static Public Member Functions inherited from i6e::api::Component
template<typename T >
static ComPtr createC (const int64_t id, const attributeMap &params)
 
- Protected Member Functions inherited from i6e::api::Component
void addTicker ()
 adds this component to ticklist More...
 
void removeTicker ()
 removes this component from ticklist More...
 
void doEnableTicking (bool allowTicking)
 sets ticking status for this Component per default all Components are allowed to tick and calling addTicker will start ticking, but in some cases, e.g. for level editor, ticking has to be disabled and just a few components are allowed to tick More...
 
- Protected Attributes inherited from i6e::api::Component
int64_t _objOwnerID
 ID of the GameObject that owns this Component. More...
 
WeakGOPtr _objOwnerGO
 Owning GameObject. More...
 
uint32_t _objComponentID
 Component ID of the Component. More...
 
uint32_t _objFamilyID
 Family ID of the Component. More...
 
std::vector< ComPtr_subComps
 vector containing the other componetns of the same type if this is the dispatcher component More...
 
std::string _identifier
 identifies the subcomponent More...
 
int64_t _id
 id of this component More...
 
bool _sync
 
WeakComPtr _self
 a weak_ptr on the own shared_ptr More...
 
bool _tickingAllowed
 status if this object is allowed to tick or not More...
 
bool _wantsToTick
 stores if a Component which isn't allowed to tick want to tick, so it can start ticking when ticking will be allowed More...
 
bool _isTicking
 stores whether this Component is actually ticking More...
 

Detailed Description

Tells the engine what heightmap and texture to use when rendering the GameObject. For creating a TerrainAppearanceComponent, these keys are possible:

Name Required Type Description Public
heightmap yes std::string heightmap used for this terrain, either this or heightdata required, if both are provided, heightdata is used yes
heightdata yes std::vector<std::vector<double>> heightdata used for this terrain, either this or heightmap required, if both are provided, heightdata is used yes
size yes double expansion of the terrain yes
inputScale yes double scale factor for the terrain heights, highest point of heightmap gets this height yes
vertices yes uint32_t vertices along an edge, must be 2^n + 1 yes
layers yes uint32_t amount of layers on the terrain yes
minX yes int64_t minimum X for duplicates of the terrain yes
maxX yes int64_t maximum X for duplicates of the terrain yes
minY yes int64_t maximum Y for duplicates of the terrain yes
maxY yes int64_t maximum Y for duplicates of the terrain yes
layer__size yes double size of the texture units for every layer yes
layer__diffusespecular yes std::string diffuse and specular map for every layer yes
layer__normal yes std::string normal and displacement map for every layer yes
layer__minHeight yes double minimum height where this layer shall appear, for every layer except the first yes
layer__fadeDist yes double defines how fast the layers are blend over, for every layer except the first yes

Definition at line 55 of file TerrainAppearanceComponent.h.

Constructor & Destructor Documentation

i6e::api::TerrainAppearanceComponent::TerrainAppearanceComponent ( const int64_t  id,
const attributeMap params 
)
i6e::api::TerrainAppearanceComponent::~TerrainAppearanceComponent ( )

Member Function Documentation

std::vector<componentOptions> i6e::api::TerrainAppearanceComponent::getComponentOptions ( )
overridevirtual

returns a vector containing all options of the Component being readable and writeable in the editor

Implements i6e::api::Component.

double i6e::api::TerrainAppearanceComponent::getHeightAtPosition ( size_t  x,
size_t  z 
) const

gets the height at a defined position in the terrain coordinates in vertices

double i6e::api::TerrainAppearanceComponent::getHeightAtPosition ( const Vec3 pos) const

gets the height at a defined position in the terrain position is a real world position

std::string i6e::api::TerrainAppearanceComponent::getHeightmap ( ) const
inline

Gets the GameObject's heightmap.

Definition at line 63 of file TerrainAppearanceComponent.h.

double i6e::api::TerrainAppearanceComponent::getSize ( ) const
inline

Gets the GameObject's size.

Definition at line 68 of file TerrainAppearanceComponent.h.

std::string i6e::api::TerrainAppearanceComponent::getTemplateName ( ) const
inlineoverridevirtual

returns the name this template was registered with

Implements i6e::api::Component.

Definition at line 105 of file TerrainAppearanceComponent.h.

void i6e::api::TerrainAppearanceComponent::saveCollisionShape ( const std::string &  outFile,
const std::function< void(void)> &  cb 
)

saves collision shape as bullet collisionshape to given file calls callback after collision shape was exported

void i6e::api::TerrainAppearanceComponent::setHeightAtPosition ( size_t  x,
size_t  z,
double  height 
)

sets the height at a defined position in the terrain coordinates in vertices

void i6e::api::TerrainAppearanceComponent::setHeightAtPosition ( const Vec3 pos,
double  height 
)

sets the height at a defined position in the terrain position is a real world position

attributeMap i6e::api::TerrainAppearanceComponent::synchronize ( ) const
overridevirtual

synchronizes the Components state

Implements i6e::api::Component.


The documentation for this class was generated from the following file: