30#include "DetourNavMesh.h"
61 rcFreeCompactHeightfield(
chf);
62 rcFreeContourSet(
cset);
63 rcFreeHeightField(
solid);
64 rcFreePolyMesh(
pmesh);
65 rcFreePolyMeshDetail(
dmesh);
67 rcCompactHeightfield*
chf;
154 bool skipBattlegrounds,
158 char const* offMeshFilePath,
159 unsigned int threads);
181 float* verts,
int vertCount,
182 float* bmin,
float* bmax)
const;
std::optional< T > Optional
Optional helper class to wrap optional values within.
std::vector< OffMeshData > m_offMeshConnections
void ParseOffMeshConnectionsFile(char const *offMeshFilePath)
void buildMaps(Optional< uint32 > mapID)
ProducerConsumerQueue< TileInfo > _queue
std::vector< TileBuilder * > m_tileBuilders
void buildMeshFromFile(char *name)
std::set< uint32 > * getTileList(uint32 mapID)
uint32 percentageDone(uint32 totalTiles, uint32 totalTilesDone) const
bool isDevMap(uint32 mapID) const
Optional< float > m_maxWalkableAngleNotSteep
uint32 currentPercentageDone() const
void buildNavMesh(uint32 mapID, dtNavMesh *&navMesh)
bool shouldSkipMap(uint32 mapID) const
std::atomic< uint32 > m_totalTiles
rcConfig GetMapSpecificConfig(uint32 mapID, float bmin[3], float bmax[3], const TileConfig &tileConfig) const
bool isTransportMap(uint32 mapID) const
Optional< float > m_maxWalkableAngle
std::atomic< bool > _cancelationToken
bool isContinentMap(uint32 mapID) const
void getGridBounds(uint32 mapID, uint32 &minX, uint32 &minY, uint32 &maxX, uint32 &maxY)
void buildMap(uint32 mapID)
MapBuilder(Optional< float > maxWalkableAngle, Optional< float > maxWalkableAngleNotSteep, bool skipLiquid, bool skipContinents, bool skipJunkMaps, bool skipBattlegrounds, bool debugOutput, bool bigBaseUnit, int mapid, char const *offMeshFilePath, unsigned int threads)
void getTileBounds(uint32 tileX, uint32 tileY, float *verts, int vertCount, float *bmin, float *bmax) const
std::atomic< uint32 > m_totalTilesProcessed
bool isBattlegroundMap(uint32 mapID) const
void buildSingleTile(uint32 mapID, uint32 tileX, uint32 tileY)
TerrainBuilder * m_terrainBuilder
std::thread m_workerThread
bool shouldSkipTile(uint32 mapID, uint32 tileX, uint32 tileY) const
MapBuilder * m_mapBuilder
void buildTile(uint32 mapID, uint32 tileX, uint32 tileY, dtNavMesh *navMesh)
TileBuilder(TileBuilder &&)=default
TileBuilder(MapBuilder *mapBuilder, bool skipLiquid, bool bigBaseUnit, bool debugOutput)
void buildMoveMapTile(uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, float bmin[3], float bmax[3], dtNavMesh *navMesh)
TerrainBuilder * m_terrainBuilder
static const float GRID_SIZE
std::list< MapTiles > TileList
MapTiles(uint32 id, std::set< uint32 > *tiles)
bool operator==(uint32 id)
std::set< uint32 > * m_tiles
TileConfig(bool bigBaseUnit)
dtNavMeshParams m_navMeshParams
rcCompactHeightfield * chf