/* Mathematiques de l'informatique graphique */ /* Direction en 3D */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Novembre 2011 */ #ifndef ____DIRECTION3D____ #define ____DIRECTION3D____ class Position3D; #include "CoordonneesHomogenes.h" class Direction3D : public CoordonneesHomogenes { public : /* Constructeurs */ Direction3D(void); Direction3D(double x,double y,double z); Direction3D(Direction3D *c); Direction3D(Position3D *p1,Position3D *p2); /* Destructeur */ ~Direction3D(void); /* Methode de calcul de la norme */ double norme(void); /* Methode de normalisation */ double normalisation(void); /* Methode de calcul du produit scalaire */ /* de deux directions */ double produitScalaire(Direction3D *d); /* Methode de calcul du produit vectoriel */ /* de deux directions */ void produitVectoriel(Direction3D *d1,Direction3D *d2); /* Methode de calcul du produit vectoriel */ /* de deux directions */ Direction3D *produitVectoriel(Direction3D *d); /* Methode de calcul de la direction */ /* du rayon reflechi au niveau d'une interface */ bool reflechi(Direction3D *i,Direction3D *n); /* Methode de calcul de la direction */ /* du rayon transmis au niveau d'une interface */ bool transmis(Direction3D *i,Direction3D *n,double rp); }; #endif