22#ifndef DETOURTILECACHEBUILDER_H
23#define DETOURTILECACHEBUILDER_H
31static const int DT_TILECACHE_MAGIC =
'D'<<24 |
'T'<<16 |
'L'<<8 |
'R';
32static const int DT_TILECACHE_VERSION = 1;
34static const unsigned char DT_TILECACHE_NULL_AREA = 0;
35static const unsigned char DT_TILECACHE_WALKABLE_AREA = 63;
36static const unsigned short DT_TILECACHE_NULL_IDX = 0xffff;
86#if WITH_NAVMESH_CLUSTER_LINKS
127 virtual void doDtLog(
const char* ,
const int ) {}
166 inline T* operator=(T* p);
172 inline operator T*() {
return m_ptr; }
173 inline int size()
const {
return m_size; }
174 inline void set(
unsigned char v) {
memset((
void*)m_ptr,
v,
sizeof(T)*m_size); }
179 const int offset[4] = { -1, 0, 1, 0, };
180 return offset[
dir&0x03];
185 const int offset[4] = { 0, 1, 0, -1 };
186 return offset[
dir&0x03];
192 const unsigned short* heights,
193 const unsigned char* areas,
194 const unsigned char* cons,
210#if WITH_NAVMESH_CLUSTER_LINKS
223 const dtReal* pos,
const dtReal radius,
const dtReal height,
const unsigned char areaId);
230 const dtReal* verts,
const int nverts,
const dtReal hmin,
const dtReal hmax,
const unsigned char areaId);
233 const dtReal* pos,
const dtReal radius,
const dtReal height,
const unsigned char areaId,
240 const dtReal* verts,
const int nverts,
const dtReal hmin,
const dtReal hmax,
const unsigned char areaId,
252 const int minRegionArea,
const int mergeRegionArea,
256 const int minRegionArea,
const int mergeRegionArea,
260 const int minRegionArea,
const int mergeRegionArea,
281 const int walkableClimb);
291#if WITH_NAVMESH_CLUSTER_LINKS
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void dtFree(void *ptr, dtAllocHint hint)
Definition DetourAlloc.cpp:49
void * dtAlloc(int size, dtAllocHint hint)
Definition DetourAlloc.cpp:43
@ DT_ALLOC_TEMP
Memory used temporarily within a function.
Definition DetourAlloc.h:32
double dtReal
Definition DetourLargeWorldCoordinates.h:15
NAVMESH_API dtStatus dtReplaceArea(dtTileCacheLayer &layer, const unsigned char areaId, const unsigned char filterAreaId)
Definition DetourTileCacheBuilder.cpp:2796
NAVMESH_API bool dtTileCacheHeaderSwapEndian(unsigned char *data, const int dataSize)
Definition DetourTileCacheBuilder.cpp:2957
NAVMESH_API void dtFreeTileCachePolyMesh(dtTileCacheAlloc *alloc, dtTileCachePolyMesh *lmesh)
Definition DetourTileCacheBuilder.cpp:89
NAVMESH_API dtStatus dtReplaceBoxArea(dtTileCacheLayer &layer, const dtReal *orig, const dtReal cs, const dtReal ch, const dtReal *pos, const dtReal *extent, const unsigned char areaId, const unsigned char filterAreaId)
Definition DetourTileCacheBuilder.cpp:2685
NAVMESH_API void dtFreeTileCacheDistanceField(dtTileCacheAlloc *alloc, dtTileCacheDistanceField *dfield)
Definition DetourTileCacheBuilder.cpp:135
NAVMESH_API dtTileCachePolyMeshDetail * dtAllocTileCachePolyMeshDetail(dtTileCacheAlloc *alloc)
Definition DetourTileCacheBuilder.cpp:104
NAVMESH_API dtStatus dtBuildTileCachePolyMesh(dtTileCacheAlloc *alloc, dtTileCacheLogContext *ctx, dtTileCacheContourSet &lcset, dtTileCachePolyMesh &mesh, const int walkableClimb)
Definition DetourTileCacheBuilder.cpp:2201
NAVMESH_API dtStatus dtMarkBoxArea(dtTileCacheLayer &layer, const dtReal *orig, const dtReal cs, const dtReal ch, const dtReal *pos, const dtReal *extent, const unsigned char areaId)
Definition DetourTileCacheBuilder.cpp:2499
int getDirOffsetX(int dir)
Definition DetourTileCacheBuilder.h:177
NAVMESH_API dtTileCachePolyMesh * dtAllocTileCachePolyMesh(dtTileCacheAlloc *alloc)
Definition DetourTileCacheBuilder.cpp:80
NAVMESH_API dtStatus dtMarkConvexArea(dtTileCacheLayer &layer, const dtReal *orig, const dtReal cs, const dtReal ch, const dtReal *verts, const int nverts, const dtReal hmin, const dtReal hmax, const unsigned char areaId)
Definition DetourTileCacheBuilder.cpp:2562
NAVMESH_API dtStatus dtReplaceCylinderArea(dtTileCacheLayer &layer, const dtReal *orig, const dtReal cs, const dtReal ch, const dtReal *pos, const dtReal radius, const dtReal height, const unsigned char areaId, const unsigned char filterAreaId)
Definition DetourTileCacheBuilder.cpp:2626
NAVMESH_API dtStatus dtReplaceConvexArea(dtTileCacheLayer &layer, const dtReal *orig, const dtReal cs, const dtReal ch, const dtReal *verts, const int nverts, const dtReal hmin, const dtReal hmax, const unsigned char areaId, const unsigned char filterAreaId)
Definition DetourTileCacheBuilder.cpp:2732
NAVMESH_API dtStatus dtBuildTileCacheContours(dtTileCacheAlloc *alloc, dtTileCacheLayer &layer, const int walkableClimb, const dtReal maxError, const dtReal simplificationElevationRatio, const dtReal cs, const dtReal ch, dtTileCacheContourSet &lcset, const bool skipContourSimplification=false)
Definition DetourTileCacheBuilder.cpp:863
NAVMESH_API void dtFreeTileCacheLayer(dtTileCacheAlloc *alloc, dtTileCacheLayer *layer)
Definition DetourTileCacheBuilder.cpp:2890
NAVMESH_API void dtFreeTileCacheContourSet(dtTileCacheAlloc *alloc, dtTileCacheContourSet *cset)
Definition DetourTileCacheBuilder.cpp:42
NAVMESH_API dtStatus dtBuildTileCacheDistanceField(dtTileCacheAlloc *alloc, dtTileCacheLayer &layer, dtTileCacheDistanceField &dfield)
Definition DetourTileCacheRegion.cpp:244
NAVMESH_API dtStatus dtBuildTileCacheLayer(dtTileCacheCompressor *comp, dtTileCacheLayerHeader *header, const unsigned short *heights, const unsigned char *areas, const unsigned char *cons, unsigned char **outData, int *outDataSize)
Definition DetourTileCacheBuilder.cpp:2847
NAVMESH_API dtTileCacheDistanceField * dtAllocTileCacheDistanceField(dtTileCacheAlloc *alloc)
Definition DetourTileCacheBuilder.cpp:126
NAVMESH_API dtStatus dtBuildTileCachePolyMeshDetail(dtTileCacheAlloc *alloc, const dtReal cs, const dtReal ch, const dtReal sampleDist, const dtReal sampleMaxError, dtTileCacheLayer &layer, dtTileCachePolyMesh &lmesh, dtTileCachePolyMeshDetail &dmesh)
Definition DetourTileCacheDetail.cpp:925
NAVMESH_API dtStatus dtBuildTileCacheRegions(dtTileCacheAlloc *alloc, const int minRegionArea, const int mergeRegionArea, dtTileCacheLayer &layer, dtTileCacheDistanceField dfield)
Definition DetourTileCacheRegion.cpp:925
NAVMESH_API dtStatus dtBuildTileCacheRegionsChunky(dtTileCacheAlloc *alloc, const int minRegionArea, const int mergeRegionArea, dtTileCacheLayer &layer, int regionChunkSize)
Definition DetourTileCacheRegion.cpp:1579
NAVMESH_API dtTileCacheContourSet * dtAllocTileCacheContourSet(dtTileCacheAlloc *alloc)
Definition DetourTileCacheBuilder.cpp:33
int getDirOffsetY(int dir)
Definition DetourTileCacheBuilder.h:183
NAVMESH_API dtStatus dtDecompressTileCacheLayer(dtTileCacheAlloc *alloc, dtTileCacheCompressor *comp, const unsigned char *compressed, const int compressedSize, dtTileCacheLayer **layerOut)
Definition DetourTileCacheBuilder.cpp:2899
NAVMESH_API dtStatus dtMarkCylinderArea(dtTileCacheLayer &layer, const dtReal *orig, const dtReal cs, const dtReal ch, const dtReal *pos, const dtReal radius, const dtReal height, const unsigned char areaId)
Definition DetourTileCacheBuilder.cpp:2441
NAVMESH_API dtStatus dtBuildTileCacheRegionsMonotone(dtTileCacheAlloc *alloc, const int minRegionArea, const int mergeRegionArea, dtTileCacheLayer &layer)
Definition DetourTileCacheRegion.cpp:1562
NAVMESH_API void dtFreeTileCachePolyMeshDetail(dtTileCacheAlloc *alloc, dtTileCachePolyMeshDetail *dmesh)
Definition DetourTileCacheBuilder.cpp:113
unsigned int dtStatus
Definition RecastGraphAStar.h:29
char int compressedSize
Definition lz4.h:735
Definition DetourTileCacheBuilder.h:162
dtFixedArray(dtTileCacheAlloc *a, const int s)
Definition DetourTileCacheBuilder.h:170
~dtFixedArray()
Definition DetourTileCacheBuilder.h:171
void set(unsigned char v)
Definition DetourTileCacheBuilder.h:174
int size() const
Definition DetourTileCacheBuilder.h:173
Definition DetourTileCacheBuilder.h:114
virtual void doDtLog(const char *, const int)
Definition DetourTileCacheBuilder.h:127
NAVMESH_API void dtLog(const char *format,...)
Definition DetourTileCacheBuilder.cpp:2995
float v
Definition radaudio_mdct.cpp:62
Definition DetourTileCacheBuilder.h:133
virtual void reset()
Definition DetourTileCacheBuilder.h:136
virtual void * alloc(const int size)
Definition DetourTileCacheBuilder.h:140
virtual ~dtTileCacheAlloc()=default
virtual void free(void *ptr)
Definition DetourTileCacheBuilder.h:145
Definition DetourTileCacheBuilder.h:152
virtual dtStatus decompress(const unsigned char *compressed, const int compressedSize, unsigned char *buffer, const int maxBufferSize, int *bufferSize)=0
virtual int maxCompressedSize(const int bufferSize)=0
virtual dtStatus compress(const unsigned char *buffer, const int bufferSize, unsigned char *compressed, const int maxCompressedSize, int *compressedSize)=0
Definition DetourTileCacheBuilder.h:68
dtTileCacheContour * conts
Definition DetourTileCacheBuilder.h:70
int nconts
Definition DetourTileCacheBuilder.h:69
Definition DetourTileCacheBuilder.h:60
int nverts
Definition DetourTileCacheBuilder.h:62
unsigned char area
Definition DetourTileCacheBuilder.h:64
unsigned short reg
Definition DetourTileCacheBuilder.h:63
unsigned short * verts
x, y, z, portal direction.
Definition DetourTileCacheBuilder.h:61
Definition DetourTileCacheBuilder.h:108
unsigned short maxDist
Max distance.
Definition DetourTileCacheBuilder.h:109
unsigned short * data
distance for every cell in layer
Definition DetourTileCacheBuilder.h:110
Definition DetourTileCacheBuilder.h:50
unsigned short * heights
Definition DetourTileCacheBuilder.h:53
unsigned short * regs
Definition DetourTileCacheBuilder.h:56
unsigned char * cons
Definition DetourTileCacheBuilder.h:55
dtTileCacheLayerHeader * header
Definition DetourTileCacheBuilder.h:51
unsigned short regCount
Region count.
Definition DetourTileCacheBuilder.h:52
unsigned char * areas
Definition DetourTileCacheBuilder.h:54
Definition DetourTileCacheBuilder.h:98
unsigned char * tris
The mesh triangles. [Size: 4*ntris].
Definition DetourTileCacheBuilder.h:104
int nverts
The number of vertices in verts.
Definition DetourTileCacheBuilder.h:100
dtReal * verts
The mesh vertices. [Size: 3*nverts].
Definition DetourTileCacheBuilder.h:103
unsigned int * meshes
The sub-mesh data. [Size: 4*nmeshes].
Definition DetourTileCacheBuilder.h:102
int nmeshes
The number of sub-meshes defined by meshes.
Definition DetourTileCacheBuilder.h:99
int ntris
The number of triangles in tris.
Definition DetourTileCacheBuilder.h:101
Definition DetourTileCacheBuilder.h:74
unsigned short * regs
Region ID of polygon.
Definition DetourTileCacheBuilder.h:82
int npolys
Number of polygons.
Definition DetourTileCacheBuilder.h:77
unsigned short * polys
Polygons of the mesh, nvp*2 elements per polygon.
Definition DetourTileCacheBuilder.h:79
int nverts
Number of vertices.
Definition DetourTileCacheBuilder.h:76
unsigned char * areas
Area ID of polygons.
Definition DetourTileCacheBuilder.h:81
unsigned short * flags
Per polygon flags.
Definition DetourTileCacheBuilder.h:80
int nvp
Definition DetourTileCacheBuilder.h:75
unsigned short * verts
Vertices of the mesh, 3 elements per vertex.
Definition DetourTileCacheBuilder.h:78