Changeset 834 for GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/leaves
- Timestamp:
- 04/26/06 19:02:47 (19 years ago)
- Location:
- GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/leaves
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/leaves/Arbol.cpp
r831 r834 522 522 { 523 523 j=i; 524 while (Hojas[j].padre !=-1) j= Hojas[j].padre;524 while (Hojas[j].padre > -1) j= Hojas[j].padre; 525 525 Hojas[i].raiz = j; 526 526 -
GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/leaves/Hoja.cpp
r830 r834 1 #include < GL\glut.h>1 #include <math.h> 2 2 #include "Hoja.h" 3 3 … … 7 7 //-------------------------------------------------------------------------------------------------------------------------------- 8 8 Hoja::Hoja(void) 9 { 10 11 Vert_Hoja[0] = Vert_Hoja[1] = Vert_Hoja[2] = Vert_Hoja[3] = 0;9 { 10 Vert_Hoja[0] = Vert_Hoja[1] = Vert_Hoja[2] = Vert_Hoja[3] =0; 11 Centro[0] = Centro[1] = Centro[2] = 0; 12 12 Normal[0] = Normal[1] = Normal[2] = 0; 13 hoja_cerca=-1; 14 Cuantas_hojas = 1; 15 dist = coplanar = criterio = hoja_cop = hoja_crit =-1; 16 existe = true; 13 17 padre=-1; 14 Cuantas_hojas = 1;15 18 hijoi = hijod = -1; 16 19 raiz= visible= -1; 17 // prev = next = -1;18 19 20 20 } 21 21 … … 27 27 Hoja::Hoja (const Hoja& aHoja) 28 28 { 29 30 31 29 Cuantas_hojas = aHoja.Cuantas_hojas;; 30 hoja_cerca = aHoja.hoja_cerca; 31 hoja_crit = aHoja.hoja_crit; 32 dist = aHoja.dist; 33 existe = aHoja.existe; 34 coplanar = aHoja.coplanar; 35 hoja_cop = aHoja.hoja_cop; 36 criterio = aHoja.criterio; 37 for ( int i=0;i<3;i++){ 38 Centro[i] = aHoja.Centro[i]; 39 Normal[i] = aHoja.Normal[i]; 40 } 41 for (i = 0L; i < 4; i++) 42 Vert_Hoja[i] = aHoja.Vert_Hoja[i]; 43 32 44 padre = aHoja.padre; 33 45 hijoi = aHoja.hijoi; … … 35 47 visible = aHoja.visible; 36 48 raiz = aHoja.raiz; 37 38 for (int i = 0L; i < 4; i++)39 Vert_Hoja[i] = aHoja.Vert_Hoja[i];40 for ( i = 0L; i < 3; i++)41 Normal[i] = aHoja.Normal[i];42 43 44 49 } 45 50 … … 47 52 48 53 //-------------------------------------------------------------------------------------------------------------------------------- 49 // Destructor. We must deallocate the memory allocated for pointers to Vert_Hojaand edges54 // Destructor. We must deallocate the memory allocated for pointers to vertices and edges 50 55 //-------------------------------------------------------------------------------------------------------------------------------- 51 56 Hoja::~Hoja (void) … … 54 59 55 60 61 //-------------------------------------------------------------------------------------------------------------------------------- 62 // CALCULA LA DISTANCIA ENTRE HOJAS 63 //-------------------------------------------------------------------------------------------------------------------------------- 64 65 float Hoja::Distancia (Hoja& Hoja1) 66 { 67 float dist =0; 68 float x1,y1,z1; 69 70 x1 = Hoja1.Centro[0]; y1 = Hoja1.Centro[1] ; z1 = Hoja1.Centro[2]; 71 72 73 //DISTANCIA ENTRE CENTROS 74 75 dist = ((Centro[0]-x1)*(Centro[0]-x1)) + ((Centro[1]-y1)*(Centro[1]-y1)) + ((Centro[2]-z1)*(Centro[2]-z1)); 76 77 return (dist); 78 } 79 80 81 //-------------------------------------------------------------------------------------------------------------------------------- 82 // CALCULA LA COPLANARIDAD ENTRE HOJAS 83 //-------------------------------------------------------------------------------------------------------------------------------- 84 85 float Hoja::Coplanaridad (Hoja& Hoja1) 86 { 87 float cop =0; 88 float modulo1, modulo2; 89 float x1,y1,z1, nx1, ny1, nz1; 90 float nx, ny, nz; 91 92 //hoja pasada como parametro, normalizo las componentes 93 x1 = Hoja1.Normal[0]; y1 = Hoja1.Normal[1] ; z1 = Hoja1.Normal[2]; 94 modulo1 = sqrt ( (x1*x1) + (y1*y1) + (z1*z1)); 95 nx1 = x1 / modulo1; 96 ny1 = y1 / modulo1; 97 nz1 = z1 / modulo1; 98 99 // hoja desde la que llamo 100 101 modulo2 = sqrt ( (Normal[0]*Normal[0]) + (Normal[1]*Normal[1]) + (Normal[2]*Normal[2])); 102 nx = Normal[0] / modulo2; 103 ny = Normal[1] / modulo2; 104 nz = Normal[2] / modulo2; 105 106 // producto escalar : si es proximo a 0, perpendiculares, a 1, coplanares 107 108 cop = (nx1*nx) + (ny1*ny) + (nz1*nz); 109 110 111 return (fabs(cop)); 112 113 } 114
Note: See TracChangeset
for help on using the changeset viewer.