18#ifndef _MMAP_MANAGER_H
19#define _MMAP_MANAGER_H
22#include "DetourNavMesh.h"
23#include "DetourNavMeshQuery.h"
26#include <unordered_map>
33 typedef std::unordered_map<std::pair<uint32, uint32>, dtNavMeshQuery*>
NavMeshQuerySet;
41 for (NavMeshQuerySet::iterator i = navMeshQueries.begin(); i != navMeshQueries.end(); ++i)
42 dtFreeNavMeshQuery(i->second);
45 dtFreeNavMesh(navMesh);
62 MMapManager() : loadedTiles(0), thread_safe_environment(true) {}
65 void InitializeThreadUnsafe(std::unordered_map<
uint32, std::vector<uint32>>
const& mapData);
67 bool loadMapInstance(std::string
const& basePath,
uint32 meshMapId,
uint32 instanceMapId,
uint32 instanceId);
69 bool unloadMap(
uint32 mapId);
73 dtNavMeshQuery
const* GetNavMeshQuery(
uint32 meshMapId,
uint32 instanceMapId,
uint32 instanceId);
74 dtNavMesh
const* GetNavMesh(
uint32 mapId);
79 bool loadMapData(std::string
const& basePath,
uint32 mapId);
82 MMapDataSet::const_iterator GetMMapData(
uint32 mapId)
const;
uint32 getLoadedMapsCount() const
std::unordered_map< uint32, uint32 > parentMapData
bool thread_safe_environment
uint32 getLoadedTilesCount() const
std::unordered_map< uint32, dtTileRef > MMapTileSet
std::unordered_map< std::pair< uint32, uint32 >, dtNavMeshQuery * > NavMeshQuerySet
std::unordered_map< uint32, MMapData * > MMapDataSet
MMapData(dtNavMesh *mesh)
NavMeshQuerySet navMeshQueries
MMapTileSet loadedTileRefs