ObjectTerrain Class
Inherits: | Object |
This class is used to create terrains. The terrain is rendered using grid-based surfaces, each of which has has a unique set of textures. The following textures are created automatically:
ObjectTerrain Class
Members
static ObjectTerrain()
Constructor. Creates a new terrain object with default properties.static ObjectTerrain(string name)
Constructor. Creates a new terrain object from a given file.Arguments
- string name - Name of the terrain file.
ObjectTerrain cast(Node node)
Casts an ObjectTerrain out of the Node instance.Arguments
- Node node - Node instance.
Return value
ObjectTerrain instance.ObjectTerrain cast(Object base)
Casts an ObjectTerrain out of the Object instance.Arguments
- Object base - Object instance.
Return value
ObjectTerrain instance.void setAlbedoTextureArrayName(string name)
Sets the name of the terrain base albedo texture array.Arguments
- string name - Albedo texture array name.
string getAlbedoTextureArrayName()
Returns the name of the terrain base albedo texture array.Return value
Albedo texture array name.int setAlbedoTextureImage(Image image)
Sets the image of the terrain base albedo texture.Arguments
- Image image - Albedo texture image to be set.
Return value
1 if albedo texture image was successfully set; otherwise, 0.int getAlbedoTextureImage(Image image)
Writes the current terrain base albedo texture into the given buffer.Arguments
- Image image - Image buffer to write a texture into.
Return value
1 if the texture was successfully written to a buffer; otherwise, 0.void setAlbedoTextureName(string name)
Sets the name of the terrain base albedo texture.Arguments
- string name - Albedo texture name.
string getAlbedoTextureName()
Returns the name of the terrain base albedo texture.Return value
Albedo texture name.void setHeight(int x, int y, float height)
Changes the 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.
- float height - Height, in units.
float getHeight(variable x, variable y)
Returns the height of a given terrain point.Arguments
- variable x - X coordinate of the point. Can be either int (exact grid point) or float (interpolated height value between two points).
- variable y - Y coordinate of the point. Can be either int (exact grid point) or float (interpolated height value between two points).
Return value
Height value.int setHeights(int x, int y, 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.
- Image image - Height map. The following formats are supported: R8, RG8, RGB8, R16, R16F, R32F.
- float scale - Height map scale.
Return value
1 if the height map is imported successfully; otherwise, 0.int getHeights(int x, int y, int width, int height, 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.
- Image image - Image to export a height map into.
- int format - Image format. The following formats are supported: R8, RG8, RGB8, R16, R16F, R32F.
- float scale - Height map scale.
Return value
1 if the height map is exported successfully; otherwise, 0.void setHeightTextureArrayName(string name)
Sets the name of the terrain base height texture array.Arguments
- string name - Height texture array name.
string getHeightTextureArrayName()
Returns the name of the terrain base height texture array.Return value
Height texture array name.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.
int getHole(variable x, variable y)
Returns a value indicating if there is a hole at a given point.Arguments
- variable x - X-coordinate of the point. Can be either int or float.
- variable y - Y-coordinate of the point. Must be of the same type as x.
Return value
1 if there is a hole at a given point; otherwise, 0.int setHoles(int x, int y, 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 - Y coordinate of the point on the terrain grid in range from 0 to the maximum terrain length.
- Image image - Holes texture. Only R8 format is acceptable.
Return value
1 if the holes texture is imported successfully; otherwise, 0.int getHoles(int x, int y, int width, int height, 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.
- Image image - Image to export a holes texture into.
Return value
1 if the holes texture is exported successfully; otherwise, 0.void setLayerEnabled(int layer, int enable)
Enables or disables a given layer.Arguments
- int layer - Target layer ID.
- int enable - 1 to enable a layer; 0 to disable it.
int getLayerEnabled(int layer)
Returns a value indicating if a given layer is enabled.Arguments
- int layer - Target layer ID.
Return value
1 if a given layer is enabled; otherwise, 0.void setLayerName(int layer, string name)
Sets the name for a given layer.Arguments
- int layer - Target layer ID.
- string name - Layer name.
string getLayerName(int layer)
Sets the name for a given layer.Arguments
- int layer - Target layer ID.
Return value
Layer name.int isLoaded()
Returns a value indicating whether the terrain is loaded or not.Return value
1 if the terrain is loaded successfully; otherwise, 0.vec3 getLocalPoint(const Vec3 & position)
Returns the local coordinates of a given point.Arguments
- const Vec3 & position - World coordinates of the point.
Return value
Local coordinates of the point.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, in units.
float getLodDistance()
Returns the distance to the first level of detail. This distance is used to calculate distances to the rest of levels of details.Return value
Distance to the first LOD, in units.void setLodProgression(float progression)
Sets LOD Progression value. This distance is used to calculate distances to the rest of levels of details.Arguments
- float progression - LOD Progression value.
float getLodProgression()
Returns LOD progression value. Default value is 2.0.Return value
LOD Progression value.void setLodTerrainBottom(ObjectTerrain bottom)
Sets the new bottom LOD for the current terrain.Arguments
- ObjectTerrain bottom - Bottom terrain LOD.
ObjectTerrain getLodTerrainBottom()
Returns the bottom LOD of the current terrain.Return value
Bottom terrain LOD.void setLodTerrainLeft(ObjectTerrain left)
Sets the new left LOD for the current terrain.Arguments
- ObjectTerrain left - Left terrain LOD.
ObjectTerrain getLodTerrainLeft()
Returns the left LOD of the current terrain.Return value
Left terrain LOD.void setLodTerrainRight(ObjectTerrain right)
Sets the new right LOD for the current terrain.Arguments
- ObjectTerrain right - Right terrain LOD.
ObjectTerrain getLodTerrainRight()
Returns the right LOD of the current terrain.Return value
Right terrain LOD.void setLodTerrainTop(ObjectTerrain top)
Sets the new top LOD for the current terrain.Arguments
- ObjectTerrain top - Top terrain LOD.
ObjectTerrain getLodTerrainTop()
Returns the top LOD of the current terrain.Return value
Top terrain LOD.void setLodThreshold(float threshold, int force = 0)
Sets the LOD 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.
float getLodThreshold()
Returns the LOD height threshold.Return value
LOD height threshold.int setMaskTextureImage(Image image)
Sets a new terrain mask texture from a given image.Arguments
- Image image - Mask texture image to be set.
Return value
1 if the mask texture is successfully set; otherwise, 0.int getMaskTextureImage(Image image)
Writes the current terrain mask texture into the given buffer.Arguments
- Image image - Image buffer to write a mask texture into.
Return value
1 if the texture mask has been successfully written into the buffer; otherwise, 0.void setMaskTextureName(string name)
Sets the name of the terrain mask texture.Arguments
- string name - Mask texture name.
string getMaskTextureName()
Returns the name of the current terrain mask texture.Return value
Mask texture name.void setMaterialAlbedoColor(int layer, int material, vec4 color)
Sets the albedo color multiplier for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- vec4 color - Material albedo color multiplier.
vec4 getMaterialAlbedoColor(int layer, int material)
Returns the albedo color multiplier for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material albedo color multiplier.void setMaterialAlbedoScale(int layer, int material, float scale)
Sets the albedo scale for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- float scale - Material albedo scale.
float getMaterialAlbedoScale(int layer, int material)
Returns the albedo scale for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material albedo scale.void setMaterialAlbedoTextureName(int layer, int material, string name)
Sets the name of the albedo texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- string name - Material albedo texture name.
string getMaterialAlbedoTextureName(int layer, int material)
Returns the name of the albedo texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material albedo texture name.void setMaterialDetail(int layer, int material, int detail)
Sets a value indicating if a given material of a given layer uses its parent's material mask (or generates own mask on its basis) or the layer's mask (or generates own mask on its basis).Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- int detail - 1 to use the parent material mask (or generate own mask on its basis); 0 to use the layer's mask (or generate own mask on its basis).
int getMaterialDetail(int layer, int material)
Returns a value indicating if a given material of a given layer uses its parent's material mask (or generates own mask on its basis) or the layer's mask (or generates own mask on its basis).Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
1 if the parent's material mask is used; otherwise, 0.void setMaterialEnabled(int layer, int material, int enable)
Enables or disables a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- int enable - 1 to enable a given material of a given layer; 0 to disable it.
int getMaterialEnabled(int layer, int material)
Returns a value indicating if a given material of a given layer is enabled.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
1 if a given material of a given layer is enabled; otherwise, 0void setMaterialHeightTextureName(int layer, int material, string name)
Sets the name of the height texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- string name - Material height texture name.
string getMaterialHeightTextureName(int layer, int material)
Returns the name of the height texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material height texture name.void setMaterialLayer(int layer, int material, int layer_target)
Sets a new layer for a given material of a given layer.Arguments
- int layer - Current layer ID.
- int material - Target material ID.
- int layer_target - New layer ID.
void setMaterialMaskThreshold(int layer, int material, float threshold)
Sets the blending threshold for a given material of a given layer. This parameter controls smoothness of blending. Higher values provide smoother results. Blending is performed according to the layer's mask.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- float threshold - Blending threshold value within the [0.0f; 1.0f] range.
float getMaterialMaskThreshold(int layer, int material)
Returns the blending threshold for a given material of a given layer. This parameter controls smoothness of blending. Higher values provide smoother results. Blending is performed according to the layer's mask.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Blending threshold value within the [0.0f; 1.0f] range.void setMaterialMaskValue(int layer, int material, float value)
Sets the blending value for a given material of a given layer. This parameter controls the spread intensity of the layer. Lower values provide bigger spread. Blending is performed according to the layer's mask.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- float value - Blending value within the [0.0f; 1.0f] range.
float getMaterialMaskValue(int layer, int material)
Returns the blending value for a given material of a given layer. This parameter controls the spread intensity of the layer. Lower values provide bigger spread. Blending is performed according to the layer's mask.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Blending value within the [0.0f; 1.0f] range.void setMaterialMaskWidth(int layer, int material, float width)
Sets the blending width for a given material of a given layer. This parameter controls the width of blending with a layer. Higher values provide wider areas. Blending is performed according to the layer's mask.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- float width - Blending width value within the [0.0f; 1.0f] range.
float getMaterialMaskWidth(int layer, int material)
Returns the blending width for a given material of a given layer. This parameter controls the width of blending with a layer. Higher values provide wider areas. Blending is performed according to the layer's mask.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Blending width value within the [0.0f; 1.0f] range.void setMaterialName(int layer, int material, string name)
Sets the name of a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- string name - Material name.
string getMaterialName(int layer, int material)
Returns the name of a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material name.void setMaterialNormalScale(int layer, int material, float scale)
Sets the intensity scale of the normal texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- float scale - Material normal texture scale value within the [0.0f; 1.0f] range.
float getMaterialNormalScale(int layer, int material)
Returns the intensity scale of the normal texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material normal scale value within the [0.0f; 1.0f] range.void setMaterialNormalTextureName(int layer, int material, string name)
Sets the name of the normal texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- string name - Material normal texture name.
string getMaterialNormalTextureName(int layer, int material)
Returns the name of the normal texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material normal texture name.void setMaterialOverlap(int layer, int material, int overlap)
Enables or disables overlap blending mode for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- int overlap - 1 to enable overlap blending mode; 0 to disable it and use overlay mode.
int getMaterialOverlap(int layer, int material)
Returns a value indicating if overlap blending mode is enabled for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
1 if overlap blending mode for a given material is enabled; otherwise, 0.void setMaterialRoughness(int layer, int material, float roughness)
Sets the roughness value multiplier for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- float roughness - Material roughness value multiplier within the [0.0f; 1.0f] range.
float getMaterialRoughness(int layer, int material)
Returns the roughness value multiplier for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material roughness value multiplier within the [0.0f; 1.0f] range.void setMaterialRoughnessScale(int layer, int material, float scale)
Sets the intensity scale of the roughness texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- float scale - Material roughness scale value within the [0.0f; 1.0f] range.
float getMaterialRoughnessScale(int layer, int material)
Returns the intensity scale of the roughness texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material roughness scale value within the [0.0f; 1.0f] range.void setMaterialRoughnessTextureName(int layer, int material, string name)
Sets the name of the roughness texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- string name - Material roughness texture name.
string getMaterialRoughnessTextureName(int layer, int material)
Returns the name of the roughness texture for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Material roughness texture name.void setMaterialTransform(int layer, int material, vec4 transform)
Sets the transformation parameters for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
- vec4 transform - Vec4 transformation vector with the following components:
- X - Tiling X - tile of the textures along the X axis.
- Y - Tiling Y - tile of the textures along the Y axis.
- Z - Offset X - texture offset along the X axis.
- W - Offset Y - texture offset along the Y axis.
vec4 getMaterialTransform(int layer, int material)
Returns the transformation parameters for a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
Vec4 transformation vector with the following components:- X - Tiling X - tile of the textures along the X axis.
- Y - Tiling Y - tile of the textures along the Y axis.
- Z - Offset X - texture offset along the X axis.
- W - Offset Y - texture offset along the Y axis.
vec3 getNormal(float x, float y)
Returns the 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.vec3 getNormal(int x, int y)
Returns the 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 getNormals(int x, int y, int width, int height, 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.
- Image image - Image to export a normal map into.
Return value
1 if the normal map is exported successfully; otherwise, 0.void setNormalTextureArrayName(string name)
Sets the new name of the normal textures array.Arguments
- string name - Normal textures array name.
string getNormalTextureArrayName()
Returns the name of the normal textures array.Return value
Name of the normal textures array.int setNormalTextureImage(Image image)
Sets a new terrain normal texture from a given image.Arguments
- Image image - Texture image.
Return value
1 if the texture image is successfully set; otherwise, 0.int getNormalTextureImage(Image image)
Writes the current terrain normal texture into the given buffer.Arguments
- 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 setNormalTextureName(string name)
Sets the name of the terrain normal texture.Arguments
- string name - Normal texture name.
string getNormalTextureName()
Returns the name of the current terrain normal texture.Return value
Normal texture name.int getNumAllMaterials()
Returns the total number of terrain materials.Return value
Total number of terrain materials.int getNumLayers()
Returns the total number of terrain layers.Return value
Total number of terrain layers.int getNumMaterials(int layer)
Returns the number of materials for a given layer.Arguments
- int layer - Target layer ID.
Return value
Number of layer's materials.void setShadowDistance(float distance)
Sets the Shadow distance parameter value (the distance up to which a terrain casts shadows).Arguments
- float distance - Shadow distance, in units.
float getShadowDistance()
Returns the Shadow distance parameter value (the distance up to which a terrain casts shadows).Return value
Shadow distance, in units.int getSizeX()
Returns the terrain width along the X axis, in grid cells.Return value
Terrain width along X axis.int getSizeY()
Returns the terrain length along the Y axis, in grid cells.Return value
Terrain length along Y axis.float getStep()
Returns the linear size of a grid cell, in units.Return value
Cell size.int setSurfaceAlbedoTextureImage(int x, int y, Image image)
Sets the albedo texture image 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.
- Image image - Albedo texture image.
int getSurfaceAlbedoTextureImage(int x, int y, Image image)
Writes the current surface albedo texture into the given buffer.Arguments
- int x - Number of the surface along the X axis.
- int y - Number of the surface along the Y axis.
- 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 setSurfaceAlbedoTextureName(int x, int y, string name)
Sets the albedo 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.
- string name - Albedo texture name.
string getSurfaceAlbedoTextureName(int x, int y)
Returns the albedo 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.
Return value
Albedo texture name.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
Surface bounding box.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
Surface bounding sphere.void setSurfaceCastShadow(int x, int y, int cast_shadow)
Sets a value indicating whether terrain geometry across the specified 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 - 1 to cast shadows; 0 not to cast.
int isSurfaceCastShadow(int x, int y)
Returns a value indicating whether terrain geometry across the specified surface casts 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 the 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 isSurfaceEnabled(int x, int y)
Returns a value indicating whether the 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.int getSurfaceIntersection(vec3 p0, vec3 p1, vec3 * ret_point, vec3 * ret_normal, vec4 * ret_texcoord, int surface, int holes)
Performs the search for the intersection of the given terrain surface with the given traced line. Depending on the variable, passed as the third argument, the return value can be the intersection point, the intersection point normal or the intersection point texture coordinates.
Terrain local space coordinates are used for this function.
Arguments
- vec3 p0 - Start point coordinates.
- vec3 p1 - End point coordinates.
- vec3 * ret_point - Variable defining the return array content. It can be one of the following:
- ObjectIntersection point — The intersection point.
- ObjectIntersectionNormal normal — The intersection point normal.
- ObjectIntersectionTexCoord texcoord — The intersection point texture coordinates along theX and the Y axes (the Z and the W values are always equal to zero).
- vec3 * ret_normal - The number of the terrain surface.
- vec4 * ret_texcoord - 0 is to return the intersection with a terrain even if it hits the hole; otherwise, 1.
- 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
Return array ID.void setSurfaceLodThreshold(int x, int y, float threshold, int force = 0)
Sets the height threshold value for the LOD 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.
- float threshold - Threshold 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 getSurfaceLodThreshold(int x, int y)
Returns the threshold value for the first LOD 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
Threshold value.int setSurfaceMaskTextureImage(int x, int y, Image image)
Sets a mask texture image 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.
- Image image - Surface mask texture image.
Return value
1 if the surface mask texture was successfully set; otherwise, 0.int getSurfaceMaskTextureImage(int x, int y, Image image)
Writes the current mask texture of the specified surface into the given buffer.Arguments
- int x - Number of the surface along the X axis.
- int y - Number of the surface along the Y axis.
- Image image - Image buffer to write a mask texture into.
Return value
1 if the mask texture has been successfully written into the buffer; otherwise, 0.void setSurfaceMaskTextureName(int x, int y, string name)
Sets the 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.
- string name - Surface mask texture name.
string getSurfaceMaskTextureName(int x, int y)
Returns the 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.
Return value
Surface mask texture name.int setSurfaceNormalTextureImage(int x, int y, Image image)
Sets a normal texture image 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.
- Image image - Surface normal texture image to be set.
Return value
1 if the surface normal map was successfully set; otherwise, 0.int getSurfaceNormalTextureImage(int x, int y, Image image)
Writes the current normal texture of the specified surface into the given buffer.Arguments
- int x - Number of the surface along the X axis.
- int y - Number of the surface along the Y axis.
- Image image - Image buffer to write a texture into.
Return value
1 if the surface normal map was successfully written; otherwise, 0.void setSurfaceNormalTextureName(int x, int y, string name)
Sets the 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.
- string name - Surface normal texture name.
string getSurfaceNormalTextureName(int x, int y)
Returns the 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.
Return value
Surface normal texture name.int getSurfacesX()
Returns the number of the surfaces along the X axis.Return value
Number of the surfaces along the X axis.int getSurfacesY()
Returns the number of the surfaces along the Y axis.Return value
Number of the surfaces along the Y axis.void setTerrainName(string name)
Sets the name for the terrain.Arguments
- string name - Terrain name (path to the .TER file).
string getTerrainName()
Returns the current terrain name.Return value
Terrain name (path to the .TER file).void setVisibleDistance(float distance)
Sets the distance up to which terrain is rendered visible. The terrain would disappear on a per-surface basis.Arguments
- float distance - Visibility distance, in units.
float getVisibleDistance()
Returns the distance up to which terrain is rendered visible. The terrain would disappear on a per-surface basis.Return value
Visibility distance, in units.float getWorldHeight(Vec3 position)
Returns the height of a given terrain point in world coordinates.Arguments
- Vec3 position - World coordinates of the point.
Return value
Height (Z-coordinate) in world coordinates.int addLayer(string name)
Adds a new terrain layer. New layer is enabled by default.Arguments
- string name - New layer name.
Return value
New total number of terrain layers.int addMaterial(int layer, string name)
Adds a new terrain material to a given layer.Arguments
- int layer - Target layer ID.
- string name - New material name.
Return value
Number of layer's materials.void allocateLayers(int num)
Allocates memory for the specified number of layers. All layers are empty by default.Arguments
- int num - Number of layers.
void allocateMaterials(int layer, int num)
Allocates memory for the specified number of materials of a given layer. All materials are initialized with default parameters.Arguments
- int layer - Target layer ID.
- int num - Number of materials.
int cloneLayer(int layer)
Clones a given layer.Arguments
- int layer - Target layer ID.
Return value
New number of terrain layers.int cloneMaterial(int layer, int material)
Clones a given material of a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
Return value
New number of materials of a given layer.int create(variable a0, variable a1, variable a2)
Creates a new terrain. Depending on the variables passed as arguments, the terrain is created in one of the following ways:- int size_x, int size_y and float step - a flat terrain of the specified size and step.
- Image image, float step and float scale - a terrain with already defined relief based on a height map.
Arguments
- variable a0 - A variable of one of the following types:
- int size_x - the width of the terrain along theX axis in range [257;32679], in grid cells.
- Image image - a height map.
- variable a1 - A variable of one of the following types:
- int size_y - the length of the terrain along theY axis in range [257;32679], in grid cells.
- float step - the step of terrain grid cell, in units.
- variable a2 - A variable of one of the following types:
- float step - the step of the terrain grid cell, in units.
- float scale - the maximum height, in units.
Return value
Returns 1 if the terrain is created successfully; otherwise, 0.int loadHeights(vec3 center, float radius, vec3 min, vec3 max, int force = 0)
Sets a diffuse texture name for the specified layer.Arguments
- vec3 center - Bounding sphere center.
- float radius - Bounding sphere radius.
- vec3 min - Bounding box minimum.
- vec3 max - Bounding box maximum.
- int force - Force data loading with possible stall.
int loadTerrain(string name)
Loads a terrain from a given file.Arguments
- string name - Path to the terrain file (*.ter).
Return value
1 if the terrain is loaded successfully; otherwise, 0.void removeLayer(int layer)
Removes a given layer.Arguments
- int layer - Target layer ID.
void removeMaterial(int layer, int material)
Removes a given material from a given layer.Arguments
- int layer - Target layer ID.
- int material - Target material ID.
int saveTerrain(string name, int force = 0)
Saves the terrain.Arguments
- string 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 only if any changes were made.
Return value
1 if the terrain is saved successfully; otherwise, 0.void swapLayer(int layer_0, int layer_1)
Swaps given terrain layers.Arguments
- int layer_0 - First layer ID.
- int layer_1 - Second layer ID.
void swapMaterial(int layer_0, int material_0, int layer_1, int material_1)
Swaps given terrain materials.Arguments
- int layer_0 - Layer ID for the first material.
- int material_0 - First material ID.
- int layer_1 - Layer ID for the second material.
- int material_1 - Second material ID.
int type()
Returns the type of the object.Return value
Object Terrain type identifierLast update: 2018-08-10
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)