// Last edited on 2000-09-05 03:47:39 by stolfi // Abstração de cruzamento inicial e final dos trechos import Trecho; import Escala; import Ponto; import Elemento; import Conexao; public abstract class Esquina extends Elemento { public static final double RAIO_NOMINAL = 3.0; // Em unidades do mapa public abstract Conexao[] conexoes(); // Lista das conexoes permitidas nesta esquina e seus custos. public abstract double vcusto(Trecho t1, Trecho t2); // Retorna o custo para se mudar do Trecho t1 p/ t2. // Retorna Double.MAX_VALUE se não pode. public abstract boolean pode(Trecho t1, Trecho t2); // Retorna verdadeiro se e possivel passar do fim // de t1 diretamente para o início de t2. public abstract Trecho[] possibilidades(Trecho t); // A partir de um trecho t, retorna os trechos validos que saem da esquina. public abstract Trecho[] chegam(); // Retorna todos os trechos que chegam a esquina. public abstract Trecho[] saem(); // Retorna todos os trechos que saem da esquina. }