// Classe implementada por Emilson Margoto - RA:981048 package pckDesenho; import java.awt.*; import pckMapa.*; import pckPlano.*; public class Aresta{ /** * Membros responsaveis pelo modulo * Alessandro Santos: 980553 * Emilson Margoto: 981048 **/ /** * Aresta eh a representacao geometrica( fisica ) de um trecho. **/ /** * Atributos * **/ /** * Vertice que indica o inicio do trecho **/ Vertice verticeInicial; /** * Vertice que indica o final do trecho **/ Vertice verticeFinal; /** * Apontador para o objeto trecho equivalente a Aresta **/ Trecho trechoEquivalente; /** * Cor de uma Aresta. * A cor indica o numero de rotas que passa pela aresta. **/ Color cor; /** * Nome da cor da aresta. **/ String nomecor; /** * Indica se a aresta está realçada ou não. * Se a aresta estiver realçada, a cor desenhada é corRealce, * caso contrário é cor. **/ boolean realce; /** * A cor da aresta realçada. **/ static final Color corRealce; /** * Metodos **/ /** * Cria uma aresta vazia * Entrada: Nenhuma * Saida: Nova aresta **/ public Aresta() { verticeInicial = null; verticeFinal = null; cor = null; nomecor = new String("apagada"); } /** * Cria uma Aresta baseada em um trecho. * Busca as informacoes de ponto inicial e final no trecho. * Entrada: "TrechoEquivalente" trecho que serah representado * graficamente atraves da aresta. * Saida: Nova Aresta **/ public Aresta(Trecho TrechoEquivalente) { Ponto temp; this.trechoEquivalente = TrechoEquivalente; temp = TrechoEquivalente.getInicio(); verticeInicial.setX((int)temp.getX()); verticeInicial.setY((int)temp.getY()); temp = TrechoEquivalente.getFim(); verticeFinal.setX((int)temp.getX()); verticeFinal.setY((int)temp.getY()); cor = new Color(000000); // toda aresta eh criada preta nomecor = new String("preto"); } /** * Cria uma Aresta baseada nos pontos de vertice inicial e final * Entrada:Vertices inicial e final da aresta. * Saida: Nova Aresta **/ public Aresta(Vertice vinicial, Vertice vfinal) { verticeInicial = vinicial; verticeFinal = vfinal; cor = new Color(000000); nomecor = new String("preto"); } /** * Altera a cor da Aresta para "cor" passada como parametro. * Entrada: nova cor da aresta * Saida: Nenhuma **/ public void setCor(String cor) { if (cor.equals("preto")) { this.cor = new Color(000000); nomecor = "preto"; } else if (cor.equals("azul claro")) { this.cor = new Color(7832572); nomecor = "azul claro"; } else if (cor.equals("azul")) { this.cor = new Color(255); nomecor = "azul"; } else if (cor.equals("azul escuro")) { this.cor = new Color(197539); nomecor = "azul escuro"; } else if (cor.equals("verde claro")) { this.cor = new Color(64612); nomecor = "verde claro"; } else if (cor.equals("verde")) { this.cor = new Color(65280); nomecor = "verde"; } else if (cor.equals("verde escuro")) { this.cor = new Color(39168); nomecor = "verde escuro"; } else if (cor.equals("amarelo claro")) { this.cor = new Color(16383828); nomecor = "amarelo claro"; } else if (cor.equals("amarelo")) { this.cor = new Color(16776960); nomecor = "amarelo"; } else if (cor.equals("amarelo escuro")) { this.cor = new Color(14404612); nomecor = "amarelo escuro"; } else if (cor.equals("laranja claro")) { this.cor = new Color(16758095); nomecor = "laranja claro"; } else if (cor.equals("laranja")) { this.cor = new Color(16750848); nomecor = "laranja"; } else if (cor.equals("laranja escuro")) { this.cor = new Color(15035136); nomecor = "laranja escuro"; } else if (cor.equals("vermelho claro")) { this.cor = new Color(16723245); nomecor = "vermelho claro"; } else if (cor.equals("vermelho")) { this.cor = new Color(16711680); nomecor = "vermelho"; } else { this.cor = new Color(10027008); nomecor = "vermelho escuro"; } } /** * Altera a cor da Aresta em funcao do numero de rotas que passa por ela. * Entrada: Numero de rotas que passa pelo trecho * Saida: Aresta com cor alterada **/ public void setCor(int flag) { if (flag == 1) { switch(this.cor.getRGB()) { case 000000 : this.setCor("azul claro"); break; case 7832572 : this.setCor("azul"); break; case 255 : this.setCor("azul escuro"); break; case 197539 : this.setCor("verde claro"); break; case 64612 : this.setCor("verde"); break; case 65280 : this.setCor("verde escuro"); break; case 39168 : this.setCor("amarelo claro"); break; case 16383828 : this.setCor("amarelo"); break; case 16776960 : this.setCor("amarelo escuro"); break; case 14404612 : this.setCor("laranja claro"); break; case 16758095 : this.setCor("laranja"); break; case 16750848 : this.setCor("laranja escuro"); break; case 15035136 : this.setCor("vermelho claro"); break; case 16723245 : this.setCor("vermelho"); break; case 16711680 : this.setCor("vermelho escuro"); break; } } else { switch(this.cor.getRGB()) { case 7832572 : this.setCor("preto"); break; case 255 : this.setCor("azul claro"); break; case 197539 : this.setCor("azul"); break; case 64612 : this.setCor("azul escuro"); break; case 665280 : this.setCor("verde claro"); break; case 39168 : this.setCor("verde"); break; case 16383828 : this.setCor("verde escuro"); break; case 16776960 : this.setCor("amarelo claro"); break; case 14404612 : this.setCor("amarelo"); break; case 16758095 : this.setCor("amarelo escuro"); break; case 16750848 : this.setCor("laranja claro"); break; case 15035136 : this.setCor("laranja"); break; case 16723245 : this.setCor("laranja escuro"); break; case 16711680 : this.setCor("vermelho claro"); break; case 10027008 : this.setCor("vermelho"); break; } } } /** * Devolve a cor da Aresta * Entrada: Nenhuma * Saida: Cor da Aresta **/ public Color getCor() { return cor; } /** * Devolve o nome da cor * Entrada: Nenhuma * Saida: Nome da cor da aresta **/ public String getNomecor() { return nomecor; } /** * Altera o atributo vertice inicial para o valor passado como parametro. * Entrada: Novo vertice inicial * Saida: Nenhuma **/ public void setVerticeInicial(Vertice Novo_Vertice) { verticeInicial = Novo_Vertice; } /** * Altera o atributo vertice final para o valor passado como parametro. * Entrada: Novo vertice final * Saida: Nenhuma **/ public void setVerticeFinal(Vertice Novo_Vertice ) { verticeFinal = Novo_Vertice; } /** * Devolve o atributo vertice inicial do objeto em uso. * Entrada: Nenhuma * Saida: Vertice Inicial da Aresta **/ public Vertice getVerticeInicial() { return verticeInicial; } /** * Devolve o atributo vertice final do objeto em uso. * Entrada: Nenhuma * Saida: Vertice final da Aresta **/ public Vertice getVerticeFinal() { return verticeFinal; } /** * Devolveo trecho equivalente desta aresta * Entrada: Nenhuma * Saida: O trecho que esta aresta desenha **/ public Trecho getTrechoEquivalente() { return trechoEquivalente; } /** * Altera o valor do vertice inicial e final por um fator entrado **/ public void multInicial(float fator) { verticeInicial.multiplicaCoordenada(fator); } public void multFinal(float fator) { verticeFinal.multiplicaCoordenada(fator); } /** * Altera os valores dos X e Y dos vertices iniciais e finais **/ public void setInicialX(int x) { verticeInicial.setX(x); } public void setInicialY(int x) { verticeInicial.setY(x); } public void setFinalX(int x) { verticeFinal.setX(x); } public void setFinalY(int x) { verticeFinal.setY(x); } /** * Realça a cor da aresta * Entrada: Nenhuma * Saida: Booleano informando se a aresta foi ou não realçada. **/ public boolean Realcar() { if (realce) { realce = false; } else { realce = true; }; return realce; } /** * Retorna TRUE se a aresta estiver realçada e FALSE caso contrário. * Entrada: Nada * Saida: Um valor booleano. **/ public boolean GetRealce() { return realce; } /** * Retorna a cor de realce. * Entrada: Nenhuma * Saida: A cor de aresta realçada **/ public Color GetCorRealce() { return corRealce; } }// fim de Aresta