Programming
Fundamentials
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Bounds-Related Classes
Containers
Controls-Related Classes
Core Library
Engine-Related Classes
GUI-Related Classes
Node-Related Classes
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes
Utility Classes

ObjectTerrain Class

Interface for object terrain handling. See also the UnigineScript analog.

To use this class, include the UnigineObjectTerrain.h file.

ObjectTerrain Class

Members


ObjectTerrain ()

Constructor. Creates a new terrain object with default properties.

ObjectTerrain (const char * name)

Constructor. Creates a new terrain object from a given file.

Arguments

  • const char * name - Name of the terrain file.

int getSurfaceIndexTextureImage (int x, int y, const Ptr<Image> & image)

Exports an index texture of the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const Ptr<Image> & image - Image to export a texture into.

Return value

1 if the export was successful; otherwise, 0.

void setShadowDistance (float distance)

Sets the distance up to which the terrain relief casts shadows.

Arguments

  • float distance - Shadow distance, in units.

int setHoles (int x, int y, const Ptr<Image> & image)

Imports a holes texture for the terrain.

Arguments

  • int x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • int y - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.
  • const Ptr<Image> & image - Holes texture. Only R8 format is acceptable.

Return value

1 if the holes texture is imported successfully; otherwise, 0.

void setMaterialDiffuseScale (int num, float scale)

Sets the visibility scale of a diffuse texture assigned to the specified detail material. The default is 0.5.

Arguments

  • int num - Material number.
  • float scale - Visibility scale value. The provided value is saturated in range [0.0;1.0].

int setSurfaceIndexTextureImage (int x, int y, const Ptr<Image> & image)

Imports an index texture for the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const Ptr<Image> & image - Index texture.

Return value

1 if the texture has been set successfully; otherwise - 0.

int isSurfaceEnabled (int x, int y)

Returns a value indicating whether a specified surface is enabled or disabled for rendering.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

1 if the surface is enabled; otherwise, 0.

void setMaterialSpecularScale (int num, float scale)

Sets the visibility scale of a specular texture assigned to the specified detail material. The default is 0.5.

Arguments

  • int num - Material number.
  • float scale - Visibility scale value. The provided value is saturated in range [0.0;1.0].

float getMaterialSpecularScale (int num)

Returns the visibility scale of a specular texture assigned to the specified detail material.

Arguments

  • int num - Material number.

Return value

Visibility scale value.

void setLodTerrainTop (const Ptr<ObjectTerrain> & top)

Sets the new top LOD for the current terrain.

Arguments

  • const Ptr<ObjectTerrain> & top - Top LOD.

int setHeights (int x, int y, const Ptr<Image> & image, float scale = 1.0f)

Imports a new height map for the terrain.

Arguments

  • int x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • int y - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.
  • const Ptr<Image> & image - Height map. The following formats are acceptable: R8, RG8, RGB8, R16, R16F, R32F.
  • float scale - Height map scale.

Return value

Returns 1 if the height map is imported successfully; otherwise, 0.

Ptr<ObjectTerrain> getLodTerrainLeft ()

Returns the left LOD of the current terrain.

Return value

Left LOD.

int getHeights (int x, int y, int width, int height, const Ptr<Image> & image, int format, float scale = 1.0f)

Exports a height map into the R16 image. The sum of the X coordinate of the point on the terrain grid and the width of the exported image must be less than or equal to the maximum terrain width. The sum of the Y coordinate of the point on the terrain grid and the height of the exported image must be less than or equal to the maximum terrain length.

Arguments

  • int x - X coordinate of the point on the terrain grid.
  • int y - Y coordinate of the point on the terrain grid.
  • int width - Width of the exported image, in grid points.
  • int height - Height of the exported image, in grid points.
  • const Ptr<Image> & image - Image to export a height map into.
  • int format - Image format. The following formats are acceptable: R8, RG8, RGB8, R16, R16F, R32F.
  • float scale - Height map scale.

