/* Mathematiques de l'informatique graphique */ /* Direction en 3D */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Novembre 2012 */ #ifndef ____DIRECTION3D____ #define ____DIRECTION3D____ class Position3D; #include "CoordonneesHomogenes3D.h" class Direction3D : public CoordonneesHomogenes3D { 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 this par une direction */ void produitVectoriel(Direction3D *d); ////////////////////////////////////////////////// /* Methode de calcul de la direction */ /* de reflexion d'un rayon lumineux */ int reflexion(Direction3D *i,Direction3D *n); /* Methode de calcul de la direction */ /* de transmission d'un rayon lumineux */ int transmission(Direction3D *i,Direction3D *n,double ni,double nt); ////////////////////////////////////////////////// }; #endif