mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-16 08:10:32 +02:00
Added recast navmesh.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
===========================================================================
|
||||
|
||||
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__ */
|
||||
Reference in New Issue
Block a user