/* Mathematiques de l'informatique graphique */ /* Transformation de visualisation */ /* en projection parallele orthographique */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Octobre 2011 */ #include #include #include #include "TransformationGeometrique.h" #include "ProjectionParalleleOrthographique.h" #include "Position3D.h" #include "Direction3D.h" ProjectionParalleleOrthographique::ProjectionParalleleOrthographique(Position3D *po,Position3D *pv):TransformationGeometrique() { Direction3D n(po,pv); n.normalisation(); double a = 1.0/sqrt(1.0-n.c[1]*n.c[1]); c[0][0] = -a*n.c[2]; c[0][1] = 0.0; c[0][2] = a*n.c[0]; c[0][3] = a*(po->c[0]*n.c[2]-po->c[2]*n.c[0]); c[1][0] = -a*n.c[0]*n.c[1]; c[1][1] = 1.0/a; c[1][2] = -a*n.c[1]*n.c[2]; c[1][3] = a*n.c[1]*(po->c[0]*n.c[0]+po->c[2]*n.c[2])-po->c[1]/a; c[2][0] = -n.c[0]; c[2][1] = -n.c[1]; c[2][2] = -n.c[2]; c[2][3] = po->c[0]*n.c[0]+po->c[1]*n.c[1]+po->c[2]*n.c[2]; } ProjectionParalleleOrthographique::~ProjectionParalleleOrthographique(void) { }