#ifndef OPENMW_COMPONENTS_DETOURNAVIGATOR_RECASTMESH_H #define OPENMW_COMPONENTS_DETOURNAVIGATOR_RECASTMESH_H #include "areatype.hpp" #include "chunkytrimesh.hpp" #include #include #include #include namespace DetourNavigator { struct Settings; class RecastMesh { public: struct Water { int mCellSize; btTransform mTransform; }; RecastMesh(std::vector indices, std::vector vertices, std::vector areaTypes, std::vector water, const Settings& settings); const std::vector& getIndices() const { return mIndices; } const std::vector& getVertices() const { return mVertices; } const std::vector& getAreaTypes() const { return mAreaTypes; } const std::vector& getWater() const { return mWater; } std::size_t getVerticesCount() const { return mVertices.size() / 3; } std::size_t getTrianglesCount() const { return mIndices.size() / 3; } const ChunkyTriMesh& getChunkyTriMesh() const { return mChunkyTriMesh; } const osg::Vec3f& getBoundsMin() const { return mBoundsMin; } const osg::Vec3f& getBoundsMax() const { return mBoundsMax; } private: std::vector mIndices; std::vector mVertices; std::vector mAreaTypes; std::vector mWater; ChunkyTriMesh mChunkyTriMesh; osg::Vec3f mBoundsMin; osg::Vec3f mBoundsMax; }; } #endif