Return value

1 if the height map is exported successfully; otherwise, 0.

int getNormals (int x, int y, int width, int height, const Ptr<Image> & image)

Exports a normal map into the RG8 image. The sum of the X coordinate of the point on the terrain grid and the width of the exported image must be less than or equal to the maximum terrain width. The sum of the Y coordinate of the point on the terrain grid and the height of the exported image must be less than or equal to the maximum terrain length.

Arguments

  • int x - X coordinate of the point on the terrain grid.
  • int y - Y coordinate of the point on the terrain grid.
  • int width - Width of the exported image, in grid points.
  • int height - Height of the exported image, in grid points.
  • const Ptr<Image> & image - Image to export a normal map into.

Return value

1 if the normal map is exported successfully; otherwise, 0.

void setSurfaceIndexTextureName (int x, int y, const char * name)

Sets a name of the index texture for the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const char * name - Texture name (path).

float getLodProgression ()

Returns the level of detail progression.

Return value

LOD progression.

const char * getSpecularTextureArrayName ()

Returns the name of the specular textures array.

Return value

Name of the array.

int getHole (float x, float y)

Returns a value indicating if there is a hole at a given point.

Arguments

  • float x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • float y - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.

Return value

1 if there is a hole at a given point; otherwise, 0.

float getLodThreshold ()

Returns the level of detail height threshold.

Return value

LOD height threshold.

void setMaterialSpecularTextureName (int num, const char * name)

Sets a specular texture name for the specified detail material.

Arguments

  • int num - Material number.
  • const char * name - Specular texture name (path).

int loadTerrain (const char * name)

Loads a terrain from a file.

Arguments

  • const char * name - Path to the terrain file (*.ter).

Return value

1 if the terrain is loaded successfully; otherwise, 0.

void setLodDistance (float distance)

Sets the distance to the first level of detail. The default value is 2.0.

Arguments

  • float distance - Distance to the first LOD.

void setTerrainName (const char * name)

Sets the new terrain name.

Arguments

  • const char * name - Terrain name (path to the .TER file).

int getSurfaceNormalTextureImage (int x, int y, const Ptr<Image> & image)

Exports a normal texture of the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const Ptr<Image> & image - Image to export a texture into.

Return value

1 if the export was successful; otherwise, 0.

Ptr<ObjectTerrain> getLodTerrainRight ()

Returns the right LOD of the current terrain.

Return value

Right LOD.

void setDiffuseTextureName (const char * name)

Sets the name of the terrain diffuse texture.

Arguments

  • const char * name - Texture name (path).

const char * getSurfaceIndexTextureName (int x, int y)

Returns a name of the index texture for the given surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Texture name (path).

void removeMaterial (int num)

Removes the specified detail material.

Arguments

  • int num - Material number.

const char * getNormalTextureName ()

Returns the name of the current terrain normal texture.

Return value

Texture name (path).

Math::vec3 getNormal (float x, float y)

Returns a normal vector for a given terrain point.

Arguments

  • float x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • float y - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.

Return value

Normal vector.

void setNormalTextureName (const char * name)

Sets the name of the terrain normal texture.

Arguments

  • const char * name - Texture name (path).

void setIndexTextureName (const char * name)

Sets the name of the terrain index texture.

Arguments

  • const char * name - Texture name (path).

void setSurfaceDiffuseTextureName (int x, int y, const char * name)

Sets a diffuse texture name for the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const char * name - Texture name (path).

Math::vec3 getNormal (int x, int y)

Returns a normal vector for a given terrain point.

Arguments

  • int x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • int y - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.

Return value

Normal vector.

int setNormalTextureImage (const Ptr<Image> & image)

Sets a new terrain normal texture from a given image.

Arguments

  • const Ptr<Image> & image - Image.

Return value

1 if the texture has been set successfully; otherwise, 0.

void setVisibleDistance (float distance)

Sets the distance up to which terrain is rendered.

