1
This commit is contained in:
parent
a80f2405a3
commit
72b2c19a55
@ -36,11 +36,13 @@ void NavMeshBuilder::InitBuilderParams(BuilderParams& builder_params)
|
||||
rcCalcGridSize(builder_params.gemo->GetMeshBoundsMin(),
|
||||
builder_params.gemo->GetMeshBoundsMax(),
|
||||
builder_params.kCellSize,
|
||||
&builder_params.gw,
|
||||
&builder_params.gh);
|
||||
builder_params.ts = (int)builder_params.kTileSize;
|
||||
builder_params.tw = (builder_params.gw + builder_params.ts-1) / builder_params.ts;
|
||||
builder_params.th = (builder_params.gh + builder_params.ts-1) / builder_params.ts;
|
||||
&builder_params.grid_width,
|
||||
&builder_params.grid_height);
|
||||
builder_params.tile_size = (int)builder_params.kTileSize;
|
||||
builder_params.tile_width = (builder_params.grid_width + builder_params.tile_size-1) /
|
||||
builder_params.tile_size;
|
||||
builder_params.tile_height = (builder_params.grid_height + builder_params.tile_size-1) /
|
||||
builder_params.tile_size;
|
||||
}
|
||||
|
||||
void NavMeshBuilder::InitTileCacheParams(BuilderParams& builder_params, dtTileCacheParams& tcparams)
|
||||
@ -56,7 +58,7 @@ void NavMeshBuilder::InitTileCacheParams(BuilderParams& builder_params, dtTileCa
|
||||
tcparams.walkableRadius = builder_params.kAgentRadius;
|
||||
tcparams.walkableClimb = builder_params.kAgentMaxClimb;
|
||||
tcparams.maxSimplificationError = builder_params.kEdgeMaxError;
|
||||
tcparams.maxTiles = builder_params.tw * builder_params.th * EXPECTED_LAYERS_PER_TILE;
|
||||
tcparams.maxTiles = builder_params.tile_width * builder_params.tile_height * EXPECTED_LAYERS_PER_TILE;
|
||||
tcparams.maxObstacles = 128;
|
||||
}
|
||||
|
||||
@ -95,8 +97,8 @@ void NavMeshBuilder::BuildTiles(BuilderParams& builder_params)
|
||||
rcVcopy(cfg.bmin, builder_params.gemo->GetMeshBoundsMin());
|
||||
rcVcopy(cfg.bmax, builder_params.gemo->GetMeshBoundsMax());
|
||||
}
|
||||
for (int y = 0; y < builder_params.th; ++y) {
|
||||
for (int x = 0; x < builder_params.tw; ++x) {
|
||||
for (int y = 0; y < builder_params.tile_height; ++y) {
|
||||
for (int x = 0; x < builder_params.tile_width; ++x) {
|
||||
TileCacheData tiles[MAX_LAYERS];
|
||||
memset(tiles, 0, sizeof(tiles));
|
||||
int ntiles = RasterizeTileLayers(x, y, cfg, tiles, MAX_LAYERS);
|
||||
@ -117,8 +119,8 @@ void NavMeshBuilder::BuildTiles(BuilderParams& builder_params)
|
||||
}
|
||||
|
||||
// Build initial meshes
|
||||
for (int y = 0; y < builder_params.th; ++y) {
|
||||
for (int x = 0; x < builder_params.tw; ++x) {
|
||||
for (int y = 0; y < builder_params.tile_height; ++y) {
|
||||
for (int x = 0; x < builder_params.tile_width; ++x) {
|
||||
builder_params.tile_cache->buildNavMeshTilesAt(x,y, builder_params.navmesh);
|
||||
}
|
||||
}
|
||||
|
@ -285,14 +285,15 @@ struct BuilderParams
|
||||
const int kMaxTiles = 0;
|
||||
const int kMaxPolysPerTile = 0;
|
||||
|
||||
int gw = 0;
|
||||
int gh = 0;
|
||||
int ts = 0;
|
||||
int tw = 0;
|
||||
int th = 0;
|
||||
int grid_width = 0;
|
||||
int grid_height = 0;
|
||||
int tile_size = 0;
|
||||
int tile_width = 0;
|
||||
int tile_height = 0;
|
||||
|
||||
MapInstance* map_instance = nullptr;
|
||||
InputGeom* gemo = nullptr;
|
||||
dtNavMesh* navmesh = nullptr;
|
||||
dtTileCache* tile_cache = nullptr;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user