1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-08 09:37:53 +00:00
OpenMW/components/detournavigator/debug.hpp
2018-10-13 22:16:25 +03:00

64 lines
1.5 KiB
C++

#ifndef OPENMW_COMPONENTS_DETOURNAVIGATOR_DEBUG_H
#define OPENMW_COMPONENTS_DETOURNAVIGATOR_DEBUG_H
#include "tilebounds.hpp"
#include <components/bullethelpers/operators.hpp>
#include <components/osghelpers/operators.hpp>
#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
#ifdef OPENMW_WRITE_OBJ
#include <vector>
#endif
#ifdef OPENMW_WRITE_TO_FILE
class dtNavMesh;
#endif
namespace DetourNavigator
{
inline std::ostream& operator <<(std::ostream& stream, const TileBounds& value)
{
return stream << "TileBounds {" << value.mMin << ", " << value.mMax << "}";
}
// Use to dump scene to load from recastnavigation demo tool
#ifdef OPENMW_WRITE_OBJ
void writeObj(const std::vector<float>& vertices, const std::vector<int>& indices);
#endif
#ifdef OPENMW_WRITE_TO_FILE
class RecastMesh;
void writeToFile(const RecastMesh& recastMesh, const std::string& revision);
void writeToFile(const dtNavMesh& navMesh, const std::string& revision);
#endif
inline void write(std::ostream& stream)
{
stream << '\n';
}
template <class Head, class ... Tail>
void write(std::ostream& stream, const Head& head, const Tail& ... tail)
{
stream << head;
write(stream, tail ...);
}
template <class ... Ts>
void log(Ts&& ... values)
{
std::ostringstream stream;
write(stream, std::forward<Ts>(values) ...);
std::cout << stream.str();
}
}
#endif