Add documentation build

This commit is contained in:
PedroEdiaz
2024-09-16 23:50:50 +06:00
parent 15dc499cd9
commit 25e08fc406
2 changed files with 170 additions and 130 deletions

View File

@@ -15,7 +15,7 @@ LIB = \
$(LIBGLFW) $(LIBGLFW)
DOC = \ DOC = \
DESIGN.pdf design.html
CFLAGS = \ CFLAGS = \
-I./ext/cglm/include \ -I./ext/cglm/include \
@@ -23,6 +23,7 @@ CFLAGS = \
-Wall -Wno-unused-function -std=c89 -Wall -Wno-unused-function -std=c89
all: $(BIN) $(LIB) all: $(BIN) $(LIB)
doc: $(DOC)
$(BIN): $(OBJ) $(LIB) $(BIN): $(OBJ) $(LIB)
$(CC) -lGL -lglfw -L. -o $(BIN) $(OBJ) $(CC) -lGL -lglfw -L. -o $(BIN) $(OBJ)
@@ -39,13 +40,10 @@ clean:
clean-all: clean-all:
rm $(OBJ) $(DOC) $(LIB) $(BIN) rm $(OBJ) $(DOC) $(LIB) $(BIN)
.SUFFIXES: .ms .pdf .html .c .o .SUFFIXES: .nr .html .html .c .o
.ms.pdf: .nr.html:
cat $< | sed -e "s/^\s*//g" -e "/^$$/d" | tbl| groff -Tpdf -fC -ms > $@ cat $< | nulldoc > $@
.ms.html:
cat $< | sed -e "s/^\s*//g" -e "/^$$/d"| tbl | groff -Thtml -fC -ms > $@
.c.o: .c.o:
$(CC) $(CFLAGS) $< -c -o $@ $(CC) $(CFLAGS) $< -c -o $@

View File

