Programming
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes

Unigine::TileSet Class

Header:#include <UnigineTileset.h>

This class is used to manage a regular tileset of the ObjectTerrainGlobal. The tileset can have an arbitrary number of tiles. Each tile is represented by the following elements:

  • Data - an image with tile data.
  • Mask - a single-channel image describing data weights.
    Notice
    In case if a tile has no mask, all weights are considered equal to 1.

Tileset Class

Members


int getImageType()

Returns a numerical code of the image type used in the tileset.

Return value

Image type identifier. See the FORMAT_* variables.

int setTileData(const Math::ivec2 & tile_coord, const Ptr<Image> & data)

Sets the data for the specified tile by copying from the source image.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).
  • const Ptr<Image> & data - Source image containing a new tile data to be set.

Return value

1 if the data of the tile was successfully set; otherwise, 0.

int getTileData(const Math::ivec2 & tile_coord, Ptr<Image> & data, int force = 1)

Copies the data of the specified tile to the given image instance.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).
  • Ptr<Image> & data - Image to which the tile data is to be copied.
  • int force - Force flag.
    • If 1 is specified, the data will be copied immediately.
    • If 0 is specified, data copy operation will be queued to a separate thread.
    Notice
    It is recommended to set this flag to 0 when possible to avoid spikes.

Return value

1 if the tile data was successfully copied to the image; otherwise, 0.

int getTileDataState(const Math::ivec2 & tile_coord)

Returns the state of the data for the tile with specified coordinates.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

Tile data state. One of the TILE_STATE_* values.

int getTileResolution()

Returns the tile resolution of the tileset.

Return value

Tile resolution, in pixels.
Notice
Tiles are square and have the same number of pixels in both dimensions.

Math::ivec2 getTileCoord(const Math::dvec2 & flat_position)

Returns the coordinates of the tile containing the given point on the terrain.

Arguments

  • const Math::dvec2 & flat_position - Coordinates of the point on the terrain (X, Y).

Return value

Tile coordinates in the tileset (X, Y).

int reloadTileData(const Math::ivec2 & tile_coord)

Reloads the data for the tile with specified coordinates from the tileset file.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if the tile data was successfully loaded from the tileset file; otherwise, 0.

Math::dvec2 getTilePixelFlatPosition(const Math::ivec2 & tile_coord, const Math::vec2 & pixel_coord, int use_half_pixel_offset = 0)

Returns the coordinates of the point on the terrain (X, Y) corresponding to the specified pixel of the given tile.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).
  • const Math::vec2 & pixel_coord - Pixel coordinates on the tile (X, Y).
  • int use_half_pixel_offset - 1 to use half-pixel offset; 0 to use zero-offset.

Return value

Coordinates of the point on the terrain (X, Y).

int isTileMaskLoaded(const Math::ivec2 & tile_coord)

Returns a value indicating if a mask is loaded for the tile with the specified coordinates.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if a mask is loaded for the tile; otherwise, 0.

Math::vec2 getTilePixelCoord(const Math::dvec2 & flat_position, int use_half_pixel_offset = 0)

Returns the local tile coordinates of the pixel corresponding to the specified point on the terrain. To determine the tile that contains this pixel use the getTileCoord() method.

Arguments

  • const Math::dvec2 & flat_position - Coordinates of the point on the terrain (X, Y).
  • int use_half_pixel_offset - 1 to use half-pixel offset; 0 to use zero-offset.

int saveTile(const Math::ivec2 & tile_coord, int force = 0)

Saves changes of the specified tile to the tileset file.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).
  • int force - Force flag.
    • If 1 is specified, the changes will be saved immediately.
    • If 0 is specified, the saving operation will be queued to a separate thread.
    Notice
    It is recommended to set this flag to 0 when possible to avoid spikes.

Return value

1 if changes of the specified tile were successfully saved to the tileset file; otherwise, 0.

int saveAll(int force = 1)

Saves changes of all tiles to the tileset file.

Arguments

  • int force - Force flag.
    • If 1 is specified, the changes will be saved immediately.
    • If 0 is specified, the saving operation will be queued to a separate thread.
    Notice
    It is recommended to set this flag to 0 when possible to avoid spikes.

Return value

1 if all changes were successfully saved to the tileset file; otherwise, 0.

float getLifeTime(const Math::ivec2 & tile_coord)

Returns the current lifetime of the tile. This parameter determines how long the specified tile will be kept in the RAM without being accessed.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

