#ifndef OPENMW_COMPONENTS_DETOURNAVIGATOR_CACHEDRECASTMESHMANAGER_H #define OPENMW_COMPONENTS_DETOURNAVIGATOR_CACHEDRECASTMESHMANAGER_H #include "recastmeshmanager.hpp" #include namespace DetourNavigator { class CachedRecastMeshManager { public: CachedRecastMeshManager(const Settings& settings, const TileBounds& bounds); bool addObject(std::size_t id, const btCollisionShape& shape, const btTransform& transform, const AreaType areaType); bool updateObject(std::size_t id, const btTransform& transform, const AreaType areaType); boost::optional removeObject(std::size_t id); std::shared_ptr getMesh(); bool isEmpty() const; private: RecastMeshManager mImpl; std::shared_ptr mCached; }; } #endif