You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.3 KiB
57 lines
1.3 KiB
#ifndef INVOKE_HELPER_H |
|
#define INVOKE_HELPER_H |
|
|
|
#if !RECASTNAVIGATION_STATIC && WIN32 |
|
#define RECAST_DLL _declspec(dllexport) |
|
#else |
|
#define RECAST_DLL |
|
#endif |
|
#include "DetourNavMesh.h" |
|
#include <cstdint> |
|
#include <string> |
|
#include <map> |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
class NavMeshContex; |
|
RECAST_DLL NavMeshContex* RecastGet(int32_t id); |
|
RECAST_DLL NavMeshContex* RecastLoad(int32_t id, const char* buffer, int32_t n); |
|
RECAST_DLL void RecastClear(); |
|
RECAST_DLL int32_t RecastFind(NavMeshContex* navMeshContex, float* extents, float* startPos, float* endPos, float* straightPath); |
|
RECAST_DLL int32_t RecastFindNearestPoint(NavMeshContex* navMeshContex, float* extents, float* pos, float* nearestPos); |
|
RECAST_DLL int32_t RecastFindRandomPoint(NavMeshContex* navMeshContex, float* pos); |
|
RECAST_DLL int32_t RecastFindRandomPointAroundCircle(NavMeshContex* navMeshContex, float* extents, const float* centerPos, const float maxRadius, float* pos); |
|
|
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
|
|
int32_t InitNav(const char* buffer, int32_t n, dtNavMesh*& navMesh); |
|
|
|
|
|
class NavMesh |
|
{ |
|
public: |
|
static NavMesh* instance; |
|
|
|
static NavMesh* GetInstace(); |
|
|
|
std::map<int32_t, NavMeshContex*> navMeshContexs; |
|
|
|
NavMeshContex* New(int32_t id, const char* buffer, int32_t n); |
|
|
|
NavMeshContex* Get(int32_t id); |
|
|
|
void Clear(); |
|
|
|
private: |
|
NavMesh(); |
|
}; |
|
|
|
|
|
|
|
#endif
|
|
|