import java.io.*;
/**
 * Projet: PaintRevolution
 * <p>Title:UnPoint.java </p>
 * <p>Description:
 * Classe fondamentale qui instancie un objet de type UnPoint nécessaire à la
 * construction de n'importe quelle autre figure. </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Societe: IUT NANCY CHARLEMAGNE II</p>
 * @author VIGNERON GEOFFROY && GANGANELLI DORIAN
 * @version 3.0
 */
public class UnPoint implements Serializable {


  /**
   * Abscisse du point
   */
  private int x;
  /**
 * Ordonnée du point
 */
  private int y;


  /**
   *Constructeur principal de la classe qui permet de construire l'objet
   * @param abs abscisse du point
   * @param ord ordonnée du point
   */
  public  UnPoint( int abs , int ord ) {
    x = abs;
    y = ord;
  }
  /**
   * Méthode qui calcule la distance entre ce point et un autre point.
   * @param p2 points dont la distance est à calculer
   * @return valeur de la distance.
   */
  public double distance( UnPoint p2 ){
    int dabs,dord,absc,ord;
    dabs = p2.rendreX();
    dord = p2.rendreY();
    absc = x;
    ord  = y;
    double distance;
    distance = (dabs-absc)*(dabs-absc) + (dord-ord)*(dord-ord);
    distance = Math.sqrt(distance);
    return distance;
  }

  /**
   * Méthode qui permet de récupérer l'abscisse du point
   * @return int abscisse
   */
  public int rendreX() {
    return x;
  }

  /**
   * Méthode qui permet de récupérer l'ordonnée du point
   * @return int ordonnée
   */
  public int rendreY() {
    return y;
  }

  /**
   * Méthode qui permet de translater un point suivant les coordonnées en parametre
   * @param dx abscisse de translation
   * @param dy ordonne de translation
   */
  public void translation( int dx , int dy ) {
    x += dx;
    y += dy;

  }

}