@@ -1,143 +1,97 @@
.TL .PP CB
manigraph: Manual de Diseno ( ver 1.0 ) manigraph: Manual de Diseno ( ver 1.0 )
.AU .PP C
Diaz Camacho Pedro Emilio Diaz Camacho Pedro Emilio
.SH .SH 1
Resumen Resumen
.PP .PP
manigraph es un graficador de variedades que lee archivos binarios con un forma manigraph es un graficador de variedades que lee archivos binarios con un forma
to espacial, este viene con un manual explicando como correr el programa, como to espacial, este viene con un manual explicando como correr el programa, como
interactuar con el programa y las especificaciones del archivo binario. interactuar con el programa y las especificaciones del archivo binario.
.SH .NH 1
Tabla de contenidos
.QS
.IP 1
Tecnologias
.QS
.IP 1
Lenguajes.
.IP 2
Librerias.
.QE
.IP 2
Glosario
.IP 3
Archivos
.QS
.IP 1
Ejecutable
.IP 2
Ejemplo
.IP 3
Manual
.QE
.IP 4
Objetivos
.QS
.IP 1
Prioridad Alta
.IP 2
Prioridad Media
.IP 3
Prioridad Baja
.QE
.IP 5
Camino
.IP 6
Problemas
.QE
.NH
Tecnologias Tecnologias
.NH 2 .NH 2
Lenguajes: Lenguajes:
.QS .QS \(bu
.IP \(bu .IP
C89 C89
.QE .QE
.NH 2 .NH 2
Librerias: Librerias:
.QS .QS \(bu
.IP \(bu .IP
OpenGL OpenGL
.IP \(bu .IP
GLFW GLFW
.IP \(bu .IP
cglm cglm
.QE .QE
.NH .NH 1
Glosario
.IP variedad
Llamaremos variedad al archivo binario con la informacion para graficar
la variedad matematica.
.NH
Archivos Archivos
.QS .QS \(bu
.IP \(bu .IP
Ejecutable. Ejecutable.
.IP \(bu .IP
Ejemplo. Ejemplo.
.QS .QS
.IP \(bu .IP
Una libreria tipo STB, con las funciones para hacer variedades con una Una libreria tipo STB, con las funciones para hacer variedades con una
funcion parametrizadora. funcion parametrizadora.
.IP \(bu .IP
LA PARAMETRIZACION DEBE SER CONTINUA. LA PARAMETRIZACION DEBE SER CONTINUA.
.IP \(bu .IP
El codigo fuente de un programa que cree la variedad de una botella El codigo fuente de un programa que cree la variedad de una botella
de klein usando esta libreria. de klein usando esta libreria.
.QE .QE
.IP \(bu .IP
Manual Manual
.QS .QS
.IP \(bu .IP
Explicando como correr el programa desde la terminal. Explicando como correr el programa desde la terminal.
.IP \(bu .IP
Explicando como interactuar con el programa con el teclado y mouse. Explicando como interactuar con el programa con el teclado y mouse.
.IP \(bu .IP
Explicando el formato binario de las variedaedes. Explicando el formato binario de las variedaedes.
.IP \(bu .IP
Explicando la libreria STB. Explicando la libreria STB.
.QE .QE
.QE .QE
.NH .NH 1
Objetivos Objetivos
.NH 2 .NH 2
Prioridad alta Prioridad alta
.QS .QS _
.IP _ .IP
El programa debe actualizarse cuando interactuan con el. El programa debe actualizarse cuando interactuan con el.
.IP _ .IP
El usuario quiere: El usuario quiere:
.QS .QS
.IP X .IP X
Ver 3 ejes en todo momento. Ver 3 ejes en todo momento.
.IP _ .IP
Ver que ejes esta viendo. Ver que ejes esta viendo.
.IP _ .IP
Ver cuantos ejes hay. Ver cuantos ejes hay.
.QE .QE
.IP X .IP X
El usuario quiere: El usuario quiere:
.QS .QS X
.IP X .IP
Rotar estos ejes, Rotar estos ejes,
.IP X .IP
Ver donde quedan los ejes despues de la rotados. Ver donde quedan los ejes despues de la rotados.
.QE .QE
.IP _ .IP
El usuario experimentado quiere ejecutar el programa y pasar la variedad: El usuario experimentado quiere ejecutar el programa y pasar la variedad:
.QS .QS
.IP _ .IP
Como argumento del programa. Como argumento del programa.
.IP _ .IP
Desde la entrada standar del programa. Desde la entrada standar del programa.
.QE .QE
.QE .QE
@@ -145,98 +99,186 @@ Prioridad alta
.NH 2 .NH 2
Prioridad media Prioridad media
.QS .QS _
.IP _ .IP
El usuario quiere: El usuario quiere:
.QS .QS
.IP _ .IP
Cambiar los ejes que se ven por pares. Cambiar los ejes que se ven por pares.
.IP _ .IP
Cambiar los ejes donde esta la informacion de los ejes. Cambiar los ejes donde esta la informacion de los ejes.
.QE .QE
.IP _ .IP
El usuario quiere interactuar con el programa: El usuario quiere interactuar con el programa:
.QS .QS
.IP _ .IP
Usando solo el mouse. Usando solo el mouse.
.IP _ .IP X
Usando solo el teclado. Usando solo el teclado.
.QE .QE
.QE .QE
.NH 2 .NH 2
Prioridad baja Prioridad baja
.QS .QS _
.IP _ .IP
El usuario quiere guardar las transformaciones como un archivo GIF. El usuario quiere guardar las transformaciones como un archivo GIF.
.QE .QE
.NH .NH 1
Camino Camino
.QS .QS
.IP 0 .IP 0
Graficadora de un cubo. Graficadora de un cubo.
.QS .QS
.IP 1 .IP
Se hace un programa que muestre un cubo. Se hace un programa que muestre un cubo.
.IP 2 .IP
Se muestran los 3 ejes del cubo Se muestran los 3 ejes del cubo
.IP 3 .IP
Se rota el cubo en sus 3 ejes usando el teclado. Se rota el cubo en sus 3 ejes usando el teclado.
.IP 4 .IP
Se rota el cubo en sus 3 ejes usando el mouse. Se rota el cubo en sus 3 ejes usando el mouse.
.IP 5 .IP
Se muestran la etiqueta de los ejes. Se muestran la etiqueta de los ejes.
.IP
Se hace el formato de objetos multidimensionales.
.QE .QE
.IP 1 .IP
Formato. Programa ejemplo
.QS .QS
.IP 1 .IP
Se hace el formato de las variedades. Se hace un programa que divida un cuadrado en triangulos.
.IP 2 .IP
Se hace el codigo fuente ejemplo. Se mapea cada vertice del triangulo en un punto de la cinta de
.QS mobius usando una parametrizacion
.IP 1 .IP
Libreria STB. Se mapea cada vertice del triangulo en un punto de la botella de
.IP 2 klein usando una parametrizacion
Codigo fuente para hacer la variedad de la botella de klein. .IP
.QE Se divide cada lado de un cubo de n dimensiones, en triangulos.
.QE .QE
.IP 2 .IP
Graficadora de variedades Graficadora de variedades
.QS .QS
.IP 1 .IP
Se generaliza el programa para usar este formato. Se generaliza el programa para usar este formato.
.IP 2 .IP
Se muestran la informacion de los ejes mostrados y cuantos hay. Se muestran la informacion de los ejes mostrados y cuantos hay.
.IP 3 .IP
Se pueden cambiar los ejes por pares Se pueden cambiar los ejes por pares
.QS .QS
.IP 1 .IP
Usando el mouse. Usando el mouse.
.IP 2 .IP
Usando el teclado. Usando el teclado.
.QE .QE
.QE .QE
.IP 3 .IP
Detalles. Detalles.
.QS .QS
.IP 1 .IP
Se anima el cambio de eje. Se anima el cambio de eje.
.IP 2 .IP
Se hace el generador de GIF. Se hace el generador de GIF.
.IP 3 .IP
Se puede cambiar el shader Se puede cambiar el shader
.IP 4 .IP
Documentacion Documentacion
.QE .QE
.QE .QE
.NH .NH 1
Cronograma
.PP
.TS lclc
.CS
.CL
Persona
.CL
Ver
.CL
Objetivo
.CL
Fecha
.CE
.CS
.CL
Alan
.CL
.CL
Familiarizarse con el codigo
.CL
15-Sep-2024
.CE
.CS
.CL
.CL
3.1
.CL
Sombreado
.CL
17-Nov-2024
.CE
.CS
.CL
Francisco
.CL
.CL
Familiarizarse con el codigo
.CL
15-Sep-2024
.CE
.CS
.CL
.CL
0.4
.CL
Seleccionar ejes con el mouse
.CL
29-Sep-2024
.CE
.CS
.CL
.CL
0.4
.CL
Rotar ejes con el scroll del mouse
.CL
13-Oct-2024
.CE
.CS
.CL
Roberto
.CL
.CL
Familiarizarse con el codigo
.CL
15-Sep-2024
.CE
.CL
.CL
1.2
.CL
Programa ejemplo mobius
.CL
13-Oct-2024
.CS
.CL
.CL
1.3
.CL
Programa ejemplo klein
.CL
20-Oct-2024
.CE
.TE
.NH 1
Problemas Problemas
.NH 2 .NH 2
OpenGL esperan objetos tridimensionales, no de n dimensiones. OpenGL esperan objetos tridimensionales, no de n dimensiones.
@@ -247,15 +289,14 @@ el shader.
.NH 2 .NH 2
Rotar ejes por pares en una animacion continua. Rotar ejes por pares en una animacion continua.
.PP
.QS .QS
.IP 1 .IP
Con glVertexAttribPointer podemos pasar las coordenadas del eje Con glVertexAttribPointer podemos pasar las coordenadas del eje
seleccionado, al shader. seleccionado, al shader.
.IP 2 .IP
Con la funcion mix del shader y bloqueando el input, podemos hacer Con la funcion mix del shader y bloqueando el input, podemos hacer
una animacion pasando una variable con la cpu. una animacion pasando una variable con la cpu.
.IP 3 .IP
Cuando la animacion termine intercambiar los indices del layout, Cuando la animacion termine intercambiar los indices del layout,
usando glVertexAttribPointer otra vez. usando glVertexAttribPointer otra vez.
.QE .QE
@@ -266,3 +307,4 @@ Volumen de la variedad.
Dado que la funcion parametrizadora es continua, mandamos la frontera Dado que la funcion parametrizadora es continua, mandamos la frontera
de un n-cubo a la frontera de una variedad, por lo que solo basta de un n-cubo a la frontera de una variedad, por lo que solo basta
graficar la frontera de la variedad. graficar la frontera de la variedad.