#ifndef OPENMW_COMPONENTS_DETOURNAVIGATOR_DEBUG_H #define OPENMW_COMPONENTS_DETOURNAVIGATOR_DEBUG_H #include "agentbounds.hpp" #include "areatype.hpp" #include "changetype.hpp" #include "flags.hpp" #include "recastmesh.hpp" #include "status.hpp" #include "tilebounds.hpp" #include #include #include class dtNavMesh; namespace DetourNavigator { struct Version; struct TilesPositionsRange; struct AreaCosts; struct DetourSettings; std::ostream& operator<<(std::ostream& stream, const TileBounds& value); std::ostream& operator<<(std::ostream& stream, Status value); std::ostream& operator<<(std::ostream& s, const Water& v); std::ostream& operator<<(std::ostream& s, const CellWater& v); std::ostream& operator<<(std::ostream& s, const FlatHeightfield& v); std::ostream& operator<<(std::ostream& s, const Heightfield& v); std::ostream& operator<<(std::ostream& s, CollisionShapeType v); std::ostream& operator<<(std::ostream& s, const AgentBounds& v); struct WriteDtStatus { dtStatus mStatus; }; std::ostream& operator<<(std::ostream& stream, const WriteDtStatus& value); std::ostream& operator<<(std::ostream& stream, const Flag value); struct WriteFlags { Flags mValue; }; std::ostream& operator<<(std::ostream& stream, const WriteFlags& value); std::ostream& operator<<(std::ostream& stream, AreaType value); std::ostream& operator<<(std::ostream& stream, ChangeType value); std::ostream& operator<<(std::ostream& stream, const Version& value); std::ostream& operator<<(std::ostream& stream, const TilesPositionsRange& value); std::ostream& operator<<(std::ostream& stream, const AreaCosts& value); std::ostream& operator<<(std::ostream& stream, const DetourSettings& value); class RecastMesh; struct RecastSettings; void writeToFile(const RecastMesh& recastMesh, const std::string& pathPrefix, const std::string& revision, const RecastSettings& settings); void writeToFile(const dtNavMesh& navMesh, const std::string& pathPrefix, const std::string& revision); } #endif