/* Mathematiques de l'informatique graphique */ /* Ligne polygonale en 3D */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Novembre 2012 */ #include #include #include #include #include #include #include "LignePolygonale3D.h" #include "Position3D.h" /* Constructeurs */ LignePolygonale3D::LignePolygonale3D(void) { t = NULL; n = 0; } LignePolygonale3D::LignePolygonale3D(int np) { init(np); } LignePolygonale3D::LignePolygonale3D(LignePolygonale3D *lp) { init(lp->n); for ( int i = 0 ; i < n ; i++ ) for ( int j = 0 ; j < 4 ; j++ ) t[i]->c[i] = lp->t[i]->c[i]; } /* Destructeur */ LignePolygonale3D::~LignePolygonale3D(void) { for ( int i = 0 ; i < n ; i++ ) { if ( t[i] ) { delete(t[i]); } } delete(t); } /* Allocation pour np Position3D disponibles */ void LignePolygonale3D::init(int np) { t = ( np > 0 ) ? (Position3D **) calloc(np,sizeof(Position3D *)) : NULL; n = np; for ( int i = 0 ; i < np ; i++ ) t[i] = new Position3D(); } /* Dessin OpenGL */ void LignePolygonale3D::draw(void) { glBegin(GL_LINE_STRIP); for ( int i = 0 ; i < n ; i++ ) glVertex3dv(t[i]->c); glEnd(); } /* Constructeur de creation de courbes lissees */ LignePolygonale3D::LignePolygonale3D(LignePolygonale3D *lp,int np) { init(np); }