From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/NavMesh/HeightMeshQuery.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Runtime/NavMesh/HeightMeshQuery.h (limited to 'Runtime/NavMesh/HeightMeshQuery.h') diff --git a/Runtime/NavMesh/HeightMeshQuery.h b/Runtime/NavMesh/HeightMeshQuery.h new file mode 100644 index 0000000..1654ba2 --- /dev/null +++ b/Runtime/NavMesh/HeightMeshQuery.h @@ -0,0 +1,28 @@ +#ifndef RUNTIME_HEIGHT_MESH_QUERY +#define RUNTIME_HEIGHT_MESH_QUERY + +#include "External/Recast/Detour/Include/DetourNavMeshQuery.h" +#include "HeightmapData.h" + +class dtNavMeshQuery; +class Vector3f; + +// Query specialization for Height Placement of a HeightMesh. +class HeightMeshQuery : public dtHeightQuery +{ +public: + HeightMeshQuery (); + virtual ~HeightMeshQuery (); + + void Init (const HeightmapDataVector* heightMaps, float verticalRayOffset); + virtual dtStatus getHeight (const dtMeshTile* tile, const dtPoly* poly, const float* pos, float* height) const; + bool GetTerrainHeight (const Vector3f& position, float* height) const; + +private: + bool GetGeometryHeight (const dtMeshTile* tile, const dtPoly* poly, const Vector3f& pos, float* height) const; + + const HeightmapDataVector* m_HeightMaps; + float m_VerticalRayOffset; +}; + +#endif -- cgit v1.1-26-g67d0