2 // C++ : Gestion des aretes
4 #include "HexVector.hxx"
8 // ======================================================== Constructeur
9 Vector::Vector (Document* doc, double dx, double dy, double dz)
16 // ======================================================== Constructeur bis
17 Vector::Vector (Vector* lautre)
18 : EltBase (lautre->el_root)
20 v_dx = lautre -> v_dx;
21 v_dy = lautre -> v_dy;
22 v_dz = lautre -> v_dz;
25 // ======================================================== calculNormale
26 // === Calcule un vecteur orthogonal et norme
27 int Vector::calculNormale (double& nx, double& ny, double& nz)
29 double epsil = (v_dx * v_dx + v_dy * v_dy + v_dz * v_dz)*1e-6;
31 if (v_dx > epsil || v_dx < -epsil) forme += 100;
32 if (v_dy > epsil || v_dy < -epsil) forme += 10;
33 if (v_dz > epsil || v_dz < -epsil) forme += 1;
38 // dx=dy=dz=0 : retour vecteur i + erreur
41 // dx = 0 : on prend le vecteur i
46 // dy = 0 : on prend le vecteur j
50 // dz = 0 : on prend le vecteur k
53 // dx, dy, dy non nuls : cas general;
57 double norme = sqrt (v_dx*v_dx + v_dy*v_dy);