dgpdec / course Goto Github PK
View Code? Open in Web Editor NEWSource code for the applications presented in the course "Geometry Processing with Discrete Exterior Calculus"
Source code for the applications presented in the course "Geometry Processing with Discrete Exterior Calculus"
Hi
I'm currently following the code exercises in the DDG introduction paper. There are two problems:
data/ directory doesn't exist in the repo. For example, the Stanford bunny .obj cannot be found.
The visualization doesn't display the "Euler characteristic" and "total angle defect" like shown here:
Any ideas why for the inconsistency between the paper and the repo?
thanks!
Hi everyone,
I hope it helps.
Linux Ubuntu 12.04 LTS 64-bit, gcc / g++ version 4.6.3
Q: After installing opengl (hardware drivers if needed and glut library) <GLUT/glut.h> does not exist
A: freeglut3 package headers are installed in /usr/include/GL rather than /usr/include/GLUT. To correct this create a symbolic link GLUT pointing to GL with the command on the terminal
$ sudo ln -s /usr/include/GL /usr/include/GLUT
Q: Compilation error 'glDeleteProgram' was not declared in this scope
A: This is because gl extensions are wrapped by a flag called GL_GLEXT_PROTOTYPES on opengl headers, so to compile with extensions, add to your compilation flags on the project Makefile -DGL_GLEXT_PROTOTYPES (see Makefile example below)
Q: Linking error libgspr.a undefined reference to 'SuiteSparse_time'
A: Add -lsuitesparseconfig to DDG_SUITESPARSE_LIBS (See Makefile example below)
Q: Linking error libsuitsparseconfig undefied reference to 'clock_gettime'
A: Add -lrt to DDG_SUITESPARSE_LIBS
Notes: If you are in an 64 bit system, remember to configure (uncommenting) the blas related line to 64 bits.
You may also need to add
For further reference, here the lines modefied on the project makefile, ie. course/BaseCode/Makefile
...
DDG_INCLUDE_PATH = -I/usr/include -I/usr/local/include
DDG_LIBRARY_PATH = -L/usr/lib -L/usr/local/lib
DDG_BLAS_LIBS = -llapack -lblas -lgfortran
DDG_SUITESPARSE_LIBS = -lspqr -lumfpack -lcholmod -lmetis -lcolamd -lccolamd -lcamd -lamd -lm -lsuitesparseconfig -lrt
DDG_OPENGL_LIBS = -lglut -lGL -lGLU -lX11
...
CFLAGS = -O3 -Wall -Werror -ansi -pedantic $(DDG_INCLUDE_PATH) -I./include -I./src -DGL_GLEXT_PROTOTYPES
...
Hi, dear contributers,
I downloaded this code in 2016 Sep 7, and find some error when compiling, maybe it is because the code is sort of old. I have fixed it by several adjustment:
My enviroment is Arch Linux
There is <iostream>
missing in include/DenseMatrix.h
and include/SpraseMatrix.h
, just add #include <iostream>
can fix it
UF_long
is no longer used and is replaced by SuiteSprase_long
, so I just replace UF_long
in src/SpraseMatrix.cpp
and src/SpraseMatrix.inl
all my SuiteSprase libs are .so file so there would be error undefined reffer to 'umfpack...' , simplily add -lumfpack
to LIBFLAG can solve this problem
sincerely
Hello,
I've been struggling to compile the examples from this repository on Windows 10 64-bit with the MSVC++ build tool chain (cl.exe, link.exe, nmake.exe). Some things are broken (e.g., UF_long
types which should be SuiteSparse_long
, thanks to the parallel thread for solution)... I think the most challenging part right now is actually to make opengl
behave nicely... All the declarations regarding vertex and fragment shaders (e.g., glDeleteProgram
) are breaking... On MacOS X all the opengl
stuff works like charm though...
Maybe I need the opengl loader libraries like gl3w or something? By the way almost identical errors with MinGW build tool chain...
I am using the freeglut
library instead of glut
.
Real.cpp
[ 69%] Building CXX object CMakeFiles/ddg.dir/src/Shader.cpp.obj
Shader.cpp
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(20): error C3861: 'glDeleteProgram': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(22): error C3861: 'glDeleteShader': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(23): error C3861: 'glDeleteShader': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(24): error C3861: 'glDeleteShader': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(29): error C2065: 'GL_VERTEX_SHADER': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(34): error C2065: 'GL_FRAGMENT_SHADER': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(50): error C3861: 'glLinkProgram': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(54): error C3861: 'glUseProgram': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(59): error C3861: 'glUseProgram': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(79): error C3861: 'glCreateProgram': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(84): error C3861: 'glDetachShader': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(87): error C3861: 'glCreateShader': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(89): error C3861: 'glShaderSource': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(91): error C3861: 'glCompileShader': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(93): error C2065: 'GL_COMPILE_STATUS': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(93): error C3861: 'glGetShaderiv': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(97): error C3861: 'glAttachShader': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(103): error C2065: 'GL_INFO_LOG_LENGTH': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(103): error C3861: 'glGetShaderiv': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(107): error C2065: 'GLchar': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(107): error C2065: 'infoLog': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(110): error C2065: 'infoLog': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(110): error C3861: 'glGetShaderInfoLog': identifier not found
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(112): error C2065: 'infoLog': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(114): error C2065: 'infoLog': undeclared identifier
C:\XXX\ddg-crane\BaseCode\src\Shader.cpp(114): error C2541: 'delete': cannot delete objects that are not pointers
NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~1.0\VC\bin\cl.exe' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
Hi, May I ask for help? My OS is: Ubuntu 20.04 LTS. And the BLAS is located at : /usr/lib/x86_64/
. When I want to follow the libddg_usrguide.pdf to install the dependence SuiteSparse. I find the website in the pdf is 404 . So I find the suitesparse in Github. However, it should be make
by CMake 3.22. After I upgrade my cmake. It said cannot find BLAS. But I do have the BLAS. Can anyone help me?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.