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

#ifndef ____POSITION3D____
#define ____POSITION3D____

#include "CoordonneesHomogenes3D.h"

class Position3D : public CoordonneesHomogenes3D {

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

  public :

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

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

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

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

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

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

#endif
