package pckDesenho;

/**
 * Titulo: VerticeAbs
 * Descricao: Interface abstrata de um vertice. 
 * @author GRUPO-A
 * @version 0.1
 */

public abstract class VerticeAbs {

    /**
     * Define o construtor da classe.
     * Entrada: Dois valores inteiros.
     * Saida: O objeto criado com os dois valores.
     */
    public abstract Vertice(int a, int b);

    /**
     * Define o construtor de um vertice sem parametros.
     * Entrada: Nada
     * Saida: Um vertive com coordenadas x=0 e y=0.
     */
    public abstract Vertice();

    /**
     * Muda o valor da coordenada x.
     * Entrada: O novo valor do atributo x.
     * Saida: O atributo x com o novo valor.
     */
    public abstract mudarX(int a);

    /**
     * Muda o valor da coordenada y.
     * Entrada: O novo valor do atributo y.
     * Saida: O atributo y com o novo valor.
     */
    public abstract mudarY(int a);

    /**
     * Multiplica as coordenadas x e y para 
     * obter o efeito de zoom in e zoom out.
     * Entrada: O multiplicador. Se for zoom in
     * o multiplicador deve ser maior que 1 e se
     * se for zoom out ele deve ser menor que 1
     * e, ao mesmo tempo, maoir que 0.
     * Saida: Os novos valores das coordenadas
     * x e y.
     */
    public abstract multiplicaCoordenada(int m);

    /**
     * Retorna o valor da coordenada x.
     * Entrada: Nada
     * Saida: O valor da coordenada x.
     */
    public abstract retornaX();

    /**
     * Retorna o valor da coordenada y.
     * Entrada: Nada
     * Saida: O valor da coordenada y.
     */
    public abstract retornaY();
