mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-08 09:37:53 +00:00
64 lines
1.5 KiB
C++
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
|