#include <stddef.h>
#include <stdlib.h>
Go to the source code of this file.
|
#define | JPS_NO_FLOAT |
|
#define | JPS_ASSERT(cond) |
|
#define | JPS_realloc(p, newsize, oldsize, user) realloc(p, newsize) |
|
#define | JPS_free(p, oldsize, user) free(p) |
|
#define | JPS_HEURISTIC_ACCURATE(a, b) (Heuristic::Chebyshev(a, b)) |
|
#define | JPS_HEURISTIC_ESTIMATE(a, b) (Heuristic::Manhattan(a, b)) |
|
#define | JPS_PLACEMENT_NEW(p) new(JPS__NewDummy(), p) |
|
#define | JPS_CHECKGRID(dx, dy) (grid(x+(dx), y+(dy))) |
|
#define | JPS_ADDPOS(dx, dy) do { *w++ = Pos(x+(dx), y+(dy)); } while(0) |
|
#define | JPS_ADDPOS_CHECK(dx, dy) do { if(JPS_CHECKGRID(dx, dy)) JPS_ADDPOS(dx, dy); } while(0) |
|
#define | JPS_ADDPOS_NO_TUNNEL(dx, dy) do { if(grid(x+(dx),y) || grid(x,y+(dy))) JPS_ADDPOS_CHECK(dx, dy); } while(0) |
|
|
void * | operator new (size_t, JPS__NewDummy, void *ptr) |
|
void | operator delete (void *, JPS__NewDummy, void *) |
|
ScoreType | JPS::Heuristic::Manhattan (const Position &a, const Position &b) |
|
ScoreType | JPS::Heuristic::Chebyshev (const Position &a, const Position &b) |
|
template<typename GRID , typename PV > |
SizeT | JPS::findPath (PV &path, const GRID &grid, PosType startx, PosType starty, PosType endx, PosType endy, unsigned step=0, JPS_Flags flags=JPS_Flag_Default, void *user=0) |
|
◆ JPS_ADDPOS
#define JPS_ADDPOS |
( |
|
dx, |
|
|
|
dy |
|
) |
| do { *w++ = Pos(x+(dx), y+(dy)); } while(0) |
◆ JPS_ADDPOS_CHECK
◆ JPS_ADDPOS_NO_TUNNEL
#define JPS_ADDPOS_NO_TUNNEL |
( |
|
dx, |
|
|
|
dy |
|
) |
| do { if(grid(x+(dx),y) || grid(x,y+(dy))) JPS_ADDPOS_CHECK(dx, dy); } while(0) |
◆ JPS_ASSERT
#define JPS_ASSERT |
( |
|
cond | ) |
|
◆ JPS_CHECKGRID
#define JPS_CHECKGRID |
( |
|
dx, |
|
|
|
dy |
|
) |
| (grid(x+(dx), y+(dy))) |
◆ JPS_free
#define JPS_free |
( |
|
p, |
|
|
|
oldsize, |
|
|
|
user |
|
) |
| free(p) |
◆ JPS_HEURISTIC_ACCURATE
#define JPS_HEURISTIC_ACCURATE |
( |
|
a, |
|
|
|
b |
|
) |
| (Heuristic::Chebyshev(a, b)) |
◆ JPS_HEURISTIC_ESTIMATE
#define JPS_HEURISTIC_ESTIMATE |
( |
|
a, |
|
|
|
b |
|
) |
| (Heuristic::Manhattan(a, b)) |
◆ JPS_NO_FLOAT
◆ JPS_PLACEMENT_NEW
◆ JPS_realloc
#define JPS_realloc |
( |
|
p, |
|
|
|
newsize, |
|
|
|
oldsize, |
|
|
|
user |
|
) |
| realloc(p, newsize) |
◆ JPS_Flags
◆ JPS_Flags_
Enumerator |
---|
JPS_Flag_Default | |
JPS_Flag_NoGreedy | |
JPS_Flag_AStarOnly | |
JPS_Flag_NoStartCheck | |
JPS_Flag_NoEndCheck | |
◆ JPS_Result
Enumerator |
---|
JPS_NO_PATH | |
JPS_FOUND_PATH | |
JPS_NEED_MORE_STEPS | |
JPS_EMPTY_PATH | |
JPS_OUT_OF_MEMORY | |
◆ operator delete()
◆ operator new()