Arguments

  • float distance - Visibility distance, in units.

int saveTerrain (const char * name, int force = 0)

Saves the terrain.

Arguments

  • const char * name - Path to the terrain file (*.ter).
  • int force - Force flag. Use 1 to save the terrain file in any case or 0 to save the terrain file if changes were made.

Return value

1 if the terrain is saved successfully; otherwise, 0.

int getHole (int x, int y)

Returns a value indicating if there is a hole at a given point.

Arguments

  • int x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • int y - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.

Return value

1 if there is a hole at a given point; otherwise, 0.

Ptr<ObjectTerrain> getLodTerrainBottom ()

Returns the bottom LOD of the current terrain.

Return value

Bottom LOD.

float getShadowDistance ()

Returns the distance up to which the terrain relief casts shadows.

Return value

Shadow distance, in units.

Ptr<ObjectTerrain> getLodTerrainTop ()

Returns the top LOD of the current terrain.

Return value

Top LOD.

Ptr<Texture> getNormalTextureArray ()

Returns the normal textures array.

Return value

Normal textures array.

int getNormalTextureImage (const Ptr<Image> & image)

Writes the current terrain normal texture into the given buffer.

Arguments

  • const Ptr<Image> & image - Image buffer to write a texture into.

Return value

1 if the texture has been successfully written into the buffer; otherwise, 0.

void setSurfaceCastShadow (int x, int y, int cast_shadow)

Sets a value indicating whether terrain geometry across the current surface should cast shadows (from all types of light sources).

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • int cast_shadow - Cast shadow flag. 1 to cast shadows; 0 not to cast shadows.

float getLodDistance ()

Returns the distance to the first level of detail.

Return value

Distance to the first LOD.

Ptr<Texture> getNormalTexture ()

Returns the terrain normal texture.

Return value

Normal texture.

int getSurfaceDiffuseTextureImage (int x, int y, const Ptr<Image> & image)

Exports a diffuse texture of the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const Ptr<Image> & image - Image to export a texture into.

Return value

1 if the export was successful; otherwise, 0.

int setSurfaceDiffuseTextureImage (int x, int y, const Ptr<Image> & image)

Imports a diffuse texture for the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const Ptr<Image> & image - Diffuse texture.

Return value

1 if the surface diffuse texture was successfully set; otherwise, 0.

void setMaterialNormalTextureName (int num, const char * name)

Sets a normal map name for the specified detail material.

Arguments

  • int num - Material number.
  • const char * name - Normal map name (path).

void setMaterialMaskValue (int num, float value)

Sets the new spread of a detail material in accordance with the mask. By 0 the material is rendered everywhere; by 1, it is not rendered.

Arguments

  • int num - Material number.
  • float value - Spread value.

float getMaterialMaskValue (int num)

Returns the spread of a detail material according to the mask. By 0 the material is rendered everywhere; by 1, it is not rendered. The default is 0.5.

Arguments

  • int num - Material number.

Return value

Spread value.

void setSurfaceNormalTextureName (int x, int y, const char * name)

Sets a normal texture name for the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const char * name - Texture name (path).

int isSurfaceCastShadow (int x, int y)

Returns a value indicating whether terrain geometry across the current surface should cast shadows (from all types of light sources).

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

1 if the surface casts shadows; otherwise, 0.

void setSurfaceEnabled (int x, int y, int enabled)

Sets a value indicating whether a specified surface is enabled or disabled for rendering.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • int enabled - Enabled flag. 1 to enable the surface; 0 to disable it.

int setIndexTextureImage (const Ptr<Image> & image)

Sets a new terrain index texture from a given image.

Arguments

  • const Ptr<Image> & image - Image.

Return value

1 if the texture has been set successfully; otherwise, 0.

void setLodProgression (float progression)

Sets the level of detail progression.

Arguments

  • float progression - LOD progression.

void setMaterialMaskWidth (int num, float width)

Sets the new width of a detail material in accordance with the mask.

