RTS2D
Métodos Públicos
Referência da Classe Pathfinding

Contem rotinas relacionadas a busca de caminho. Mais...

#include <Pathfinding.h>

Lista de todos os Membros.

Métodos Públicos

 Pathfinding (Graph *graph)
 Construtor.
virtual ~Pathfinding ()
 Destrutor.
std::vector< std::pair< float,
float > > 
bfsPathfinding (float sx, float sy, float tx, float ty)
 Busca caminho do ponto (sx,sy) ao ponto (tx,ty) usando o algoritmo BFS.
std::vector< std::pair< float,
float > > 
astarPathfinding (float sx, float sy, float tx, float ty)
 Busca caminho do ponto (sx,sy) ao ponto (tx,ty) usando o algoritmo A*.
std::vector< std::pair< float,
float > > 
dijkstraPathfinding (float sx, float sy, float tx, float ty)
 Busca caminho do ponto (sx,sy) ao ponto (tx,ty) usando o algoritmo Dijkstra.
std::vector< std::pair< int,
int > > 
getPath (Node *s, Node *t)
 Usa o grafo do grid para obter o caminho do no' s ao no' t.
std::vector< std::pair< float,
float > > 
transformPath (std::vector< std::pair< int, int >> path, float tx, float ty)
 Transforma o caminho dos tiles em pixel.
std::vector< std::pair< float,
float > > 
getWalkingPath (std::vector< std::pair< float, float >> pixelPath)
 Remove os caminhos onde walking == false.
std::set< int > getZE (Unit *unit)
 Essa funcao devolve o conjunto apenas para nao precisar fazer um tratamento diferente em relacao aos edificios.
std::set< int > getZE (Building *building)
std::set< int > getZE (float px, float py)
bool isInSameZE (std::set< int > ze1, std::set< int > ze2)
 Compara os elementos de dois conjuntos de zonas de equivalencia.
std::pair< float, float > findNearestTile (float tx, float ty, std::set< int > zones)
 Calcula o ponto (px,py) mais proximo de (tx,ty) que possui mesma ZE de alguma zona do conjunto zones.

Descrição Detalhada

Contem rotinas relacionadas a busca de caminho.


Construtores & Destrutores

Construtor.

Parâmetros:
graphGrafo do grid

Métodos

std::vector< std::pair< float, float > > Pathfinding::astarPathfinding ( float  sx,
float  sy,
float  tx,
float  ty 
)

Busca caminho do ponto (sx,sy) ao ponto (tx,ty) usando o algoritmo A*.

Parâmetros:
sxCoordenada x em pixel do ponto origem
syCoordenada y em pixel do ponto origem
txCoordenada x em pixel do ponto destino
tyCoordenada y em pixel do ponto destino
Retorna:
Caminho encontrado
std::vector< std::pair< float, float > > Pathfinding::bfsPathfinding ( float  sx,
float  sy,
float  tx,
float  ty 
)

Busca caminho do ponto (sx,sy) ao ponto (tx,ty) usando o algoritmo BFS.

Parâmetros:
sxCoordenada x em pixel do ponto origem
syCoordenada y em pixel do ponto origem
txCoordenada x em pixel do ponto destino
tyCoordenada y em pixel do ponto destino
Retorna:
Caminho encontrado
std::vector< std::pair< float, float > > Pathfinding::dijkstraPathfinding ( float  sx,
float  sy,
float  tx,
float  ty 
)

Busca caminho do ponto (sx,sy) ao ponto (tx,ty) usando o algoritmo Dijkstra.

Parâmetros:
sxCoordenada x em pixel do ponto origem
syCoordenada y em pixel do ponto origem
txCoordenada x em pixel do ponto destino
tyCoordenada y em pixel do ponto destino
Retorna:
Caminho encontrado
std::pair< float, float > Pathfinding::findNearestTile ( float  tx,
float  ty,
std::set< int >  zones 
)

Calcula o ponto (px,py) mais proximo de (tx,ty) que possui mesma ZE de alguma zona do conjunto zones.

Serve para quando o jogador faz uma requisicao de um pathfinding para um local inalcancavel

Parâmetros:
txCoordenada x em pixel
tyCoordenada y em pixel
zonesConjunto de zonas de equivalencia
Retorna:
Ponto (px,py) encontrado
std::vector< std::pair< int, int > > Pathfinding::getPath ( Node s,
Node t 
)

Usa o grafo do grid para obter o caminho do no' s ao no' t.

Parâmetros:
s
t
Retorna:
Caminho do no' s ao no' t
std::vector< std::pair< float, float > > Pathfinding::getWalkingPath ( std::vector< std::pair< float, float >>  pixelPath)

Remove os caminhos onde walking == false.

Usado no buildingPath(Quando a construção foi requisitada para mover a qualquer lugar ou em cima de uma outra construção). Usado no unitMove(Quando a unidade foi requisitada para mover em um ponto em cima de uma construção)

Parâmetros:
pixelPathCaminho em pixel
Retorna:
Caminho em pixel com remocoes
std::set< int > Pathfinding::getZE ( Unit unit)

Essa funcao devolve o conjunto apenas para nao precisar fazer um tratamento diferente em relacao aos edificios.

Parâmetros:
unitPonteiro da unidade
Retorna:
Conjunto de zonas de equivalencia da unidade
std::set< int > Pathfinding::getZE ( Building building)
Parâmetros:
buildingPonteiro da unidade
Retorna:
Conjunto de zonas de equivalencia do edificio
std::set< int > Pathfinding::getZE ( float  px,
float  py 
)
Parâmetros:
pxCoordenada x em pixel
pyCoordenada y em pixel
Retorna:
Zona de equivalencia do ponto (px,py)
bool Pathfinding::isInSameZE ( std::set< int >  ze1,
std::set< int >  ze2 
)

Compara os elementos de dois conjuntos de zonas de equivalencia.

Parâmetros:
ze1Conjunto 1 de zonas de equivalencia
ze2Conjunto 2 de zonas de equivalencia
Retorna:
true se algum elemento do conjunto 1 for igual a algum elemento do conjunto 2
std::vector< std::pair< float, float > > Pathfinding::transformPath ( std::vector< std::pair< int, int >>  path,
float  tx,
float  ty 
)

Transforma o caminho dos tiles em pixel.

Parâmetros:
pathCaminho
txCoordenada x do ponto destino
tyCoordenada y do ponto destino
Retorna:
Caminho path transformados em posicoes pixel

A documentação para esta classe foi gerada a partir dos seguintes arquivos:
 Todos Classes Funções