Corresponding Code for the SIGGRAPH Asia paper "Nested Cages"
C++ CMake C
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cmake
collisiondetection @ d7122d6
eigen @ a08152a
eltopo @ b2f1dc0
libigl @ 784dbe1
meshfix @ 3b0cbd5
.gitignore
.gitmodules
CMakeLists.txt
README.md
cgal.cpp
cgal.h
energy.cpp
energy.h
filter.cpp
filter.h
flow.cpp
flow.h
gargo.off
gargo_1000.off
gargo_500.off
gradient.cpp
gradient.h
io.cpp
io.h
nested_cages.cpp
reinflate.cpp
reinflate.h

README.md

Nested Cages

This C++ project implements:

Nested Cages
ACM Transactions on Graphics, vol. 34, no. 6 (SIGGRAPH Asia 2015).
Leonardo Sacht, Etienne Vouga and Alec Jacobson

Get started with:

git clone --recursive https://github.com/alecjacobson/nested_cages.git

Bunny teaser from "Nested Cages"

Compilation

This code has been tested on Linux and Mac OS X. In theory this should also work on Windows.

To compile,

  1. Install CGAL. This project requires at least version 4.7 of CGAL (newer versions might work also); note that the CGAL Debian package may not be sufficiently new. Then
  2. Issue:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release  ..
make

This will build all remaining dependencies and the nested_cages executable.

Dependencies

Except CGAL, all dependencies are included, either explicitly or as git submodules. If you clone this repo using git clone --recursive then the dependency layout should be:

nested_cages/
  collisiondetection/
  eltopo/
  eigen/
  libigl/
    external/
      tetgen/
  meshfix/
    JMeshExt-1.0alpha_src/
      JMeshLib-1.2/
      OpenNL3.2.1/
        SuperLU/

Example usages

Help information

./nested_cages

Obtain 2 volume minimizing nested cages for ../gargo.off: one regular with 1000 faces and the other regular with 500 faces. Output resulting cages to ../test_1.off and ../test_2.off

./nested_cages ../gargo.off 2 1000r 500r None Volume ../test

The same as above, but outputs adaptive decimations (instead of regular)

./nested_cages ../gargo.off 2 1000 500 None Volume ../test

Obtain 2 nested cages for ../gargo.off that minimize surface ARAP energy, using as input decimations ../gargo_1000.off and gargo_500.off

./nested_cages ../gargo.off 2 ../gargo_1000.off ../gargo_500.off SurfARAP None ../test

Contact

If you have any comments or questions, please contact Leonardo Sacht by e-mail: leo@mtm.ufsc.br