Extension of libigl which allows to also read the texture of wrl-files in Python as igl.read_triangle_mesh(wrFilePath, V, F, TC)

Alec Jacobson (jalec 166ae80c7e strip copyrights 11 years ago
documentation 2dc872211e finished draft on active set description 11 years ago
examples 28aebb722a Merge 11 years ago
file-formats f292dec1c2 mesh quicklook generator example and sort rows example, readWRL from preview3d 11 years ago
include 166ae80c7e strip copyrights 11 years ago
scripts 166ae80c7e strip copyrights 11 years ago
.hgignore 2531d2c32f add visual studio garbage to .hignore 11 years ago
ACKNOWLEDGEMENTS bc64088603 better hgignores explicit instanciation for doublearea 11 years ago
LICENSE.GPL 166ae80c7e strip copyrights 11 years ago
LICENSE.MPL2 166ae80c7e strip copyrights 11 years ago
Makefile 524e9d2c7f doublearea now more robust 11 years ago
Makefile.conf 5e178e4771 fixed compilation error with clang 11 years ago
RELEASE_HISTORY.txt 166ae80c7e strip copyrights 11 years ago
VERSION.txt 166ae80c7e strip copyrights 11 years ago
exclude.lst cb15a39694 better excludes and readme 11 years ago
libigl-dependency-diagram.ai.REMOVED.git-id 532720dc68 merge, orient_outward_ao compiles on mac os x 11 years ago
libigl-logo.ai.REMOVED.git-id 166a191467 clean up some headers, auto doc and todos 12 years ago
libigl-logo.jpg 96f38d6247 missing cpp files 12 years ago
libigl-teaser.pdf.REMOVED.git-id f182dbbfb5 header clustering scripts 11 years ago
matlab-to-eigen.html e96173c4f0 template instanciation 11 years ago
readme.txt 8d773485f6 separted bbw as its own extra (mosek optional via IGL_NO_MOSEK), support for mosek 7, better control over verbosity in bbw 11 years ago
style.css 166ae80c7e strip copyrights 11 years ago
style_guidelines.html 166ae80c7e strip copyrights 11 years ago
todos.txt 8d7630d99a min_quad_with_fixed is now truly sparse (still at least 4x slower than matlab) 11 years ago
tutorial.html f92bae1b4f missing igl_no_opengl s 11 years ago

readme.txt

libigl - A simple c++ geometry processing library

http://igl.ethz.ch/projects/libigl/

Copyright 2013 - Alec Jacobson, Daniele Panozzo, Olga Diamanti, Kenshi
Takayama, Leo Sacht, Interactive Geometry Lab - ETH Zurich

This is first and foremost a *header* library. Each header file should contain
a single function. The function may have multiple prototypes. All functions
should use the igl namespace and should adhere to the conventions and styles
listed below.

= Dependencies =
Eigen3 Last tested with Eigen Version 3.2

= Optional =
OpenGL (IGL_NO_OPENGL)
AntTweakBar (IGL_NO_ANTTWEAKBAR) Last tested 1.16 (see
libigl/external/AntTweakBar)
GLEW Windows only
OpenMP
libpng libiglpng extra only
Mosek libiglmosek extra only
Matlab libiglmatlab extra only
boost libboost extra only

= Optional (included in external/ =
TetGen libigltetgen extra only
Embree libiglembree extra only
tinyxml2 libiglxml extra only

= Header only =
libigl is designed to work "out-of-the-box" as a headers only library. To
include libigl in your project. You need only include the libigl/include/
directory in your include path and define the IGL_HEADER_ONLY macro. To
compile a hello-word example.cpp:

#include
#include
#include
int main(int argc, char * argv[])
{
if(argc>1)
{
Eigen::MatrixXd V;
Eigen::MatrixXi F;
igl::readOBJ(argv[1],V,F);
std::cout<<"Hello, mesh with "< }else{
std::cout<<"Hello, world!"< }
return 0;
}

using gcc (replacing appropriate paths):

g++ -DIGL_HEADER_ONLY -I/usr/local/igl/libigl/include \
-I/opt/local/include/eigen3 example.cpp -o example

Then run this example with:

./example examples/shared/TinyTorus.obj

= Compile =

= Linux/Mac OS X/Cygwin =

libigl may also be compiled to a static library. This is advantageous when
building a project with libigl, since the header only directive can slow down
compile times.

To build the entire libigl library producing lib/libigl.a, issue:

make lib

You may need to edit Makefile.conf accordingly. Best to give yourself an
IGL_USERNAME and add a custom install suite for yourself. Then you can enable
appropriate extras.

= Extras =
Once you've set up an IGL_USERNAME and enabled extras within Makefile.conf.
You can build the extra libraries (into lib/ligiglpng.a, lib/libiglmatlab.a,
lib/libigltetgen.a, lib/libiglmosek.a, etc.) by issuing:

make extras

= Examples =
You can make a slew of examples by issuing:

make examples

= External =
Finally there are a number of external libraries that we include in
./external/ because they are either difficult to obtain or they have been
patched for easier use with libigl. Please see the respective readmes in
those directories.

= Windows (Experimental) =
To build a static library (.lib) on windows, open Visual Studio 2010.

New > Project ...
Visual C++ > Win32
Win32 Console Application
Name: libiglVisualStudio
Uncheck "Create directory for solution"

Then hit OK, and then Next

Check "Static Library"
Uncheck "Precompiled headers"

Add all include/igl/*.cpp to the sources directory
Add all include/igl/*.h to the headers directory

Open Project > libigl Properties...
Add the path to eigen3 to the include paths
Change the target name to libigl

Build and pray (this should create libigl.lib

= Source =
http://msdn.microsoft.com/en-us/library/ms235627(v=vs.80).aspx

= Examples =
To get started, we advise that you take a look at a few examples:

./examples/hello-world/

./examples/meshio/

./examples/basic-topology/

./examples/ReAntTweakBar/

= Development =
Further documentation for developers is listed in tutorial.html,
style_guidelines.html

= License =
For now, all files are Copyright 2013 - Alec Jacobson, Daniele Panozzo, Olga
Diamanti, Kenshi Takayama, Leo Sacht, Interactive Geometry Lab - ETH Zurich
unless otherwise noted. Soon we hope to upgrade to a more liberal license.

= Zipping =
Zip this directory without .hg litter using:

make clean
zip -9 -r --exclude=@exclude.lst libigl.zip ../libigl

= Contact =
libigl is a group endeavor led by Alec Jacobson and Daniele Panozzo. Please
contact alecjacobson@gmail.com if you have questions or comments. We are happy
to get feedback! Enjoy!