/* Mathematiques de l'informatique graphique */ /* Translation 3D en coordonnees homogenes */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Mars 2019 */ #include #include #include #include "TG3D.h" #include "Tr3D.h" #include "Dir3D.h" /* Constructeurs */ Tr3D::Tr3D(void):TG3D() { } Tr3D::Tr3D(double tx,double ty,double tz):TG3D() { c[0][3] = tx; c[1][3] = ty; c[2][3] = tz; } Tr3D::Tr3D(Dir3D *d):TG3D() { c[0][3] = d->getx(); c[1][3] = d->gety(); c[2][3] = d->getz(); } Tr3D::Tr3D(Tr3D *tr):TG3D(tr) { } /* Destructeur */ Tr3D::~Tr3D(void) { } /* Setter */ bool Tr3D::set(double m[4][4]) { if ( estTranslation(m) ) { TG3D::set(m); return true; } return false; } /* Test si une matrice 4x4 de double */ /* est representative d'une translation */ bool Tr3D::estTranslation(double m[4][4]) { return ( ( m[0][0] == 1.0 ) && ( m[1][1] == 1.0 ) && ( m[2][2] == 1.0 ) && ( m[3][3] == 1.0 ) && ( m[0][1] == 0.0 ) && ( m[0][2] == 0.0 ) && ( m[1][0] == 0.0 ) && ( m[1][2] == 0.0 ) && ( m[2][0] == 0.0 ) && ( m[2][1] == 0.0 ) && ( m[3][0] == 0.0 ) && ( m[3][1] == 0.0 ) && ( m[3][2] == 0.0 ) ); }