// Provided by Chilkat Software, Inc. (http://www.chilkatsoft.com)
//
// Maker of ActiveX and .NET components:
//
// Zip Compression Component
// Email Component
// Encryption Component
// S/MIME Component
// HTML Email Component
// Character Encoding Conversion Component
// FTP Component (Free)
// Super-Fast XML Parser Component (Free)
// ASP Email Component
// ASP Super-Fast XML Parser Component (Free)
// Free SSL Component (Free)
// Real-time Compression Component (Free)
// DirectX Game Development C++ Library (Free, Open Source)
// XML Messaging Component
// EXE Stuffer Component (Embed anything in an EXE)
// Digital Certificates Component (Free)
// "Mail This Page!" utility (Free)
// Zip 2 Secure EXE (Free) for creating self-extracting EXEs
//
#ifndef _SPATH_H
#define _SPATH_H
#include "prique.h"
class ShortestPath
{
private:
static int objectCount;
unsigned int *map; // Array of width*height
int num_rows;
int num_cols;
unsigned int *dist;
int *parent;
int use_heuristic;
int abort_at_dest;
int pos_r, pos_c;
int end_r, end_c;
inline int RCi(int r, int c) const { return r*num_cols + c; }
inline int PTi(int r, int c, int i) const { return i*num_cols*num_rows + r*num_cols + c; }
void coreDump(char *c) { *c = '\0'; }
inline int absoluteValue(int x) const { return x >= 0 ? x : -x; }
public:
ShortestPath(int w, int h);
~ShortestPath(void);
inline int rectX(int x, int y) const { return x + (y/2) + (y%2); }
inline int rectY(int x, int y) const { return x - (y/2); }
inline int h(int r1, int c1, int r2, int c2) const
{ return absoluteValue(rectX(c1,r1)-rectX(c2,r2)) + absoluteValue(rectY(c1,r1)-rectY(c2,r2)); }
/*
inline int h(int r1, int c1, int r2, int c2) const
{
return (r2-r1)*(r2-r1) + (c2-c1)*(c2-c1);
}
*/
void clearMap(void); // Set all weights to zero.
void setImpassable(int r, int c); // Set locations r,c to infinity;
int buildPath(int startr, int startc, int endr, int endc, int maxPopPct);
void buildRectPath(int startr, int startc, int endr, int endc);
void getEnd(int &r, int &c);
void getPrev(int &r, int &c);
void printPath(int endr, int endc, int startr, int startc) const;
};
#endif
//
// Maker of ActiveX and .NET components:
//
// Zip Compression Component
// Email Component
// Encryption Component
// S/MIME Component
// HTML Email Component
// Character Encoding Conversion Component
// FTP Component (Free)
// Super-Fast XML Parser Component (Free)
// ASP Email Component
// ASP Super-Fast XML Parser Component (Free)
// Free SSL Component (Free)
// Real-time Compression Component (Free)
// DirectX Game Development C++ Library (Free, Open Source)
// XML Messaging Component
// EXE Stuffer Component (Embed anything in an EXE)
// Digital Certificates Component (Free)
// "Mail This Page!" utility (Free)
// Zip 2 Secure EXE (Free) for creating self-extracting EXEs
//
#ifndef _SPATH_H
#define _SPATH_H
#include "prique.h"
class ShortestPath
{
private:
static int objectCount;
unsigned int *map; // Array of width*height
int num_rows;
int num_cols;
unsigned int *dist;
int *parent;
int use_heuristic;
int abort_at_dest;
int pos_r, pos_c;
int end_r, end_c;
inline int RCi(int r, int c) const { return r*num_cols + c; }
inline int PTi(int r, int c, int i) const { return i*num_cols*num_rows + r*num_cols + c; }
void coreDump(char *c) { *c = '\0'; }
inline int absoluteValue(int x) const { return x >= 0 ? x : -x; }
public:
ShortestPath(int w, int h);
~ShortestPath(void);
inline int rectX(int x, int y) const { return x + (y/2) + (y%2); }
inline int rectY(int x, int y) const { return x - (y/2); }
inline int h(int r1, int c1, int r2, int c2) const
{ return absoluteValue(rectX(c1,r1)-rectX(c2,r2)) + absoluteValue(rectY(c1,r1)-rectY(c2,r2)); }
/*
inline int h(int r1, int c1, int r2, int c2) const
{
return (r2-r1)*(r2-r1) + (c2-c1)*(c2-c1);
}
*/
void clearMap(void); // Set all weights to zero.
void setImpassable(int r, int c); // Set locations r,c to infinity;
int buildPath(int startr, int startc, int endr, int endc, int maxPopPct);
void buildRectPath(int startr, int startc, int endr, int endc);
void getEnd(int &r, int &c);
void getPrev(int &r, int &c);
void printPath(int endr, int endc, int startr, int startc) const;
};
#endif
Sáb Fev 27, 2016 9:16 am por iLuc
» Melhores apps para Android
Sex Abr 04, 2014 9:37 pm por iLuc
» [PS2] Missões Bully
Qui Abr 03, 2014 1:53 pm por Luckii
» Dificuldades
Qui Abr 03, 2014 1:44 pm por Luckii
» [SUGESTÕES] Reaberto
Qui Abr 03, 2014 1:14 pm por iLuc
» XnRetro [DOWNLOAD]
Qui Abr 03, 2014 1:06 pm por iLuc
» [NOVAS] Menu iniciar voltará no Windows 8
Qui Abr 03, 2014 7:15 am por iLuc
» [DESIGN] PEDIDOS
Qua Abr 02, 2014 8:52 pm por iLuc
» [NOVIDADE] PS4
Qua Abr 02, 2014 8:50 pm por Crizzy