diff --git a/src/naveditor/Editor.cpp b/src/naveditor/Editor.cpp index 27ac197b..92cfcffa 100644 --- a/src/naveditor/Editor.cpp +++ b/src/naveditor/Editor.cpp @@ -804,6 +804,11 @@ void Editor::renderDetourDebugMenu() if (ImGui::Checkbox("Tile ID Colors", &isEnabled)) toggleNavMeshDrawFlag(DU_DRAWNAVMESH_COLOR_TILES); + isEnabled = (getNavMeshDrawFlags() & DU_DRAWNAVMESH_TILE_BOUNDS); + + if (ImGui::Checkbox("Tile Bounds", &isEnabled)) + toggleNavMeshDrawFlag(DU_DRAWNAVMESH_TILE_BOUNDS); + #if DT_NAVMESH_SET_VERSION >= 8 isEnabled = (getNavMeshDrawFlags() & DU_DRAWNAVMESH_CELLS); diff --git a/src/thirdparty/recast/DebugUtils/Include/DetourDebugDraw.h b/src/thirdparty/recast/DebugUtils/Include/DetourDebugDraw.h index e97e1a38..74771fdf 100644 --- a/src/thirdparty/recast/DebugUtils/Include/DetourDebugDraw.h +++ b/src/thirdparty/recast/DebugUtils/Include/DetourDebugDraw.h @@ -31,15 +31,16 @@ enum DrawNavMeshFlags DU_DRAWNAVMESH_PORTALS = 1 << 3, // Render portals. DU_DRAWNAVMESH_CLOSEDLIST = 1 << 4, // Render navmesh with closed list. DU_DRAWNAVMESH_COLOR_TILES = 1 << 5, // Render tiles colored by their ID's. - DU_DRAWNAVMESH_CELLS = 1 << 6, // Render tile cells. - DU_DRAWNAVMESH_VERTS = 1 << 7, // Render vertex points. - DU_DRAWNAVMESH_INNERBOUND = 1 << 8, // Render inner poly boundaries. - DU_DRAWNAVMESH_OUTERBOUND = 1 << 9, // Render outer poly boundaries. - DU_DRAWNAVMESH_POLYCENTERS = 1 << 10, // Render poly centers. - DU_DRAWNAVMESH_POLYGROUPS = 1 << 11, // Render poly group by color. - DU_DRAWNAVMESH_DEPTH_MASK = 1 << 12, // Use depth mask. - DU_DRAWNAVMESH_ALPHA = 1 << 13, // Use transparency. - DU_DRAWNAVMESH_TRAVERSE_LINKS = 1 << 14, // Render traverse links. + DU_DRAWNAVMESH_TILE_BOUNDS = 1 << 6, // Render tile boundaries. + DU_DRAWNAVMESH_CELLS = 1 << 7, // Render tile cells. + DU_DRAWNAVMESH_VERTS = 1 << 8, // Render vertex points. + DU_DRAWNAVMESH_INNERBOUND = 1 << 9, // Render inner poly boundaries. + DU_DRAWNAVMESH_OUTERBOUND = 1 << 10, // Render outer poly boundaries. + DU_DRAWNAVMESH_POLYCENTERS = 1 << 11, // Render poly centers. + DU_DRAWNAVMESH_POLYGROUPS = 1 << 12, // Render poly group by color. + DU_DRAWNAVMESH_DEPTH_MASK = 1 << 13, // Use depth mask. + DU_DRAWNAVMESH_ALPHA = 1 << 14, // Use transparency. + DU_DRAWNAVMESH_TRAVERSE_LINKS = 1 << 15, // Render traverse links. }; void duDebugDrawNavMesh(struct duDebugDraw* dd, const dtNavMesh& mesh, const float* offset, unsigned int flags, const int linkTypes = -1, const int linkDistance = -1); diff --git a/src/thirdparty/recast/DebugUtils/Source/DetourDebugDraw.cpp b/src/thirdparty/recast/DebugUtils/Source/DetourDebugDraw.cpp index 2c6dc174..55cb7185 100644 --- a/src/thirdparty/recast/DebugUtils/Source/DetourDebugDraw.cpp +++ b/src/thirdparty/recast/DebugUtils/Source/DetourDebugDraw.cpp @@ -281,6 +281,12 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh& mesh, const dtNavMesh if (flags & DU_DRAWNAVMESH_CELLS) drawTileCells(dd, tile, offset); + if (flags & DU_DRAWNAVMESH_TILE_BOUNDS) + { + const dtMeshHeader* header = tile->header; + duDebugDrawBoxWire(dd, header->bmin[0], header->bmin[1], header->bmin[2], header->bmax[0], header->bmax[1], header->bmax[2], duRGBA(255,255,255,128), 1.0f, offset); + } + if (flags & DU_DRAWNAVMESH_OFFMESHCONS) { dd->begin(DU_DRAW_LINES, 2.0f, offset);