Tile lifetime, in seconds.

int getDataFormat()

Returns a value indicating current image format for the tile data.

Return value

Tile data image format. One of the Image::FORMAT_* values.

int getMaskFormat()

Returns a value indicating current image format for the tile mask.

Return value

Tile mask image format. One of the Image::FORMAT_* values.

const char * getPath()

Returns the path to the tileset file.

Return value

Path to the tileset file.

int getTileMask(const Math::ivec2 & tile_coord, Ptr<Image> & mask, int force = 1)

Copies the mask of the specified tile to the given image instance.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).
  • Ptr<Image> & mask - Image to which the tile mask is to be copied.
  • int force - Force flag.
    • If 1 is specified, the mask will be copied immediately.
    • If 0 is specified, mask copy operation will be queued to a separate thread.
    Notice
    It is recommended to set this flag to 0 when possible to avoid spikes.

Return value

1 if the tile mask was successfully copied to the image; otherwise, 0.

int removeTileMask(const Math::ivec2 & tile_coord)

Removes the mask of the tile with specified coordinates from the tileset.
Notice
This method does not remove the mask from the tileset file.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if the mask of the tile was successfully removed from the tileset; otherwise, 0.

int setTileMask(const Math::ivec2 & tile_coord, const Ptr<Image> & mask)

Sets the mask for the specified tile by copying it from the source image.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).
  • const Ptr<Image> & mask - Source image containing a new tile mask to be set.

Return value

1 if the mask of the tile was successfully set; otherwise, 0.

int reloadTileMask(const Math::ivec2 & tile_coord)

Reloads the mask for the tile with specified coordinates from the tileset file.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if the tile mask was successfully loaded from the tileset file; otherwise, 0.

float getTileDensity()

Returns the tile density (number of pixels per unit) of the tileset.

Return value

Tile density, in pixels per unit.

int hasTileFileMask(const Math::ivec2 & tile_coord)

Returns a value indicating if the tile with specified coordinates has a mask in the tileset file.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if the specified tile has a mask in the tileset file; otherwise, 0.

int hasTileMask(const Math::ivec2 & tile_coord)

Returns a value indicating if the tile with specified coordinates has a mask in the tileset.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if the specified tile has a mask in the tileset; otherwise, 0.

int isTileDataLoaded(const Math::ivec2 & tile_coord)

Returns a value indicating if data is loaded for the tile with the specified coordinates.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if data is loaded for the tile; otherwise, 0.

int getTileMaskState(const Math::ivec2 & tile_coord)

Returns the state of the mask for the tile with specified coordinates.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

Tile mask state. One of the TILE_STATE_* values.

float getTileSize()

Returns actual tile size in the tileset.

Return value

Tile size, in units.

int hasTile(const Math::ivec2 & tile_coord)

Returns a value indicating if there is a tile with specified coordinates in the tileset.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if there is a tile with specified coordinates in the tileset; otherwise, 0.

int hasTileFile(const Math::ivec2 & tile_coord)

Returns a value indicating if there is a tile with specified coordinates in the tileset file.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if there is a tile with specified coordinates in the tileset file; otherwise, 0.

int removeTile(const Math::ivec2 & tile_coord)

Removes the tile with specified coordinates from the tileset.
Notice
This method does not remove the tile from the tileset file.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

1 if the tile was successfully removed from the tileset; otherwise, 0.

int setLifeTime(const Math::ivec2 & tile_coord, float seconds)

Sets the lifetime for the specified tile This parameter determines how long the specified tile will be kept in the RAM without being accessed.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).
  • float seconds - Tile lifetime, in seconds.

Return value

1 if the lifetime for the specified tile was successfully set; otherwise, 0.

Math::dvec2 getTileFlatPosition(const Math::ivec2 & tile_coord)

Returns the coordinates of the point on the terrain (X, Y) corresponding to the top-left corner of the specified tile.

Arguments

  • const Math::ivec2 & tile_coord - Tile coordinates in the tileset (X, Y).

Return value

Coordinates of the point on the terrain (X, Y).

int TILE_STATE_NONE

Description

The tile in the tileset does not differ from the tile in the tileset file (standard tile state).

int TILE_STATE_MODIFIED

Description

The tile in the tileset is modified.

int TILE_STATE_REMOVED

Description

The tile in the tileset is removed.
Last update: 2017-10-20