예제 #1
0
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            if (!(obj is Graph2DCoords))
            {
                return(false);
            }

            Graph2DCoords coords = (Graph2DCoords)obj;

            return(row == coords.row && col == coords.col);
        }
예제 #2
0
 /// <summary>
 /// Obtém o próximo nó a partir do nó de coordenadas coords no qual deve ser seguido para ficar mais próximo do nó de destino (previamente informado pela chamada ao método GenerateNodeValues)
 /// </summary>
 /// <param name="coords">Coordenadas do nó de origem</param>
 /// <returns>Próximo nó do menor caminho entre o nó de coordenadas coords até o nó de destino informado pela chamada ao método GenerateNodeValues, false caso GenerateNodeValues não tenha sido chamado desde a última modificação do grafo</returns>
 public Node GetNextNode(Graph2DCoords coords)
 {
     return(GetNextNode(coords.Row, coords.Col));
 }
예제 #3
0
 /// <summary>
 /// Obtém o menor caminho entre dois nós. Deve-se chamar o método GenerateNodeValues antes de chamar este método.
 /// </summary>
 /// <param name="coords">Coordenadas do nó de origem</param>
 /// <param name="route">Lista contendo os nós de menor caminho, ordenada no sentido da origem para o destino</param>
 /// <returns>true se for encontrado o menor caminho, false caso contrário ou se o nó de destino não foi informado previamente com a chamada ao método GenerateNodeValues</returns>
 public bool GetMinimalRoute(Graph2DCoords coords, List <Graph2DCoords> route)
 {
     return(GetMinimalRoute(coords.Row, coords.Col, route));
 }
예제 #4
0
 /// <summary>
 /// Obtém o menor caminho entre dois nós
 /// </summary>
 /// <param name="src">Coordenadas do nó de origem</param>
 /// <param name="dst">Coordenadas do nó de destino</param>
 /// <param name="route">Lista contendo os nós do menor caminho, ordenada no sentido da origem para o destino</param>
 /// <returns>true se for encontrado o menor caminho, false caso contrário</returns>
 public bool GetMinimalRoute(Graph2DCoords src, Graph2DCoords dst, List <Graph2DCoords> route)
 {
     return(GetMinimalRoute(src.Row, src.Col, dst.Row, dst.Col, route));
 }
예제 #5
0
 /// <summary>
 /// Preenche os valores de todos os nós do grafo com as distâncias relativas a posição informada.
 /// Para a posição informada a distância é zero e portanto o valor será zero.
 /// Para os nós vizinhos os valores serão 1.
 /// Para os vizinhos dos vizinhos que ainda não tiverem valores definidos a distância será 2.
 /// O preenchimento continua até que todos os nós atíngiveis a partir do nó inicial estejam com seus valores definidos.
 /// Os nós que não forem atingíveis a partir do nó inicial ficarão com seus valores definidos como infinoto.
 /// </summary>
 /// <param name="dst">Coordenadas do nó inicial (nó de destino na geração do menor caminho)</param>
 public void GenerateNodeValues(Graph2DCoords dst)
 {
     GenerateNodeValues(dst.Row, dst.Col);
 }
예제 #6
0
 /// <summary>
 /// Exclui um nó
 /// </summary>
 /// <param name="coords">Coordenadas do nó</param>
 /// <returns>Nó excluido caso ele exista, null caso contrário</returns>
 public Node Delete(Graph2DCoords coords)
 {
     return(Delete(coords.Row, coords.Col));
 }
예제 #7
0
 /// <summary>
 /// Cria um novo nó nas coordenadas especificadas
 /// </summary>
 /// <param name="coords">Coordenadas do novo nó</param>
 /// <returns>Nó criado caso ele não existia, caso contrário retorna o nó existente associado as coordenadas especificadas</returns>
 public Node Insert(Graph2DCoords coords)
 {
     return(Insert(coords.Row, coords.Col));
 }