///
/// \file Position2D.h
/// Mathematiques de l'informatique graphique: Position 2D
/// 
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///

#ifndef ____POSITION2D____
#define ____POSITION2D____

#include "CoordonneesHomogenes2D.h"

///
/// \class Position2D
/// Mathematiques de l'informatique graphique: Position 2D
/// 
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///

class Position2D : public CoordonneesHomogenes2D {

  public :

///
/// Constructeur sans parametre.
///
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///
    Position2D(void);

///
/// Constructeur avec parametres.
///
/// @param x La coordonnee x.
/// @param y La coordonnee y.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///
    Position2D(double x,double y);

///
/// Constructeur par clonage.
///
/// @param c La Position2D a cloner.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///
    Position2D(Position2D *c);

///
/// Destructeur.
/// 
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///
    ~Position2D(void);

///
/// Calcul de la distance entre this et une Position2D.
///
/// @param p La position2D.
/// @return La distance.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///
    double distance(Position2D *p);

///
/// Calcul du carre de la distance entre this et une Position2D.
///
/// @param p La position2D.
/// @return Le carre de la distance.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///
    double carreDistance(Position2D *p);
};

#endif
