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.
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.
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.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.
Return value
Local tile coordinates of the pixel (X, Y).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.
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.
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.
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.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.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).float fetchData ( const Math::Vec2 & position, Math::vec4 & result, int layer, bool force ) #
Fetches the data for the specified point on the terrain and puts it to the output vector.Arguments
- const Math::Vec2 & position - Coordinates of the point on the terrain (X, Y).
- Math::vec4 & result - Output vector to store the data retrieved for the specified point.
- int layer - Layer number.
- bool force - Force flag.
- If 1 is specified, the data will be fetched immediately.
- If 0 is specified, the operation will be queued to a separate thread.
It is recommended to set this flag to 0 when possible to avoid spikes.
Return value
1.0f if the data was fetched successfully; otherwise, 0.0f.Last update:
2020-07-31
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)