Arguments

  • int num - Material number.
  • float width - Width value.

int setSurfaceMaskTextureImage (int x, int y, const Ptr<Image> & image)

Imports a mask texture for the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const Ptr<Image> & image - Mask texture.

Return value

1 if the surface mask texture was successfully set; otherwise, 0.

float getMaterialMaskWidth (int num)

Returns the width of a detail material according to the mask.

Arguments

  • int num - Material number.

Return value

Width value.

float getMaterialMaskThreshold (int num)

Returns the blending threshold that controls the smoothness of blending for detail material edges. By 0 there is no blending at all; by 1, the blended area is at its maximum size. The default is 0.5.

Arguments

  • int num - Material number.

Return value

Threshold value.

int setMaskTextureImage (const Ptr<Image> & image)

Sets a new terrain mask texture from a given image.

Arguments

  • const Ptr<Image> & image - Image.

Return value

1 if the texture has been set successfully; otherwise, 0.

int getDiffuseTextureImage (const Ptr<Image> & image)

Writes the current terrain diffuse texture into the given buffer.

Arguments

  • const Ptr<Image> & image - Image.

Return value

1 if the texture has been successfully written into the buffer; otherwise, 0.

int getHoles (int x, int y, int width, int height, const Ptr<Image> & image)

Exports a holes texture into the R8 image. The sum of the X coordinate of the point on the terrain grid and the width of the exported image must be less than or equal to the maximum terrain width. The sum of the Y coordinate of the point on the terrain grid and the height of the exported image must be less than or equal to the maximum terrain length.

Arguments

  • int x - X coordinate of the point on the terrain grid.
  • int y - Y coordinate of the point on the terrain grid.
  • int width - Width of the exported image, in grid points.
  • int height - Height of the exported image, in grid points.
  • const Ptr<Image> & image - Image to export a holes texture into.

Return value

1 if the holes texture is exported successfully; otherwise, 0.

Ptr<Texture> getIndexTexture ()

Returns the terrain index texture.

Return value

Index texture.

Math::vec4 getMaterialTransform (int num)

Returns the texture coordinate transformations for detail material textures.

Arguments

  • int num - Material number.

Return value

Texture coordinates transformation of material textures (tile and offset).

Ptr<Texture> getDiffuseTextureArray ()

Returns the diffuse textures array.

Return value

Diffuse textures array.

float getHeight (int x, int y)

Returns the current height of a given terrain point.

Arguments

  • int x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • int y - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.

Return value

Height, in units.

float getShadowRadius ()

Returns the distance to draw additional terrain polygons outside the view frustum. This option allows to eliminate popping of shadows at the edges of the screen when the camera is turning.

Return value

Shadow radius, in units.

const char * getNormalTextureArrayName ()

Returns the name of the normal textures array.

Return value

Name of the array.

int getIntersection (const Math::vec3 & p0, const Math::vec3 & p1, Math::vec3 * ret_point, Math::vec3 * ret_normal, Math::vec4 * ret_texcoord, int surface, int holes)

Performs the search for the intersection of the given terrain surface with the given traced line. Terrain local space coordinates are used for this function.

Arguments

  • const Math::vec3 & p0 - Start point coordinates.
  • const Math::vec3 & p1 - End point coordinates.
  • Math::vec3 * ret_point - Return array to write the intersection point coordinates into.
  • Math::vec3 * ret_normal - Return array to write the intersection point normal into.
  • Math::vec4 * ret_texcoord - Return array to write the intersection point texture coordinates into.
  • int surface - Number of the surface.
  • int holes - 0 is to return the intersection with a terrain even if it hits the hole; otherwise, 1.

Return value

1 if the intersection is found; otherwise - 0.

const char * getDiffuseTextureName ()

Returns the name of the current terrain diffuse texture.

Return value

Texture name (path).

void setDiffuseTextureArrayName (const char * name)

Sets the new name of the diffuse textures array.

Arguments

  • const char * name - Name of the array.

