From 25e08fc4062a5735e231dc617a70494556a184d7 Mon Sep 17 00:00:00 2001 From: PedroEdiaz Date: Mon, 16 Sep 2024 23:50:50 +0600 Subject: [PATCH] Add documentation build --- Makefile | 12 +- DESIGN.ms => design.nr | 288 +++++++++++++++++++++++------------------ 2 files changed, 170 insertions(+), 130 deletions(-) rename DESIGN.ms => design.nr (67%) diff --git a/Makefile b/Makefile index fe78659..2e889a1 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ LIB = \ $(LIBGLFW) DOC = \ - DESIGN.pdf + design.html CFLAGS = \ -I./ext/cglm/include \ @@ -23,6 +23,7 @@ CFLAGS = \ -Wall -Wno-unused-function -std=c89 all: $(BIN) $(LIB) +doc: $(DOC) $(BIN): $(OBJ) $(LIB) $(CC) -lGL -lglfw -L. -o $(BIN) $(OBJ) @@ -39,13 +40,10 @@ clean: clean-all: rm $(OBJ) $(DOC) $(LIB) $(BIN) -.SUFFIXES: .ms .pdf .html .c .o +.SUFFIXES: .nr .html .html .c .o -.ms.pdf: - cat $< | sed -e "s/^\s*//g" -e "/^$$/d" | tbl| groff -Tpdf -fC -ms > $@ - -.ms.html: - cat $< | sed -e "s/^\s*//g" -e "/^$$/d"| tbl | groff -Thtml -fC -ms > $@ +.nr.html: + cat $< | nulldoc > $@ .c.o: $(CC) $(CFLAGS) $< -c -o $@ diff --git a/DESIGN.ms b/design.nr similarity index 67% rename from DESIGN.ms rename to design.nr index dd650b3..fe28667 100644 --- a/DESIGN.ms +++ b/design.nr @@ -1,143 +1,97 @@ -.TL +.PP CB manigraph: Manual de Diseno ( ver 1.0 ) -.AU +.PP C Diaz Camacho Pedro Emilio -.SH +.SH 1 Resumen .PP 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 interactuar con el programa y las especificaciones del archivo binario. -.SH -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 +.NH 1 Tecnologias .NH 2 Lenguajes: -.QS - .IP \(bu +.QS \(bu + .IP C89 .QE .NH 2 Librerias: -.QS - .IP \(bu +.QS \(bu + .IP OpenGL - .IP \(bu + .IP GLFW - .IP \(bu + .IP cglm .QE -.NH -Glosario -.IP variedad -Llamaremos variedad al archivo binario con la informacion para graficar -la variedad matematica. - -.NH +.NH 1 Archivos -.QS - .IP \(bu +.QS \(bu + .IP Ejecutable. - .IP \(bu + .IP Ejemplo. .QS - .IP \(bu + .IP Una libreria tipo STB, con las funciones para hacer variedades con una funcion parametrizadora. - .IP \(bu + .IP LA PARAMETRIZACION DEBE SER CONTINUA. - .IP \(bu + .IP El codigo fuente de un programa que cree la variedad de una botella de klein usando esta libreria. .QE - .IP \(bu + .IP Manual .QS - .IP \(bu + .IP Explicando como correr el programa desde la terminal. - .IP \(bu + .IP Explicando como interactuar con el programa con el teclado y mouse. - .IP \(bu + .IP Explicando el formato binario de las variedaedes. - .IP \(bu + .IP Explicando la libreria STB. .QE .QE -.NH +.NH 1 Objetivos .NH 2 Prioridad alta -.QS - .IP _ +.QS _ + .IP El programa debe actualizarse cuando interactuan con el. - .IP _ + .IP El usuario quiere: .QS .IP X Ver 3 ejes en todo momento. - .IP _ + .IP Ver que ejes esta viendo. - .IP _ + .IP Ver cuantos ejes hay. .QE .IP X El usuario quiere: - .QS - .IP X + .QS X + .IP Rotar estos ejes, - .IP X + .IP Ver donde quedan los ejes despues de la rotados. .QE - .IP _ + .IP El usuario experimentado quiere ejecutar el programa y pasar la variedad: .QS - .IP _ + .IP Como argumento del programa. - .IP _ + .IP Desde la entrada standar del programa. .QE .QE @@ -145,98 +99,186 @@ Prioridad alta .NH 2 Prioridad media -.QS - .IP _ +.QS _ + .IP El usuario quiere: .QS - .IP _ + .IP Cambiar los ejes que se ven por pares. - .IP _ + .IP Cambiar los ejes donde esta la informacion de los ejes. .QE - .IP _ + .IP El usuario quiere interactuar con el programa: .QS - .IP _ + .IP Usando solo el mouse. - .IP _ + .IP X Usando solo el teclado. .QE .QE .NH 2 Prioridad baja -.QS - .IP _ +.QS _ + .IP El usuario quiere guardar las transformaciones como un archivo GIF. .QE -.NH +.NH 1 Camino .QS .IP 0 Graficadora de un cubo. .QS - .IP 1 + .IP Se hace un programa que muestre un cubo. - .IP 2 + .IP Se muestran los 3 ejes del cubo - .IP 3 + .IP 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. - .IP 5 + .IP Se muestran la etiqueta de los ejes. + .IP + Se hace el formato de objetos multidimensionales. .QE - .IP 1 - Formato. + .IP + Programa ejemplo .QS - .IP 1 - Se hace el formato de las variedades. - .IP 2 - Se hace el codigo fuente ejemplo. - .QS - .IP 1 - Libreria STB. - .IP 2 - Codigo fuente para hacer la variedad de la botella de klein. - .QE + .IP + Se hace un programa que divida un cuadrado en triangulos. + .IP + Se mapea cada vertice del triangulo en un punto de la cinta de + mobius usando una parametrizacion + .IP + Se mapea cada vertice del triangulo en un punto de la botella de + klein usando una parametrizacion + .IP + Se divide cada lado de un cubo de n dimensiones, en triangulos. .QE - .IP 2 + .IP Graficadora de variedades .QS - .IP 1 + .IP Se generaliza el programa para usar este formato. - .IP 2 + .IP Se muestran la informacion de los ejes mostrados y cuantos hay. - .IP 3 + .IP Se pueden cambiar los ejes por pares .QS - .IP 1 + .IP Usando el mouse. - .IP 2 + .IP Usando el teclado. .QE .QE - .IP 3 + .IP Detalles. .QS - .IP 1 + .IP Se anima el cambio de eje. - .IP 2 + .IP Se hace el generador de GIF. - .IP 3 + .IP Se puede cambiar el shader - .IP 4 + .IP Documentacion .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 .NH 2 OpenGL esperan objetos tridimensionales, no de n dimensiones. @@ -247,15 +289,14 @@ el shader. .NH 2 Rotar ejes por pares en una animacion continua. -.PP .QS - .IP 1 + .IP Con glVertexAttribPointer podemos pasar las coordenadas del eje seleccionado, al shader. - .IP 2 + .IP Con la funcion mix del shader y bloqueando el input, podemos hacer una animacion pasando una variable con la cpu. - .IP 3 + .IP Cuando la animacion termine intercambiar los indices del layout, usando glVertexAttribPointer otra vez. .QE @@ -266,3 +307,4 @@ Volumen de la variedad. 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 graficar la frontera de la variedad. +