/** * Copyright (c) 2026 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "tileset.h" #include "assert/assert.h" #include "util/string.h" void tilesetTileGetUV( const tileset_t *tileset, const uint16_t tileIndex, vec4 outUV ) { const uint16_t column = tileIndex % tileset->columns; const uint16_t row = tileIndex / tileset->columns; tilesetPositionGetUV(tileset, column, row, outUV); } void tilesetPositionGetUV( const tileset_t *tileset, const uint16_t column, const uint16_t row, vec4 outUV ) { assertNotNull(tileset, "Tileset cannot be NULL"); assertTrue(column < tileset->columns, "Column index out of bounds"); assertTrue(row < tileset->rows, "Row index out of bounds"); outUV[0] = ((float_t)column) * tileset->uv[0]; outUV[1] = ((float_t)row) * tileset->uv[1]; outUV[2] = outUV[0] + tileset->uv[0]; outUV[3] = outUV[1] + tileset->uv[1]; }