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

flecha.C

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= flecha.cc                                            Septiembre de 1999 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definiciones de la clase FLECHA                                         =
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 #include "toolkits/geom/geometria.h"
00023 
00024 #ifdef VEL_ROSITA
00025     #include "toolkits/geom/flecha.h"
00026 #endif
00027 
00028 #include <stdio.h>
00029 
00030 //===========================================================================
00031 //= Clase FLECHA                                                            =
00032 //===========================================================================
00033 
00034 FLECHA::FLECHA(double l_flecha,double l_punta,double g_cuerpo,double g_punta)
00035     : _punta(g_punta, 0, l_punta), 
00036       _cuerpo(g_cuerpo, g_cuerpo, l_flecha-l_punta)
00037 {
00038     largo_flecha = l_flecha;
00039     largo_punta = l_punta;
00040     grosor_cuerpo = g_cuerpo;
00041     grosor_punta = g_punta;
00042 }
00043 
00044 FLECHA::~FLECHA()
00045 {
00046     ;
00047 }
00048 
00049 void
00050 FLECHA::minmax(VECTOR *min, VECTOR *max)
00051 {
00052     double r = MAXIMO(grosor_cuerpo, grosor_punta);
00053 
00054     min->x = -largo_flecha/2;
00055     min->y = -r;
00056     min->z = -r;
00057     max->x = largo_flecha/2;
00058     max->y = r;
00059     max->z = r;
00060 }
00061 
00062 #ifdef GL_ENABLED
00063 void
00064 FLECHA::pintar_gl(CALIDAD_VISUAL *Calidad, MATERIAL* Material,
00065        CAMARA * /*Camara*/)
00069 {
00070     glPushMatrix();
00071 
00072     VECTOR p1(-largo_flecha/2, 0, 0), p2(largo_flecha/2, 0, 0);
00073 
00074     glShadeModel(GL_FLAT);
00075 
00076     if ( Calidad->con_cajas ) PINTAR_MINMAX_GL();
00077 
00078     //- Pintado de bordes --------------------------------------------------
00079     COLOR cb(1, 0, 0);
00080 
00081     if ( Calidad->con_bordes ) {
00082         glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
00083         Calidad->activar_bordes_gl(cb, Material);
00084         PINTAR_VECTOR_GL(p1, p2, grosor_cuerpo, largo_punta, grosor_punta);
00085     }
00086 
00087     //- Pintado de caras ---------------------------------------------------
00088     COLOR c(1, 1, 1);
00089 
00090     if ( Calidad->con_caras ) {
00091         glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
00092         Material->activar_gl();
00093         Calidad->activar_caras_gl(c, Material);
00094         if ( Calidad->con_caustics ) {
00095             Calidad->activar_textura_gl();
00096         }
00097         ACTIVAR_POLYGON_OFFSET();
00098         PINTAR_VECTOR_GL(p1, p2, grosor_cuerpo, largo_punta, grosor_punta);
00099         DESACTIVAR_POLYGON_OFFSET();
00100     }
00101 
00102     glPopMatrix();
00103 }
00104 #endif
00105 
00106 void
00107 FLECHA::pintar_aqz(FILE *fd)
00108 {
00109     fprintf(fd, "    // Pilas: No hay pintar_aqz... \n");
00110     fprintf(fd, "    geometria ESFERA 1 \"\"\n");
00111 }
00112 
00113 void
00114 FLECHA::pintar_povray(FILE *fd)
00115 {
00116     VECTOR p1(-largo_flecha/2, 0, 0), p2(largo_flecha/2, 0, 0);
00117     PINTAR_VECTOR_POVRAY(fd, p1, p2, grosor_cuerpo, largo_punta, grosor_punta);
00118 }
00119 
00120 void
00121 FLECHA::anexar_textura(IMAGEN * /*img*/)
00122 {
00123     ;
00124 }
00125 
00126 int
00127 FLECHA::clasificar_punto(VECTOR /*p*/)
00128 {
00129     return -1;
00130 }
00131 
00132 GEOMETRIA *
00133 FLECHA::crear_copia(void)
00134 {
00135     return NULL;
00136 }
00137 
00138 //===========================================================================
00139 //= EOF                                                                     =
00140 //===========================================================================
00141 

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.