mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-14 01:01:05 +02:00
67 lines
3.6 KiB
C++
67 lines
3.6 KiB
C++
/*
|
|
===========================================================================
|
|
|
|
IceTech GPL Source Code
|
|
Copyright (C) 2026 Justin Marshall
|
|
|
|
===========================================================================
|
|
*/
|
|
|
|
#ifndef __RECAST_NAVIGATION_H__
|
|
#define __RECAST_NAVIGATION_H__
|
|
|
|
typedef int recastNavHandle_t;
|
|
typedef int recastObstacleHandle_t;
|
|
|
|
static const recastNavHandle_t RECAST_NAV_HANDLE_INVALID = -1;
|
|
static const int MAX_RECAST_PATH_AREAS = 256;
|
|
|
|
typedef struct recastPath_s {
|
|
idVec3 moveGoal;
|
|
idVec3 secondaryGoal;
|
|
int moveAreaNum;
|
|
int travelTime;
|
|
} recastPath_t;
|
|
|
|
class idRecastNavigationManager {
|
|
public:
|
|
virtual ~idRecastNavigationManager( void ) {}
|
|
|
|
virtual recastNavHandle_t Alloc( void ) = 0;
|
|
virtual void Free( recastNavHandle_t handle ) = 0;
|
|
|
|
virtual bool Load( recastNavHandle_t handle, const char *aasName, const char *fileName, unsigned int mapFileCRC ) = 0;
|
|
virtual bool BuildMapFile( const char *mapName, const char *aasType ) = 0;
|
|
virtual void Stats( recastNavHandle_t handle ) const = 0;
|
|
virtual void DebugDraw( recastNavHandle_t handle, idRenderWorld *renderWorld, int drawMode, int lifetime ) const = 0;
|
|
|
|
virtual bool IsLoaded( recastNavHandle_t handle ) const = 0;
|
|
virtual const char * GetName( recastNavHandle_t handle ) const = 0;
|
|
virtual int NumPolys( recastNavHandle_t handle ) const = 0;
|
|
virtual const idAASSettings *GetSettings( recastNavHandle_t handle ) const = 0;
|
|
|
|
virtual int PointAreaNum( recastNavHandle_t handle, const idVec3 &origin ) const = 0;
|
|
virtual int PointReachableAreaNum( recastNavHandle_t handle, const idVec3 &origin, const idBounds &searchBounds, const int areaFlags ) const = 0;
|
|
virtual int BoundsReachableAreaNum( recastNavHandle_t handle, const idBounds &bounds, const int areaFlags ) const = 0;
|
|
virtual void PushPointIntoAreaNum( recastNavHandle_t handle, int areaNum, idVec3 &origin ) const = 0;
|
|
virtual idVec3 AreaCenter( recastNavHandle_t handle, int areaNum ) const = 0;
|
|
virtual int AreaFlags( recastNavHandle_t handle, int areaNum ) const = 0;
|
|
virtual int AreaTravelFlags( recastNavHandle_t handle, int areaNum ) const = 0;
|
|
virtual bool Trace( recastNavHandle_t handle, aasTrace_t &trace, const idVec3 &start, const idVec3 &end ) const = 0;
|
|
|
|
virtual bool SetAreaState( recastNavHandle_t handle, const idBounds &bounds, const int areaContents, bool disabled ) = 0;
|
|
virtual recastObstacleHandle_t AddObstacle( recastNavHandle_t handle, const idBounds &bounds ) = 0;
|
|
virtual void RemoveObstacle( recastNavHandle_t handle, const recastObstacleHandle_t obstacleHandle ) = 0;
|
|
virtual void RemoveAllObstacles( recastNavHandle_t handle ) = 0;
|
|
|
|
virtual int TravelTimeToGoalArea( recastNavHandle_t handle, int areaNum, const idVec3 &origin, int goalAreaNum, int travelFlags ) const = 0;
|
|
virtual bool RouteToGoalArea( recastNavHandle_t handle, int areaNum, const idVec3 origin, int goalAreaNum, int travelFlags, recastPath_t &route ) const = 0;
|
|
virtual bool PathToGoal( recastNavHandle_t handle, recastPath_t &path, int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin, int travelFlags ) const = 0;
|
|
virtual bool PathValid( recastNavHandle_t handle, int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin, int travelFlags, idVec3 &endPos, int &endAreaNum ) const = 0;
|
|
virtual bool PathAreaList( recastNavHandle_t handle, int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin, int travelFlags, int *areas, int &numAreas, int maxAreas ) const = 0;
|
|
};
|
|
|
|
extern idRecastNavigationManager *RecastNavigationManager;
|
|
|
|
#endif /* !__RECAST_NAVIGATION_H__ */
|