int create (const Ptr<Image> & image, float step, float scale = 1.0f)

ObjectTerrain constructor.

Arguments

  • const Ptr<Image> & image - Terrain width in grid cells along the X axis in range [257;32679], in units.
  • float step - Terrain length in grid cells along the Y axis in range [257;32679], in units.
  • float scale - Step of the terrain grid cell, in units.

Return value

int setSurfaceNormalTextureImage (int x, int y, const Ptr<Image> & image)

Imports a normal texture for the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const Ptr<Image> & image - Normal texture.

Return value

1 if the surface normal map was successfully set; otherwise, 0.

BoundBox getSurfaceBoundBox (int x, int y)

Returns the bounding box of the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Bounding box.

Ptr<Texture> getSurfaceMaskTexture (int x, int y)

Returns the mask texture of the surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Mask texture.

float getVisibleDistance ()

Returns the distance up to which terrain is rendered.

Return value

Visibility distance, in units.

void setLodTerrainLeft (const Ptr<ObjectTerrain> & left)

Sets the new left LOD for the current terrain.

Arguments

  • const Ptr<ObjectTerrain> & left - Left LOD.

int create (int size_x, int size_y, float step)

ObjectTerrain constructor.

Arguments

  • int size_x - Terrain width in grid cells along the X axis in range [257;32679], in units.
  • int size_y - Terrain length in grid cells along the Y axis in range [257;32679], in units.
  • float step - Step of the terrain grid cell, in units.

Return value

Ptr<Texture> getSurfaceIndexTexture (int x, int y)

Returns the index texture of the surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Index texture.

const char * getMaterialSpecularTextureName (int num)

Returns the specular texture name of the specified detail material.

Arguments

  • int num - Material number.

Return value

Specular texture name (path).

Ptr<Texture> getSurfaceNormalTexture (int x, int y)

Returns the normal texture of the surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Normal texture.

void setHeight (int x, int y, float height)

Sets a new height for a given terrain point.

Arguments

  • int x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • int y - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.
  • float height - Height, in units.

int getMaterialParent (int num)

Returns the number of a parent material.

Arguments

  • int num - Material number.

Return value

Parent material number.

int addMaterial (const char * name)

Adds a material to the terrain.

Arguments

  • const char * name - Material name.

Return value

Number of the added material.

BoundSphere getSurfaceBoundSphere (int x, int y)

Returns the bounding sphere of the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Bounding sphere.

const char * getMaterialNormalTextureName (int num)

Returns the normal map name of the specified detail material.

Arguments

  • int num - Material number.

Return value

Normal map name (path).

void setMaterialMaskBase (int num, int base)

Sets the mask base parameter.

Arguments

  • int num - Material number.
  • int base - Mask base parameter.

const char * getMaterialDiffuseTextureName (int num)

Returns the name of the diffuse texture of the specified detail material.

Arguments

  • int num - Material number.

Return value

Diffuse texture name (path).

int getSizeY ()

Returns the terrain length along the Y axis, in grid cells.

Return value

Terrain length.

int getPoint (float x, float y, float & height, Math::vec3 & normal)

Searches for a given point on the terrain grid.

Arguments

  • float x - X coordinate of the point on the terrain grid.
  • float y - Y coordinate of the point on the terrain grid.
  • float & height - Height of the point.
  • Math::vec3 & normal - Normal vector.

Return value

1 if the point is found; 0 if the given point is a hole or it is out of the terrain.

int getSurfacesX ()

Returns the number of surfaces along the X axis.

Return value

Number of surfaces.

const char * getSurfaceDiffuseTextureName (int x, int y)

Returns a name of the diffuse texture for the given surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Texture name (path).

float getStep ()

Returns the linear size of a grid cell, in units.

Return value

Cell size.

float getMaterialDiffuseScale (int num)

Returns the visibility scale of a diffuse texture assigned to the specified detail material.

Arguments

  • int num - Material number.

