Skip to content

A blank project example showing how to use libigl and cmake.

License

Notifications You must be signed in to change notification settings

gradientspace/nodes-libigl

 
 

Repository files navigation

libigl example project

A blank project example showing how to use libigl and cmake. Feel free and encouraged to copy or fork this project as a way of starting a new personal project using libigl.

Compile

Compile this project using the standard cmake routine:

mkdir build
cd build
cmake ..
make

This should find and build the dependencies and create a example binary.

Run

From within the build directory just issue:

./example

A glfw app should launch displaying a 3D cube.

Using other modules of libigl

This example project uses the igl::opengl::glfw::Viewer, therefore it requires the glfw module of libigl. This shows up in the CMakeLists.txt

igl_include(glfw)
…
target_link_libraries(${PROJECT_NAME} PUBLIC igl::glfw)

Suppose you also wanted to use the triangle module in libigl. Then you would change these to

igl_include(glfw)
igl_include(restricted triangle)
…
target_link_libraries(${PROJECT_NAME} PUBLIC igl::glfw igl_restricted::triangle)

The "restricted" appears in this case because the triangle library has a more restricted license than libigl. See other examples commented out in CMakeLists.txt.

Dependencies

The only dependencies are STL, Eigen, libigl and the dependencies of the igl::opengl::glfw::Viewer (OpenGL, glad and GLFW).

The CMake build system will automatically download libigl and its dependencies using CMake FetchContent, thus requiring no setup on your part.

Use a local copy of libigl

You can use the CMake cache variable FETCHCONTENT_SOURCE_DIR_LIBIGL when configuring your CMake project for the first time to aim it at a local copy of libigl instead.

cmake -DFETCHCONTENT_SOURCE_DIR_LIBIGL=<path-to-libigl> ..

When changing this value, do not forget to clear your CMakeCache.txt, or to update the cache variable via cmake-gui or ccmake.

About

A blank project example showing how to use libigl and cmake.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 46.2%
  • C++ 36.2%
  • C 8.9%
  • CMake 6.0%
  • Batchfile 2.7%