Questions tagged [libigl]

libigl is a C++11 library for geometry processing, computer graphics, linear algebra and optimization.

libigl is a C++ library for geometry processing, computer graphics, linear algebra and optimization.

Libigl covers a large set of features through a function-based interface. It is intended as a fast prototyping library for geometry processing, with an interface familiar to Python and MATLAB users. Here is a quick and incomplete overview:

  • Discrete differential geometry quantities and operators (e.g., cotangent Laplacian matrix, discrete curvature)
  • Quadratic energy optimization, quadratic programming solver
  • Mesh deformation
    • bounded biharmonic weights
    • as-rigid-as-possible shape deformation
    • dual quaternion linear blend skinning
  • Mesh parameterization
    • Least squares conformal maps
    • N-Rotationally symmetric tangent fields
    • Global, seamless integer-grid parametrization
  • Robust geometry processing
    • Constructive Solid Geometry operations on meshes (boolean union, intersection)
    • Generalized winding number
    • Mesh Decimation

Libigl depends heavily on Eigen for core linear algebra operations.

Find more on the libigl homepage and tutorial

31 questions
3
votes
1 answer

Clear, Move, Animate a Point on libigl Viewer?

I would like to use the libigl viewer to display a 3d model and a point. The 3d model will remain unchanged at all time, but the point will move around. My current approach is basically: load the 3d model and point viewer.data().clear() to clear…
BrianFruit
  • 53
  • 9
3
votes
1 answer

Libigl - Laplace Bletrami Operator Decomposition

The following code is from Libigl's tutorial 306 : http://libigl.github.io/libigl/tutorial/#eigen-decomposition ........ SparseMatrix L,M; cotmatrix(V,F,L); L = (-L).eval(); // WHY????? …
Tyler Xie
  • 169
  • 1
  • 3
  • 13
3
votes
0 answers

coordinate-based mesh manipulation/deformation using libigl

I am currently using libigl to manipulate/deform a simple (2D) square by manipulating its corners (cf. initial state below): After imposing displacement u(1,1) to the bottom-left corner and updating non-corner vertices locations using biharmonic…
nicolaspanel
  • 943
  • 11
  • 21
2
votes
1 answer

How to make a mesh manifold

I tried trim_with_solid method to drill a hole into a 3D model: igl::copyleft::cgal::trim_with_solid(m_VA, m_FA, m_VB, m_FB, m_V, m_F, m_D, m_J); But for hollowed 3D models with inner and outer walls, the hole is not closed: Possible solution As…
Megidd
  • 7,089
  • 6
  • 65
  • 142
2
votes
1 answer

How can I install Libigl lab on Windows Os?

Can some one example me step by step how to install this lab? I`m using tutorial from the libigl website and I dont really understand what to do. Thanks a lot!
Jasam
  • 21
  • 1
2
votes
0 answers

libIGL strange shading on mesh faces

I'm using libIGL to generate a tet-mesh, and would like to visualize this mesh with colors. Each vertex has a different value (result of using the Graph Laplacian to minimize the quadratic energy), and these values have been converted to colors…
nclement
  • 330
  • 2
  • 7
2
votes
1 answer

Igl error : undefined symbols for architecture x86_64

I am starting to use the igl library for 3d in C++, on my mac. As I followed the tutorial, an error appeared. The first exemple, basically just reading an OFF file, works fine. But the second one, using igl::viewer doesn't. Here is the code…
1
vote
1 answer

How to process output: trim_with_solid

trim_with_solid is called: // Trim mesh A (m_VA and m_FA) with solid B (m_VB and m_FB) igl::copyleft::cgal::trim_with_solid( m_VA, m_FA // input: mesh A , m_VB, m_FB…
Megidd
  • 7,089
  • 6
  • 65
  • 142
1
vote
1 answer

How to use CSGTree for multiple boolean operations

I'm trying to make use of Csg Tree by libigl to do multiple boolean operations at once. In the linked tutorial, there is just this one line: // Compute result of (A ∩ B) \ ((C ∪ D) ∪ E) igl::copyleft::cgal::CSGTree CSGTree = …
Megidd
  • 7,089
  • 6
  • 65
  • 142
1
vote
1 answer

How to close a surface with holes?

I have a binary volume that I have read into itk::Image. After creating the surface and the mesh, there are some wholes that need to be closed. I need to create a closed surface, however, the object values are reaching to the first row (horizontal…
S.EB
  • 1,966
  • 4
  • 29
  • 54
1
vote
1 answer

libigl not found when "cmake" to libigl on amazon linux

I tried install libigl. Although in this tutorial, it says that it does not need installation, my program not found the libraries. In my local machine with Ubuntu, cmake works fine! But in Amazon Linux, instance of EC2 not working. I compile my…
Romina C. M.
  • 191
  • 1
  • 5
1
vote
0 answers

Using libigl's uniformly_sample_two_manifold

I'm trying to use the function of libigl uniformly_sample_two_manifold, but it does not work as described and there is no documentation whatsoever to help me understand why. I have a 3D mesh represented as Eigen::MatrixXd V with vertices and…
Michal Kučera
  • 223
  • 1
  • 11
1
vote
0 answers

How to use libigl library on Matlab

I'm trying to use libigl library for a program in Matlab R2016 on windows 10 but i can't understand how to set it and I haven't found a tutorial. Maybe is something trivial but I need help. Have you some hint/tutorial that can help me? Thank you!
bigz90
  • 89
  • 1
  • 10
1
vote
1 answer

Loading libigl mesh result into the PCL PolygonMesh

I did some mesh processing using libigl and results are stored as below: MatrixXd V; MatrixXi F; Matrix C; I can save these data as PLY file using the command below: igl::writePLY("out.ply", V, F, C, false); But I…
A. Fasih
  • 73
  • 1
  • 10
1
vote
1 answer

libigl, GLEW, GLFW, and Eigen on CLion, Windows 10. Linker Errors

I'm sure I'm missing something trivial, but I can't put my finger on what. I'm building a project with four external libraries using CLion. I'm trying to link Eigen, GLEW, GLFW, and libigl. I'm using the VC++ compiler in VS 2015. This is one…
1
2 3