// Last edited on 2000-08-31 02:00:20 by stolfi // Métodos para desenhar plantas e caminhos //Classe e metodo planta: criados e desenvolvidos por Alex (970149) //Metodo destacaCaminho: criado e desenvolvido por Marcelo (971161) //Dono: Alex(970149) import java.awt.Graphics; import java.awt.Rectangle; import Trecho; import Planta; import Escala; import Nodo; public abstract class Desenhador { public abstract void desenhaPlanta(Graphics g, Escala e, Rectangle mR, Planta pl); // Desenha em "g" na escala "e" a parte da planta "pl" que está // dentro de "mR". public abstract void destacaNodo(Graphics g, Escala e, Nodo u); // Pinta o nodo "u" no contexto "g" na escala "e". public abstract void destacaCaminho(Graphics g, Escala e, Nodo fin); // Pinta o caminho de custo mínimo até o nodo "fin" no contexto // "g" na escala "e". O caminho é definido implicitamente // pelos campos "prev"(que são preenchidos pelo Otimizador, por // exemplo). public abstract void destacaTrechos(Graphics g, Escala e, Trecho[] t); // Desenha os trechos dados no contexto gráfico "g". // Sempre que dois trechos consecutivos estiverem conectados, // desenha também a conexão. // Os métodos abaixo desenham as figuras indicadas no contexto "g" com // escala "e". Todos os parâmetros são em unidades do mapa, exceto // onde indicado. public abstract void bola(Graphics g, Escala e, Ponto p, int raio); // Um círculo preenchido. O "raio" é em pixels. public abstract void linha(Graphics g, Escala e, Ponto p, Ponto q); // Um segmento de reta. public abstract void poligono(Graphics g, Escala e, Ponto[] p, boolean enche); // Um polígono preenchido ou não. public abstract void retangulo(Graphics g, Escala e, Rectangle r, boolean enche); // Um retângulo, preenchido ou não. }