# Manigraph: Graficadora de variedades Diaz Camacho Pedro Emilio # Resumen manigraph es un graficador interactiva de variedades que lee archivos binarios, con la información de una variedad multidimensional y grafica esta variedad en una proyección tridimensional. # Dependencias Para poder compilar el proyecto hace falta los siguientes pro. ## Programas - `cc`: Cualquier compilador de C. - `git`: Gestor de dependencias. (Opcional) - `make`: Herramienta para compilar automáticamente. (Opcional) ## Librerías - `openGL`: A cross-platform API for rendering 2D and 3D graphics. (no incluida) - `glfw`: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input. - `cglm`: Highly Optimized 2D / 3D Graphics Math (glm) for C. ### Linux Para compilar `glfw` en linux hacen falta las siguientes librerías según el caso. (no incluidas) - `x11`: libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel - `wayland`: libwayland-dev libxkbcommon-dev wayland-protocols # Codigo fuente Para adquirir el código fuente de manigraph se puede usar git o descargar manualmente los archivos zip. ## git via https Usando git se necesitan ejecutar los siguientes comándos en la terminal. ``` git clone https://gitea.adles.top/software/manigraph.git cd manigraph git submodule update --init --recursive ``` ## zip files Alternativamente se puede descargar el código fuente en formato zip usando las siguientes direcciones y acomodando manualmente las carpetas de `glfw` y `cglm` en `ext/`. - [manigraph](https://gitea.adles.top/software/manigraph/archive/main.zip) - [glfw](https://github.com/glfw/glfw/archive/refs/heads/master.zip) - [cglm](https://github.com/recp/cglm/archive/refs/heads/master.zip) # Compilación Para compilar manualmente el proyecto se puede usar `make` o ejecutar los comandos manualmente en el código fuente de `manigraph`. ## Make Los siguientes comandos sirven para compilar `manigraph` deacuerdo al sistema operativo. ``` make windows make linux-x11 make linux-wayland make cocoa ``` ## Manualmente se pueden compilar el proyecto manualmente sin necesidad del programa `make`. ### GLFW Si tienes problemas compilando `GLFW` puedes checar su página web oficial explicando el tema: [Compiling GLFW](https://www.glfw.org/docs/3.3/compile.html). #### Windows ``` cc -fPIC -shared -D_GLFW_WIN32 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o glfw.dll ``` #### Linux ``` cc -fPIC -shared -D_GLFW_X11 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so cc -fPIC -shared -D_GLFW_WAYLAND -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so ``` #### Mac ``` cc -fPIC -shared -D_GLFW_COCOA -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o libglfw.so ``` ### Manigraph #### Windows ``` cc -L. -lglfw -lGL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph.exe ``` #### Linux ``` cc -L. -lglfw -lGL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph ``` #### Mac ``` cc -L. -lglfw -framework GL -I ext/cglm/include/ -I ext/glfw/include/ src/*.c -o manigraph ``` # Ejecutar En linux se puede ejecutar el programa sin instalar la llibreria de glfw usando: ## make ``` make run-linux ``` ## manual ``` LD_LIBRARY_PATH=. ./manigraph ```