Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

octree_n.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= octree_n.h                                            Diciembre de 1999 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definicion de la clase estructural de OCTREE (NODO_OCTREE)              =
00005 //=-------------------------------------------------------------------------=
00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO   =
00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN   =
00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES,     = 
00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO,        =
00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO,  =
00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA   =
00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES       =
00013 //= ("ACTIVIDADES DE ALGO RIESGO").                                         =
00014 //=-------------------------------------------------------------------------=
00015 //= Autor original: Oscar J. Chavarro G.  A.K.A. JEDILINK. Copyright (c),   =
00016 //= 1997 - 2003, oscarchavarro@hotmail.com                                  =
00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia   =
00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la  =
00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. =
00020 //===========================================================================
00021 
00022 #ifndef __NODO_OCTREE__
00023 #define __NODO_OCTREE__
00024 
00025 #include "jed_defs.h"
00026 #include "toolkits/geom/geometria.h"
00027 
00028 class NODO_OCTREE {
00029   private:
00030     BOOLEAN relleno;
00031     NODO_OCTREE *hijos;
00032 
00033     void compactar(void);
00034 
00035   public:
00036     void init(void);
00037     void calcular(GEOMETRIA *Fuente, int nivel, VECTOR origen, double lado);
00038   #ifdef GL_ENABLED
00039     void pintar_gl(VECTOR origen, double lado);
00040   #endif 
00041     void elim(void);
00042     void leer(FILE *fd);
00043     void escribir(FILE *fd);
00044 };
00045 
00046 extern int OFFSET_octree;
00047 extern BYTE BYTE_octree;
00048 
00049 inline char 
00050 leer_elemento_octree(FILE *fd)
00053 {
00054     char d;
00055 
00056     if ( (OFFSET_octree % 4) == 0) lea_BYTE(&BYTE_octree, fd);
00057     switch ( OFFSET_octree ) {
00058       case 0:   d = (char)((BYTE_octree & 0xC0) >> 6);   break;
00059       case 1:   d = (char)((BYTE_octree & 0x30) >> 4);   break;
00060       case 2:   d = (char)((BYTE_octree & 0x0C) >> 2);   break;
00061       case 3:   d = (char)((BYTE_octree & 0x03));        break;
00062       default:  d = 3;  break;
00063     }
00064     OFFSET_octree++;
00065     if ( OFFSET_octree >= 4 ) OFFSET_octree = 0;
00066 
00067     return d;
00068 }
00069 
00070 inline void 
00071 escribir_elemento_octree(FILE *fd, int elem)
00075 {
00076     //char d[4] = {'*', '-', '(', ')'};
00077     //fprintf(fd, "%c", d[elem]);
00078     BYTE n;
00079 
00080     n = (BYTE)((elem & 0x03) << 2*(3-OFFSET_octree));
00081     BYTE_octree |= n;
00082 
00083     OFFSET_octree++;
00084 
00085     if ( OFFSET_octree >= 4 ) {
00086         fwrite(&BYTE_octree, sizeof(BYTE), 1, fd);
00087         BYTE_octree = 0x00;
00088         OFFSET_octree = 0; 
00089     }
00090 }
00091 
00092 #endif // __NODO_OCTREE__
00093 
00094 //===========================================================================
00095 //= EOF                                                                     =
00096 //===========================================================================
00097 
00098 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.