Return value

Visibility scale value.

const char * getMaskTextureName ()

Returns the name of the current terrain mask texture.

Return value

Texture name (path).

void setHole (int x, int y, int hole)

Adds or removes a hole at a given terrain point.

Arguments

  • int x - X coordinate of the point on the terrain grid.
  • int y - Y coordinate of the point on the terrain grid.
  • int hole - 1 to add a hole; 0 to remove a hole.

void setMaterialOverlap (int num, int overlap)

Sets the new overlap detail material for the given material.

Arguments

  • int num - Material number.
  • int overlap - Overlap detail material number.

int getSurfacesY ()

Returns the number of surfaces along the Y axis.

Return value

Number of surfaces.

void setMaterialParent (int num, int parent)

Sets the new parent material for the given material.

Arguments

  • int num - Material number.
  • int parent - Parent material number.

void setLodTerrainBottom (const Ptr<ObjectTerrain> & bottom)

Sets the new bottom LOD for the current terrain.

Arguments

  • const Ptr<ObjectTerrain> & bottom - Bottom LOD.

Ptr<Texture> getSurfaceDiffuseTexture (int x, int y)

Returns the diffuse texture of the surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Diffuse texture.

void setSpecularTextureArrayName (const char * name)

Sets the new name of the specular textures array.

Arguments

  • const char * name - Name of the array.

int getMaterialOverlap (int num)

Returns the number indicating if the Overlap mode is enabled for the given material.

Arguments

  • int num - Material number.

Return value

1 if the Overlap mode is enabled, otherwise - 0.

const char * getMaterialName (int num)

Returns the name of the specified material.

Arguments

  • int num - Material number.

Return value

Material name.

float getMaterialNormalScale (int num)

Returns the normal map name of the specified detail material.

Arguments

  • int num - Material number.

Return value

Visibility scale.

int getSurfaceMaskTextureImage (int x, int y, const Ptr<Image> & image)

Exports a mask texture of the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const Ptr<Image> & image - Image to export the texture into.

Return value

1 if the export was successful; otherwise, 0.

Ptr<Texture> getSpecularTextureArray ()

Returns the specular textures array.

Return value

Specular textures array.

int getNumMaterials ()

Returns the total number of materials assigned to the terrain.

Return value

Number of materials.

void setMaterialMaskThreshold (int num, float threshold)

Sets the new blending threshold that controls the smoothness of blending for detail material edges. By 0 there is no blending at all; by 1, the blended area is at its maximum size.

Arguments

  • int num - Material number.
  • float threshold - Threshold value.

const char * getSurfaceMaskTextureName (int x, int y)

Returns a name of the mask texture for the given surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Texture name (path).

void setMaterialTransform (int num, const Math::vec4 & transform)

Sets the texture coordinate transformations for detail material textures.

Arguments

  • int num - Material number.
  • const Math::vec4 & transform - Texture coordinates transformation (tile and offset).

const char * getTerrainName ()

Returns the current terrain name.

Return value

Terrain name (path to the .TER file).

float getSurfaceLodThreshold (int x, int y)

Returns the height threshold value for the LOD of the given surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Threshold value.

int loadHeights (const BoundSphere & bs, const BoundBox & bb, int force = 0)

Loads the specified terrain region into the memory.

Arguments

  • const BoundSphere & bs - Bounding sphere (terrain-relative coordinate system).
  • const BoundBox & bb - Bounding box (terrain-relative coordinate system).
  • int force - Force data loading with possible stall.

Return value

void setMaterialDiffuseTextureName (int num, const char * name)

Sets a diffuse texture name for the specified detail material.

Arguments

  • int num - Material number.
  • const char * name - Diffuse texture name (path).

const char * getDiffuseTextureArrayName ()

Returns the name of the diffuse textures array.

Return value

Name of the array.

void setLodThreshold (float threshold, int force = 0)

Sets the level of detail height threshold.

