Inicializace a deinicializace
  Nový hledací engine musí být vytvořen pomocí funkce peInit. Ta zajistí konzistetní naplnění PED struktury. Po té je možné zavolat peSetHeuristic nebo peSetSettings pro bližší specifikování parametrů hledacího enginu. Obě funkce mohou být zavolány kdykoliv v průběhu života PED. Pozn.: V peInit jsou zavolány s implicitními hodnotami (definované v pathlib.h). Korektní uvolnění PED zajistí peDone.

Ukládání a načítaní PED struktury zajišťují peSave a peLoad

   
 
PED* peInit(int msx, int msy, int iMaxRequests, int iHeapSize, int iMPCPT, int iMaxWalkers); 
msx    rozměr mapy x
msy    rozměr mapy y
iMaxRequests    maximalní počet požadavků v kruhové frontě
iHeapSize    maximalní počet MapNodů v haldě
iMaxWalkers    maximální počet Walkerů
Alokuje a inicializuje PED strukturu a vrací ji. Alokuje všechny vnitřní struktury podle zadaných velikostí. Nastaví implicitní parametry chování enginu (definované v pathlib.h). V případě neúspěchu vrací NULL.
PE_NOERR | PE_NOMEM 
   
 
char peDone(PED* PE); 
PE    struktura určená ke zrušení
Dealokuje engine PE.
PE_NOERR 
   
 
PED* peLoad(FILE* f);
f   otevřený binární stream, ze kterého se má načíst struktura PED
Alokuje a načítá PED strukturu ze souboru. V případě neúspěchu vrací NULL.
PE_NOERR | PE_NOMEM 
   
 
char peSave(PED* PE, FILE* f); 
f   otevřený binární stream pro zápis, do kterého se má uložit struktura PED
Ukládá PED strukturu do souboru.
PE_NOERR 
   
 
char peSetHeuristic(PED* PE, peHeuristic* H); 
H   heuristická funkce
Nastaví novou heuristickou funkci pro algoritmus.

peHeurisctic je definovaná takto: typedef int peHeuristic(void* PE, MapNode* A,MapNode* B);
COST je součet všech TC na cestě z A do B.
MINCOST je nejmenší COST přes všechny cesty z A do B.
heuristická funkce dává algoritmu odhad pro MINCOST z A do B v daném enginu PE.
Pokud bude funkce vracet identickou 0 bude algoritmus pracovat jako obyčejný Dijkstruv algoritmus.
Pokud bude funkce zajištovat vždy dolní odhad skutečného MINCOST algoritmus najde nejlepš
í cestu.
V opačném případě nejlepší mož
ná cesta nalezena být nemusí.

Implementovány jsou tyto heuristiky:
HeuristicMax - maximová (vrací maximum z dx a dy)
HeuristicPythagoras - vrací vzdálenost "vzdušnoučarou"
HeuristicDijkstra - vrací identickou 0
 
PE_NOERR 
   
 
char peSetSettings(PED* PE, int MAXTC, int StandingBlockerCost, int WalkingBlockerCost, int FootStepCost,  int BaseCost, int HorizontalCost, int DiagonalCost, int NearDestination,  int BadFinalRatio, int BadFinalShift, int WaitingTimeout); 
MAXTC    
StandingBlockerCost    
WalkingBlockerCost    
FootStepCost    
BaseCost    
HorizontalCost    
DiagonalCost    
NearDestination    
BadFinalRatio    
BadFinalShift    
WaitingTimeout    
Nastaví volitelné parametry enginu
PE_NOERR