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

geometria.C

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= geometria.cc                                              Julio de 1998 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definiciones basicas para las clases de geometria                       =
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 #include "matriz4.h"
00024 
00025 #include <stdio.h>
00026 
00027 //===========================================================================
00028 //= Clase GEOMETRIA                                                         =
00029 //===========================================================================
00030 
00031 GEOMETRIA *
00032 GEOMETRIA::crear_copia(void)
00038 {
00039     return NULL;
00040 }
00041 
00042 void
00043 GEOMETRIA::minmax(VECTOR *min, VECTOR *max)
00044 {
00045     min->x = -1;
00046     min->y = -1;
00047     min->z = -1;
00048     max->x = 1;
00049     max->y = 1;
00050     max->z = 1;
00051 }
00052 #ifdef GL_ENABLED
00053 
00054 void
00055 pintar_cubo(double lado) 
00056 {
00057     glDisable(GL_LIGHTING);
00058     glBegin(GL_LINE_LOOP);
00059         glVertex3d(-lado/2, -lado/2, -lado/2);
00060         glVertex3d(lado/2, -lado/2, -lado/2);
00061         glVertex3d(lado/2, lado/2, -lado/2);
00062         glVertex3d(-lado/2, lado/2, -lado/2);
00063     glEnd();
00064     glBegin(GL_LINE_LOOP);
00065         glVertex3d(-lado/2, -lado/2, lado/2);
00066         glVertex3d(lado/2, -lado/2, lado/2);
00067         glVertex3d(lado/2, lado/2, lado/2);
00068         glVertex3d(-lado/2, lado/2, lado/2);
00069     glEnd();
00070     glBegin(GL_LINES);
00071         glVertex3d(-lado/2, -lado/2, -lado/2);
00072         glVertex3d(-lado/2, -lado/2, lado/2);
00073         glVertex3d(lado/2, -lado/2, -lado/2);
00074         glVertex3d(lado/2, -lado/2, lado/2);
00075         glVertex3d(lado/2, lado/2, -lado/2);
00076         glVertex3d(lado/2, lado/2, lado/2);
00077         glVertex3d(-lado/2, lado/2, -lado/2);
00078         glVertex3d(-lado/2, lado/2, lado/2);
00079     glEnd();
00080 }
00081 
00082 void
00083 pintar_cubo_solido(double l)
00084 {
00085     int i;
00086 
00087     for ( i = 0; i < 6; i++ ) {
00088       glBegin(GL_POLYGON);
00089         glNormal3dv(NORMALES_cubo[i]);
00090         glTexCoord2dv(TEXTURAS_cubo[i][0]);
00091         glVertex3d(l * COORDENADAS_cubo[i][0][0],
00092                    l * COORDENADAS_cubo[i][0][1],
00093                    l * COORDENADAS_cubo[i][0][2]);
00094         glNormal3dv(NORMALES_cubo[i]);
00095         glTexCoord2dv(TEXTURAS_cubo[i][1]);
00096         glVertex3d(l * COORDENADAS_cubo[i][1][0],
00097                    l * COORDENADAS_cubo[i][1][1],
00098                    l * COORDENADAS_cubo[i][1][2]);
00099         glNormal3dv(NORMALES_cubo[i]);
00100         glTexCoord2dv(TEXTURAS_cubo[i][2]);
00101         glVertex3d(l * COORDENADAS_cubo[i][2][0],
00102                    l * COORDENADAS_cubo[i][2][1],
00103                    l * COORDENADAS_cubo[i][2][2]);
00104         glNormal3dv(NORMALES_cubo[i]);
00105         glTexCoord2dv(TEXTURAS_cubo[i][3]);
00106         glVertex3d(l * COORDENADAS_cubo[i][3][0],
00107                    l * COORDENADAS_cubo[i][3][1],
00108                    l * COORDENADAS_cubo[i][3][2]);
00109       glEnd();
00110     }
00111 }
00112 
00113 void
00114 pintar_paralelepipedo(VECTOR p1, VECTOR p2)
00115 {
00116     glDisable(GL_LIGHTING);
00117     glBegin(GL_LINE_LOOP);
00118         glVertex3d(p1.x, p1.y, p1.z);    glVertex3d(p2.x, p1.y, p1.z);
00119         glVertex3d(p2.x, p2.y, p1.z);    glVertex3d(p1.x, p2.y, p1.z);
00120     glEnd();
00121     glBegin(GL_LINE_LOOP);
00122         glVertex3d(p1.x, p1.y, p2.z);    glVertex3d(p2.x, p1.y, p2.z);
00123         glVertex3d(p2.x, p2.y, p2.z);    glVertex3d(p1.x, p2.y, p2.z);
00124     glEnd();
00125     glBegin(GL_LINES);
00126         glVertex3d(p1.x, p1.y, p1.z);    glVertex3d(p1.x, p1.y, p2.z);
00127         glVertex3d(p2.x, p1.y, p1.z);    glVertex3d(p2.x, p1.y, p2.z);
00128         glVertex3d(p2.x, p2.y, p1.z);    glVertex3d(p2.x, p2.y, p2.z);
00129         glVertex3d(p1.x, p2.y, p1.z);    glVertex3d(p1.x, p2.y, p2.z);
00130     glEnd();
00131 }
00132 
00133 #endif
00134 
00135 //===========================================================================
00136 //= EOF                                                                     =
00137 //===========================================================================
00138 

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.