Arguments

  • float threshold - LOD height threshold.
  • int force - Force flag. Terrain will load all height maps into the memory and will perform height map relaxation for the smooth LOD transition for the given threshold level.

void setNumMaterials (int materials)

Adds the specified number of materials to the terrain.

Arguments

  • int materials - Material number.

int setDiffuseTextureImage (const Ptr<Image> & image)

Sets a new terrain diffuse texture from a given image.

Arguments

  • const Ptr<Image> & image - Image buffer to write a texture into.

Return value

1 if the texture has been set successfully; otherwise, 0.

int getMaskTextureImage (const Ptr<Image> & image)

Writes the current terrain mask texture into the given buffer.

Arguments

  • const Ptr<Image> & image - Image buffer to write a texture into.

Return value

1 if the texture has been successfully written into the buffer; otherwise, 0.

void setSurfaceMaskTextureName (int x, int y, const char * name)

Sets a mask texture name for the specified surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • const char * name - Texture name (path).

Ptr<Texture> getDiffuseTexture ()

Returns the terrain diffuse texture.

Return value

Diffuse texture.

void setSurfaceLodThreshold (int x, int y, float threshold, int force = 0)

Sets the height threshold value for the LOD of the given surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.
  • float threshold - Threshold value of the surface LOD.
  • int force - Force flag. The terrain will load all height maps into the memory and will perform a height map relaxation for the smooth LOD transition for the given threshold level.

float getHeight (float x, float y)

Returns the current height of a given terrain point.

Arguments

  • float x - X coordinate of the point on the terrain grid in range from 0 to the maximum terrain width.
  • float y - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.

Return value

Height, in units.

int getSizeX ()

Returns the terrain width along the X axis, in grid cells.

Return value

Terrain width.

void setMaskTextureName (const char * name)

Sets the name of the terrain mask texture.

Arguments

  • const char * name - Texture name (path).

void setMaterialName (int num, const char * name)

Sets a new name for the material.

Arguments

  • int num - Material number.
  • const char * name - Material name.

const char * getIndexTextureName ()

Returns the name of the current terrain index texture.

Return value

Texture name (path).

void setShadowRadius (float radius)

Sets the distance to draw additional terrain polygons outside the view frustum. This option allows to eliminate popping of shadows at the edges of the screen when the camera is turning. The default is 0.

Arguments

  • float radius - Shadow radius, in units. If a negative value is provided, 0 will be used instead.

int getMaterialMaskBase (int num)

Returns the mask base parameter.

Arguments

  • int num - Material number.

Return value

Mask base parameter.

Ptr<Texture> getMaskTexture ()

Returns the terrain mask texture.

Return value

Mask texture.

int isLoaded ()

Returns a value indicating whether the terrain is loaded or not.

Return value

1 if the terrain is loaded successfully; otherwise, 0.

void setLodTerrainRight (const Ptr<ObjectTerrain> & right)

Sets the new right LOD for the current terrain.

Arguments

  • const Ptr<ObjectTerrain> & right - Right LOD.

void setNormalTextureArrayName (const char * name)

Sets the new name of the normal textures array.

Arguments

  • const char * name - Name of the array.

void setMaterialNormalScale (int num, float scale)

Sets the visibility scale of a normal map assigned to the specified detail material. The provided value is saturated in range [0.0;1.0]. The default is 0.5.

Arguments

  • int num - Material number.
  • float scale - Visibility scale.

const char * getSurfaceNormalTextureName (int x, int y)

Returns a name of the normal texture for the given surface.

Arguments

  • int x - Number of the surface along the X axis.
  • int y - Number of the surface along the Y axis.

Return value

Texture name (path).

int getIndexTextureImage (const Ptr<Image> & image)

Writes the current terrain index texture into the given buffer.

Arguments

  • const Ptr<Image> & image - Image buffer to write a texture into.

Return value

1 if the texture has been successfully written into the buffer; otherwise, 0.
Last update: 2017-07-03