/* Mathematiques de l'informatique graphique */ /* Coordonnees homogenes en 3D */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Octobre 2010 */ #include #include #include #include "CoordonneesHomogenes.h" #include "TransformationGeometrique.h" CoordonneesHomogenes::CoordonneesHomogenes(void) { c[0] = c[1] = c[2] = 0.0; c[3] = 1.0; } CoordonneesHomogenes::CoordonneesHomogenes(double x,double y, double z,double t) { c[0] = x; c[1] = y; c[2] = z; c[3] = t; } CoordonneesHomogenes::CoordonneesHomogenes(CoordonneesHomogenes *ch) { c[0] = ch->c[0]; c[1] = ch->c[1]; c[2] = ch->c[2]; c[3] = ch->c[3]; } CoordonneesHomogenes::~CoordonneesHomogenes(void) { } void CoordonneesHomogenes::print(void) { printf("%10.4lf %10.4lf %10.4lf %10.4lf",c[0],c[1],c[2],c[3]); } void CoordonneesHomogenes::transforme(TransformationGeometrique *t) { double c[4]; for ( int i = 0 ; i < 4 ; i++ ) { c[i] = 0.0; for ( int j = 0 ; j < 4 ; j++ ) c[i] += t->c[i][j] * this->c[j]; } for ( int i = 0 ; i < 4 ; i++ ) this->c[i] = c[i]; }