/* Segment de droite en 2D                      */
/*                                              */
/* Auteur: Nicolas JANEY                        */
/* nicolas.janey@univ-fcomte.fr                 */
/* Novembre 2012                                */

#ifndef ____SEGMENT2D____
#define ____SEGMENT2D____

class Position2D;
class Rectangle2D;

class Segment2D {

  public :
    Position2D *p1;
    Position2D *p2;

  public :

    /* Constructeurs                            */
    Segment2D(void);
    Segment2D(Position2D *p1,Position2D *p2);
    Segment2D(Segment2D *s);

    /* Destructeur                              */
    ~Segment2D(void);

    /* Dessin OpenGL                            */
    void draw(void);

    /* Abscisse correspondant a une ordonnee    */
    double abscisse(double ordonnee);

    /* Ordonnee correspondant a une abscisse    */
    double ordonnee(double abscisse);

    /* Clipping de Cohen-Sutherland             */
    int clip(Rectangle2D *r);
};

#endif
