diff --git a/components/detournavigator/recastmeshbuilder.cpp b/components/detournavigator/recastmeshbuilder.cpp index 1684e3e542..6c15b441e7 100644 --- a/components/detournavigator/recastmeshbuilder.cpp +++ b/components/detournavigator/recastmeshbuilder.cpp @@ -189,42 +189,18 @@ namespace DetourNavigator void RecastMeshBuilder::addObject(const btBoxShape& shape, const btTransform& transform, const AreaType areaType) { constexpr std::array indices{ { - 0, - 2, - 3, - 3, - 1, - 0, - 0, - 4, - 6, - 6, - 2, - 0, - 0, - 1, - 5, - 5, - 4, - 0, - 7, - 5, - 1, - 1, - 3, - 7, - 7, - 3, - 2, - 2, - 6, - 7, - 7, - 6, - 4, - 4, - 5, - 7, + 0, 2, 3, // triangle 0 + 3, 1, 0, // triangle 1 + 0, 4, 6, // triangle 2 + 6, 2, 0, // triangle 3 + 0, 1, 5, // triangle 4 + 5, 4, 0, // triangle 5 + 7, 5, 1, // triangle 6 + 1, 3, 7, // triangle 7 + 7, 3, 2, // triangle 8 + 2, 6, 7, // triangle 9 + 7, 6, 4, // triangle 10 + 4, 5, 7, // triangle 11 } }; for (std::size_t i = 0; i < indices.size(); i += 3) diff --git a/components/detournavigator/settingsutils.hpp b/components/detournavigator/settingsutils.hpp index 10e99d002f..c9d8665d51 100644 --- a/components/detournavigator/settingsutils.hpp +++ b/components/detournavigator/settingsutils.hpp @@ -47,6 +47,7 @@ namespace DetourNavigator return position; } + // Returns value in NavMesh coordinates inline float getTileSize(const RecastSettings& settings) { return static_cast(settings.mTileSize) * settings.mCellSize; @@ -62,16 +63,19 @@ namespace DetourNavigator return static_cast(v); } + // Returns integer tile position for position in navmesh coordinates inline TilePosition getTilePosition(const RecastSettings& settings, const osg::Vec2f& position) { return TilePosition(getTilePosition(settings, position.x()), getTilePosition(settings, position.y())); } + // Returns integer tile position for position in navmesh coordinates inline TilePosition getTilePosition(const RecastSettings& settings, const osg::Vec3f& position) { return getTilePosition(settings, osg::Vec2f(position.x(), position.z())); } + // Returns tile bounds in navmesh coordinates inline TileBounds makeTileBounds(const RecastSettings& settings, const TilePosition& tilePosition) { return TileBounds{ @@ -80,6 +84,7 @@ namespace DetourNavigator }; } + // Returns border size relative to cell size inline float getBorderSize(const RecastSettings& settings) { return static_cast(settings.mBorderSize) * settings.mCellSize; @@ -95,6 +100,7 @@ namespace DetourNavigator return std::floor(std::sqrt(settings.mMaxTilesNumber / osg::PI)) - 1; } + // Returns tile bounds in real coordinates inline TileBounds makeRealTileBoundsWithBorder(const RecastSettings& settings, const TilePosition& tilePosition) { TileBounds result = makeTileBounds(settings, tilePosition);