summaryrefslogtreecommitdiff
path: root/Runtime/NavMesh/HeightMeshQuery.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/NavMesh/HeightMeshQuery.h
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/NavMesh/HeightMeshQuery.h')
-rw-r--r--Runtime/NavMesh/HeightMeshQuery.h28
1 files changed, 28 insertions, 0 deletions
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