00001 //=========================================================================== 00002 //= texto_3d.h Marzo de 1999 = 00003 //=-------------------------------------------------------------------------= 00004 //= Definiciones de la clase TEXTO_3D = 00005 //= NOTA: No incluya este encabezado en los modulos. Incluya a = 00006 //= geometria.h. = 00007 //=-------------------------------------------------------------------------= 00008 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO = 00009 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN = 00010 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES, = 00011 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO, = 00012 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO, = 00013 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA = 00014 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES = 00015 //= ("ACTIVIDADES DE ALGO RIESGO"). = 00016 //=-------------------------------------------------------------------------= 00017 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00018 //= 1997 - 2003, oscarchavarro@hotmail.com = 00019 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00020 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00021 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00022 //=========================================================================== 00023 00024 #include "jed_defs.h" 00025 00026 #ifndef __GEOMETRIA__ 00027 #error "No incluya a texto_3d.h, incluya a geometria.h!" 00028 #endif 00029 00030 #ifdef VEL_ROSITA 00031 #include "toolkits/geom/geometria.h" 00032 #endif 00033 00034 class TEXTO_3D : public GEOMETRIA_3D { 00035 private: 00036 BOOLEAN estoy_listo; 00037 double RTS; 00038 double RTF; 00039 double font_size; 00040 VECTOR size; 00041 int text_length; 00042 char *texto; 00043 char *archivo_ttf; 00044 #ifdef GLTT_ENABLED 00045 GLTTFont *Tfont; 00046 FTGlyphVectorizer *vec; 00047 CARACTER_GLTT **tri; 00048 FTFace *face; 00049 00050 void init(FTFace *f, char *text); 00051 void trace_bordes(FTGlyphVectorizer &v); 00052 #endif 00053 00054 void trace_caras(int i); 00055 void elim(void); 00056 public: 00057 TEXTO_3D(char *face_name, char *text, double fs); 00058 virtual ~TEXTO_3D(); 00059 00060 #ifdef GL_ENABLED 00061 void 00062 pintar_gl(CALIDAD_VISUAL *Calidad, MATERIAL* Material, CAMARA *Camara); 00063 #endif 00064 void pintar_povray(FILE *fd); 00065 void pintar_aqz(FILE *fd); 00066 virtual void anexar_textura(IMAGEN *img); 00067 virtual int clasificar_punto(VECTOR p); 00068 virtual GEOMETRIA *crear_copia(void); 00069 void minmax(VECTOR *min, VECTOR *max); 00070 }; 00071 00072 //=========================================================================== 00073 //= EOF = 00074 //=========================================================================== 00075