Browse Source

Added multiple tutorials

Former-commit-id: 706aa3144989ed7b22039be4125ee91c1d46a0ef
Sebastian Koch 9 years ago
parent
commit
c5e77fa5d7

+ 1 - 0
.gitignore

@@ -93,3 +93,4 @@ tests/bin
 python/build3
 *.pyc
 python/build4
+python/scripts/generated

+ 1 - 0
include/igl/ambient_occlusion.cpp

@@ -147,4 +147,5 @@ template void igl::ambient_occlusion<Eigen::Matrix<double, -1, -1, 0, -1, -1>, E
 template void igl::ambient_occlusion<Eigen::Matrix<double, -1, 3, 0, -1, 3>, Eigen::Matrix<double, -1, 3, 0, -1, 3>, Eigen::Matrix<double, -1, 1, 0, -1, 1> >(std::function<bool (Eigen::Matrix<float, 3, 1, 0, 3, 1> const&, Eigen::Matrix<float, 3, 1, 0, 3, 1> const&)> const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> > const&, int, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&);
 // generated by autoexplicit.sh
 template void igl::ambient_occlusion<Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, -1, 1, 0, -1, 1> >(std::function<bool (Eigen::Matrix<float, 3, 1, 0, 3, 1> const&, Eigen::Matrix<float, 3, 1, 0, 3, 1> const&)> const&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, int, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&);
+template void igl::ambient_occlusion<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(std::function<bool (Eigen::Matrix<float, 3, 1, 0, 3, 1> const&, Eigen::Matrix<float, 3, 1, 0, 3, 1> const&)> const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, int, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&);
 #endif

+ 1 - 0
include/igl/embree/ambient_occlusion.cpp

@@ -58,4 +58,5 @@ template void igl::embree::ambient_occlusion<Eigen::Matrix<double, -1, -1, 0, -1
 template void igl::embree::ambient_occlusion<Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, -1, 1, 0, -1, 1> >(igl::embree::EmbreeIntersector const&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, int, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&);
 template void igl::embree::ambient_occlusion<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, 1, 0, -1, 1> >(Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, int, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&);
 template void igl::embree::ambient_occlusion<Eigen::Matrix<double, -1, 3, 0, -1, 3>, Eigen::Matrix<int, -1, 3, 0, -1, 3>, Eigen::Matrix<double, -1, 3, 0, -1, 3>, Eigen::Matrix<double, -1, 3, 0, -1, 3>, Eigen::Matrix<double, -1, 1, 0, -1, 1> >(Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> > const&, int, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&);
+template void igl::embree::ambient_occlusion<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, int, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&);
 #endif

+ 1 - 1
include/igl/embree/ambient_occlusion.h

@@ -7,7 +7,7 @@
 // obtain one at http://mozilla.org/MPL/2.0/.
 #ifndef IGL_EMBREE_AMBIENT_OCCLUSION_H
 #define IGL_EMBREE_AMBIENT_OCCLUSION_H
-#include <igl/igl_inline.h>
+#include "../igl_inline.h"
 #include <Eigen/Core>
 namespace igl
 {

+ 1 - 0
include/igl/slice.cpp

@@ -279,4 +279,5 @@ template Eigen::Matrix<double, -1, -1, 0, -1, -1> igl::slice<Eigen::Matrix<doubl
 template void igl::slice<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> >&);
 template void igl::slice<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<int, -1, 1, 0, -1, 1> const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&);
 template void igl::slice<Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<int, -1, 1, 0, -1, 1> const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> >&);
+template void igl::slice<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, int, Eigen::Matrix<double, -1, -1, 0, -1, -1>&);
 #endif

+ 1 - 1
include/igl/triangle/triangulate.h

@@ -7,7 +7,7 @@
 // obtain one at http://mozilla.org/MPL/2.0/.
 #ifndef IGL_TRIANGLE_TRIANGULATE_H
 #define IGL_TRIANGLE_TRIANGULATE_H
-#include <igl/igl_inline.h>
+#include "../igl_inline.h"
 #include <string>
 #include <Eigen/Core>
 

+ 1 - 0
include/igl/unproject_onto_mesh.cpp

@@ -73,5 +73,6 @@ IGL_INLINE bool igl::unproject_onto_mesh(
 #ifdef IGL_STATIC_LIBRARY
 // Explicit template specialization
 template bool igl::unproject_onto_mesh<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<float, 3, 1, 0, 3, 1> >(Eigen::Matrix<float, 2, 1, 0, 2, 1> const&, Eigen::Matrix<float, 4, 4, 0, 4, 4> const&, Eigen::Matrix<float, 4, 4, 0, 4, 4> const&, Eigen::Matrix<float, 4, 1, 0, 4, 1> const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, int&, Eigen::PlainObjectBase<Eigen::Matrix<float, 3, 1, 0, 3, 1> >&);
+template bool igl::unproject_onto_mesh<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, 1, 0, -1, 1> >(Eigen::Matrix<float, 2, 1, 0, 2, 1> const&, Eigen::Matrix<float, 4, 4, 0, 4, 4> const&, Eigen::Matrix<float, 4, 4, 0, 4, 4> const&, Eigen::Matrix<float, 4, 1, 0, 4, 1> const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, int&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >&);
 #endif
 

+ 72 - 0
python/py_doc.cpp

@@ -66,6 +66,29 @@ const char *__doc_igl_signed_distance_winding_number = R"igl_Qu8mg5v7(// Inputs:
   //   hier  Winding number evaluation hierarchy
   //   q  Query point
   // Returns signed distance to mesh)igl_Qu8mg5v7";
+const char *__doc_igl_triangle_triangulate = R"igl_Qu8mg5v7(// Triangulate the interior of a polygon using the triangle library.
+    //
+    // Inputs:
+    //   V #V by 2 list of 2D vertex positions
+    //   E #E by 2 list of vertex ids forming unoriented edges of the boundary of the polygon
+    //   H #H by 2 coordinates of points contained inside holes of the polygon
+    //   flags  string of options pass to triangle (see triangle documentation)
+    // Outputs:
+    //   V2  #V2 by 2  coordinates of the vertives of the generated triangulation
+    //   F2  #F2 by 3  list of indices forming the faces of the generated triangulation
+    //
+    // TODO: expose the option to prevent Steiner points on the boundary
+    //)igl_Qu8mg5v7";
+const char *__doc_igl_embree_ambient_occlusion = R"igl_Qu8mg5v7(// Compute ambient occlusion per given point
+    //
+    // Inputs:
+    //    ei  EmbreeIntersector containing (V,F)
+    //    P  #P by 3 list of origin points
+    //    N  #P by 3 list of origin normals
+    // Outputs:
+    //    S  #P list of ambient occlusion values between 1 (fully occluded) and
+    //      0 (not occluded)
+    //)igl_Qu8mg5v7";
 const char *__doc_igl_cotmatrix = R"igl_Qu8mg5v7(// Constructs the cotangent stiffness matrix (discrete laplacian) for a given
   // mesh (V,F).
   //
@@ -120,6 +143,13 @@ const char *__doc_igl_per_face_normals = R"igl_Qu8mg5v7(// Compute face normals
   //   per_face_normals(V,F,Vector3d(1,1,1).normalized(),N);)igl_Qu8mg5v7";
 const char *__doc_igl_per_face_normals_stable = R"igl_Qu8mg5v7(// Special version where order of face indices is guaranteed not to effect
   // output.)igl_Qu8mg5v7";
+const char *__doc_igl_quad_planarity = R"igl_Qu8mg5v7(// Compute planarity of the faces of a quad mesh
+  // Inputs:
+  //   V  #V by 3 eigen Matrix of mesh vertex 3D positions
+  //   F  #F by 4 eigen Matrix of face (quad) indices
+  // Output:
+  //   P  #F by 1 eigen Matrix of mesh face (quad) planarities
+  //)igl_Qu8mg5v7";
 const char *__doc_igl_readOFF = R"igl_Qu8mg5v7(// Read a mesh from an ascii obj file, filling in vertex positions, normals
   // and texture coordinates. Mesh may have faces of any number of degree
   //
@@ -228,6 +258,21 @@ const char *__doc_igl_massmatrix = R"igl_Qu8mg5v7(// Constructs the mass (area)
   //
   // See also: adjacency_matrix
   //)igl_Qu8mg5v7";
+const char *__doc_igl_unproject_onto_mesh = R"igl_Qu8mg5v7(// Unproject a screen location (using current opengl viewport, projection, and
+  // model view) to a 3D position _onto_ a given mesh, if the ray through the
+  // given screen location (x,y) _hits_ the mesh.
+  //
+  // Inputs:
+  //    pos        screen space coordinates
+  //    model      model matrix
+  //    proj       projection matrix
+  //    viewport   vieweport vector
+  //    V   #V by 3 list of mesh vertex positions
+  //    F   #F by 3 list of mesh triangle indices into V
+  // Outputs:
+  //    fid  id of the first face hit
+  //    bc  barycentric coordinates of hit
+  // Returns true if there's a hit)igl_Qu8mg5v7";
 const char *__doc_igl_colon = R"igl_Qu8mg5v7(// Colon operator like matlab's colon operator. Enumerats values between low
   // and hi with step step.
   // Templates:
@@ -305,6 +350,14 @@ const char *__doc_igl_gaussian_curvature = R"igl_Qu8mg5v7(// Compute discrete lo
   // Output:
   //   K  #V by 1 eigen Matrix of discrete gaussian curvature values
   //)igl_Qu8mg5v7";
+const char *__doc_igl_planarize_quad_mesh = R"igl_Qu8mg5v7(// Inputs:
+  //   Vin        #V by 3 eigen Matrix of mesh vertex 3D positions
+  //   F          #F by 4 eigen Matrix of face (quad) indices
+  //   maxIter    maximum numbers of iterations
+  //   threshold  minimum allowed threshold for non-planarity
+  // Output:
+  //   Vout       #V by 3 eigen Matrix of planar mesh vertex 3D positions
+  //)igl_Qu8mg5v7";
 const char *__doc_igl_avg_edge_length = R"igl_Qu8mg5v7(// Compute the average edge length for the given triangle mesh
   // Templates:
   //   DerivedV derived from vertex positions matrix type: i.e. MatrixXd
@@ -427,6 +480,25 @@ const char *__doc_igl_setdiff = R"igl_Qu8mg5v7(// Set difference of elements of
   //   C  (k<=m)-long vector of unique elements appearing in A but not in B
   //   IA  (k<=m)-long list of indices into A so that C = A(IA)
   //)igl_Qu8mg5v7";
+const char *__doc_igl_copyleft_tetgen_tetrahedralize = R"igl_Qu8mg5v7(// Mesh the interior of a surface mesh (V,F) using tetgen
+      //
+      // Inputs:
+      //   V  #V by 3 vertex position list
+      //   F  #F list of polygon face indices into V (0-indexed)
+      //   switches  string of tetgen options (See tetgen documentation) e.g.
+      //     "pq1.414a0.01" tries to mesh the interior of a given surface with
+      //       quality and area constraints
+      //     "" will mesh the convex hull constrained to pass through V (ignores F)
+      // Outputs:
+      //   TV  #V by 3 vertex position list
+      //   TT  #T by 4 list of tet face indices
+      //   TF  #F by 3 list of triangle face indices
+      // Returns status:
+      //   0 success
+      //   1 tetgen threw exception
+      //   2 tetgen did not crash but could not create any tets (probably there are
+      //     holes, duplicate faces etc.)
+      //   -1 other error)igl_Qu8mg5v7";
 const char *__doc_igl_comb_frame_field = R"igl_Qu8mg5v7(// Inputs:
   //   V            #V by 3 eigen Matrix of mesh vertex 3D positions
   //   F            #F by 4 eigen Matrix of face (quad) indices

+ 6 - 0
python/py_doc.h

@@ -3,11 +3,14 @@ extern const char *__doc_igl_local_basis;
 extern const char *__doc_igl_signed_distance;
 extern const char *__doc_igl_signed_distance_pseudonormal;
 extern const char *__doc_igl_signed_distance_winding_number;
+extern const char *__doc_igl_triangle_triangulate;
+extern const char *__doc_igl_embree_ambient_occlusion;
 extern const char *__doc_igl_cotmatrix;
 extern const char *__doc_igl_floor;
 extern const char *__doc_igl_slice;
 extern const char *__doc_igl_per_face_normals;
 extern const char *__doc_igl_per_face_normals_stable;
+extern const char *__doc_igl_quad_planarity;
 extern const char *__doc_igl_readOFF;
 extern const char *__doc_igl_per_vertex_normals;
 extern const char *__doc_igl_sortrows;
@@ -17,6 +20,7 @@ extern const char *__doc_igl_cat;
 extern const char *__doc_igl_eigs;
 extern const char *__doc_igl_per_corner_normals;
 extern const char *__doc_igl_massmatrix;
+extern const char *__doc_igl_unproject_onto_mesh;
 extern const char *__doc_igl_colon;
 extern const char *__doc_igl_fit_rotations;
 extern const char *__doc_igl_fit_rotations_planar;
@@ -24,6 +28,7 @@ extern const char *__doc_igl_fit_rotations_SSE;
 extern const char *__doc_igl_rotate_vectors;
 extern const char *__doc_igl_read_triangle_mesh;
 extern const char *__doc_igl_gaussian_curvature;
+extern const char *__doc_igl_planarize_quad_mesh;
 extern const char *__doc_igl_avg_edge_length;
 extern const char *__doc_igl_barycentric_coordinates;
 extern const char *__doc_igl_lscm;
@@ -33,6 +38,7 @@ extern const char *__doc_igl_slice_mask;
 extern const char *__doc_igl_point_mesh_squared_distance;
 extern const char *__doc_igl_parula;
 extern const char *__doc_igl_setdiff;
+extern const char *__doc_igl_copyleft_tetgen_tetrahedralize;
 extern const char *__doc_igl_comb_frame_field;
 extern const char *__doc_igl_map_vertices_to_circle;
 extern const char *__doc_igl_writeOBJ;

+ 12 - 1
python/py_igl.cpp

@@ -64,6 +64,12 @@
 #include <igl/covariance_scatter_matrix.h>
 #include <igl/slice_mask.h>
 #include <igl/signed_distance.h>
+#include <igl/quad_planarity.h>
+#include <igl/planarize_quad_mesh.h>
+#include <igl/triangle/triangulate.h>
+#include <igl/copyleft/tetgen/tetrahedralize.h>
+#include <igl/embree/ambient_occlusion.h>
+#include <igl/unproject_onto_mesh.h>
 //#include <igl/.h>
 
 
@@ -131,7 +137,12 @@ void python_export_igl(py::module &m)
 #include "py_igl/py_covariance_scatter_matrix.cpp"
 #include "py_igl/py_slice_mask.cpp"
 #include "py_igl/py_signed_distance.cpp"
-
+#include "py_igl/py_quad_planarity.cpp"
+#include "py_igl/py_planarize_quad_mesh.cpp"
+#include "py_igl/py_triangle_triangulate.cpp"
+#include "py_igl/py_copyleft_tetgen_tetrahedralize.cpp"
+#include "py_igl/py_embree_ambient_occlusion.cpp"
+#include "py_igl/py_unproject_onto_mesh.cpp"
 //#include "py_igl/py_.cpp"
 
 }

+ 16 - 0
python/py_igl/py_copyleft_tetgen_tetrahedralize.cpp

@@ -0,0 +1,16 @@
+
+m.def("copyleft_tetgen_tetrahedralize", []
+(
+  const Eigen::MatrixXd& V,
+  const Eigen::MatrixXi& F,
+  const std::string switches,
+  Eigen::MatrixXd& TV,
+  Eigen::MatrixXi& TT,
+  Eigen::MatrixXi& TF
+)
+{
+  return igl::copyleft::tetgen::tetrahedralize(V, F, switches, TV, TT, TF);
+}, __doc_igl_copyleft_tetgen_tetrahedralize,
+py::arg("V"), py::arg("F"), py::arg("switches"), py::arg("TV"), py::arg("TT"), py::arg("TF"));
+
+

+ 16 - 0
python/py_igl/py_embree_ambient_occlusion.cpp

@@ -0,0 +1,16 @@
+
+
+m.def("embree_ambient_occlusion", []
+(
+  const Eigen::MatrixXd& V,
+  const Eigen::MatrixXi& F,
+  const Eigen::MatrixXd& P,
+  const Eigen::MatrixXd& N,
+  const int num_samples,
+  Eigen::MatrixXd& S
+)
+{
+  return igl::embree::ambient_occlusion(V, F, P, N, num_samples, S);
+}, __doc_igl_embree_ambient_occlusion,
+py::arg("V"), py::arg("F"), py::arg("P"), py::arg("N"), py::arg("num_samples"), py::arg("S"));
+

+ 14 - 0
python/py_igl/py_planarize_quad_mesh.cpp

@@ -0,0 +1,14 @@
+
+m.def("planarize_quad_mesh", []
+(
+  const Eigen::MatrixXd& Vin,
+  const Eigen::MatrixXi& F,
+  const int maxIter,
+  const double & threshold,
+  Eigen::MatrixXd& Vout
+)
+{
+  return igl::planarize_quad_mesh(Vin, F, maxIter, threshold, Vout);
+}, __doc_igl_planarize_quad_mesh,
+py::arg("Vin"), py::arg("F"), py::arg("maxIter"), py::arg("threshold"), py::arg("Vout"));
+

+ 15 - 0
python/py_igl/py_quad_planarity.cpp

@@ -0,0 +1,15 @@
+
+
+m.def("quad_planarity", []
+(
+  const Eigen::MatrixXd& V,
+  const Eigen::MatrixXi& F,
+  Eigen::MatrixXd& P
+)
+{
+  Eigen::VectorXd Pv;
+  igl::quad_planarity(V, F, Pv);
+  P = Pv;
+}, __doc_igl_quad_planarity,
+py::arg("V"), py::arg("F"), py::arg("P"));
+

+ 13 - 0
python/py_igl/py_slice.cpp

@@ -41,6 +41,19 @@ m.def("slice", []
 }, __doc_igl_slice,
 py::arg("X"), py::arg("R"), py::arg("C"), py::arg("Y"));
 
+m.def("slice", []
+(
+  const Eigen::MatrixXd& X,
+  const Eigen::MatrixXi& R,
+  const int dim,
+  Eigen::MatrixXd& Y
+)
+{
+  assert_is_VectorX("R",R);
+  return igl::slice(X,R,dim,Y);
+}, __doc_igl_slice,
+py::arg("X"), py::arg("R"), py::arg("dim"), py::arg("Y"));
+
 m.def("slice", []
 (
   const Eigen::MatrixXd& X,

+ 16 - 0
python/py_igl/py_triangle_triangulate.cpp

@@ -0,0 +1,16 @@
+
+
+m.def("triangle_triangulate", []
+(
+  const Eigen::MatrixXd& V,
+  const Eigen::MatrixXi& E,
+  const Eigen::MatrixXd& H,
+  const std::string flags,
+  Eigen::MatrixXd& V2,
+  Eigen::MatrixXi& F2
+)
+{
+  return igl::triangle::triangulate(V, E, H, flags, V2, F2);
+}, __doc_igl_triangle_triangulate,
+py::arg("V"), py::arg("E"), py::arg("H"), py::arg("flags"), py::arg("V2"), py::arg("F2"));
+

+ 57 - 0
python/py_igl/py_unproject_onto_mesh.cpp

@@ -0,0 +1,57 @@
+// COMPLETE BINDINGS ========================
+
+m.def("unproject_onto_mesh", []
+(
+  const Eigen::MatrixXd & pos,
+  const Eigen::MatrixXd & model,
+  const Eigen::MatrixXd & proj,
+  const Eigen::MatrixXd & viewport,
+  const Eigen::MatrixXd& V,
+  const Eigen::MatrixXi& F,
+  Eigen::MatrixXi& fid, // TODO: Can we replace this with integer object reference?
+  Eigen::MatrixXd& bc
+)
+{
+  assert_is_Vector2("pos", pos);
+  Eigen::Vector2f posv;
+  if (pos.size() != 0)
+    posv = Eigen::Vector2f(pos.cast<float>());
+  assert_is_Matrix4("model", model);
+  Eigen::Matrix4f modelm;
+  if (model.size() != 0)
+    modelm = model.cast<float>();
+  assert_is_Matrix4("proj", proj);
+  Eigen::Matrix4f projm;
+  if (proj.size() != 0)
+    projm = proj.cast<float>();
+  assert_is_Vector4("viewport", viewport);
+  Eigen::Vector4f viewportv;
+  if (viewport.size() != 0)
+    viewportv = Eigen::Vector4f(viewport.cast<float>());
+
+  Eigen::VectorXd bcv;
+  int fidi;
+  bool ret = igl::unproject_onto_mesh(posv, modelm, projm, viewportv, V, F, fidi, bcv);
+  fid(0, 0) = fidi;
+  bc = bcv;
+  return ret;
+}, __doc_igl_unproject_onto_mesh,
+py::arg("pos"), py::arg("model"), py::arg("proj"), py::arg("viewport"), py::arg("V"), py::arg("F"), py::arg("fid"), py::arg("bc"));
+
+// INCOMPLETE BINDINGS ========================
+
+//m.def("unproject_onto_mesh", []
+//(
+//  Eigen::Vector2f & pos,
+//  Eigen::Matrix4f & model,
+//  Eigen::Matrix4f & proj,
+//  Eigen::Vector4f & viewport,
+//  std::function<bool (const Eigen::Vector3f &, const Eigen::Vector3f &, igl::Hit &)> & shoot_ray,
+//  int & fid,
+//  Eigen::MatrixXd& bc
+//)
+//{
+//  return igl::unproject_onto_mesh(pos, model, proj, viewport, shoot_ray, fid, bc);
+//}, __doc_igl_unproject_onto_mesh,
+//py::arg("pos"), py::arg("model"), py::arg("proj"), py::arg("viewport"), py::arg("shoot_ray"), py::arg("fid"), py::arg("bc"));
+

+ 93 - 0
python/py_igl_viewer.cpp

@@ -7,13 +7,100 @@
 #include <igl/viewer/ViewerCore.h>
 #include <igl/viewer/ViewerData.h>
 #include <igl/serialize.h>
+#include "nanogui/screen.h"
+#include "nanogui/formhelper.h"
 
 void python_export_igl_viewer(py::module &m)
 {
 
+//  py::module::import("nanogui");
+//  py::object FormHelper = (py::object) py::module::import("nanogui").attr("FormHelper");
+//  py::object Screen = (py::object) py::module::import("nanogui").attr("Screen");
+
   py::module me = m.def_submodule(
     "viewer", "Mesh viewer");
 
+//// NANOGUI
+//py::class_<nanogui::FormHelper> formhelper_class(me, "FormHelper", FormHelper);
+//py::class_<nanogui::Screen> screen_class(me, "Screen", Screen);
+
+
+//    py::class_<FormHelper>(m, "FormHelper", D(FormHelper))
+//        .def(py::init<Screen *>(), D(FormHelper, FormHelper))
+//        .def("addWindow", &FormHelper::addWindow, py::arg("pos"),
+//             py::arg("title") = std::string("Untitled"),
+//             D(FormHelper, addWindow))
+//        .def("addGroup", &FormHelper::addGroup, D(FormHelper, addGroup))
+//        .def("addButton", &FormHelper::addButton, py::arg("label"),
+//             py::arg("cb"), D(FormHelper, addGroup))
+//        .def("addBoolVariable",
+//             [](FormHelper &h, const std::string &label,
+//                const std::function<void(bool) > &setter,
+//                const std::function<bool(void) > &getter, bool editable) -> CheckBox* {
+//                return h.addVariable(label, setter, getter, editable);
+//             },
+//             py::arg("label"), py::arg("setter"), py::arg("getter"),
+//             py::arg("editable") = true)
+//        .def("addIntVariable",
+//             [](FormHelper &h, const std::string &label,
+//                const std::function<void(int64_t) > &setter,
+//                const std::function<int64_t(void) > &getter, bool editable) -> Int64Box* {
+//                return h.addVariable(label, setter, getter, editable);
+//             },
+//             py::arg("label"), py::arg("setter"), py::arg("getter"),
+//             py::arg("editable") = true)
+//        .def("addDoubleVariable",
+//             [](FormHelper &h, const std::string &label,
+//                const std::function<void(double) > &setter,
+//                const std::function<double(void) > &getter, bool editable) -> FloatBox<double>* {
+//                return h.addVariable(label, setter, getter, editable);
+//             },
+//             py::arg("label"), py::arg("setter"), py::arg("getter"),
+//             py::arg("editable") = true)
+//        .def("addStringVariable",
+//             [](FormHelper &h, const std::string &label,
+//                const std::function<void(std::string) > &setter,
+//                const std::function<std::string(void) > &getter, bool editable) -> TextBox* {
+//                return h.addVariable(label, setter, getter, editable);
+//             },
+//             py::arg("label"), py::arg("setter"), py::arg("getter"),
+//             py::arg("editable") = true)
+//        .def("addColorVariable",
+//             [](FormHelper &h, const std::string &label,
+//                const std::function<void(Color) > &setter,
+//                const std::function<Color(void) > &getter, bool editable) -> ColorPicker* {
+//                return h.addVariable(label, setter, getter, editable);
+//             },
+//             py::arg("label"), py::arg("setter"), py::arg("getter"),
+//             py::arg("editable") = true)
+//        .def("addEnumVariable",
+//             [](FormHelper &h, const std::string &label,
+//                const std::function<void(int) > &setter,
+//                const std::function<int(void) > &getter, bool editable) -> ComboBox* {
+//                return h.addVariable(label,
+//                        reinterpret_cast<const std::function<void(DummyEnum)>&>(setter),
+//                        reinterpret_cast<const std::function<DummyEnum(void)>&>(getter),
+//                        editable);
+//             },
+//             py::arg("label"), py::arg("setter"), py::arg("getter"),
+//             py::arg("editable") = true)
+//        .def("addWidget", &FormHelper::addWidget, D(FormHelper, addWidget))
+//        .def("refresh", &FormHelper::refresh, D(FormHelper, refresh))
+//        .def("window", &FormHelper::window, D(FormHelper, window))
+//        .def("setWindow", &FormHelper::setWindow, D(FormHelper, setWindow))
+//        .def("fixedSize", &FormHelper::fixedSize, D(FormHelper, fixedSize))
+//        .def("setFixedSize", &FormHelper::setFixedSize, D(FormHelper, setFixedSize))
+//        .def("groupFontName", &FormHelper::groupFontName, D(FormHelper, groupFontName))
+//        .def("setGroupFontName", &FormHelper::setGroupFontName, D(FormHelper, setGroupFontName))
+//        .def("labelFontName", &FormHelper::labelFontName, D(FormHelper, labelFontName))
+//        .def("setLabelFontName", &FormHelper::setLabelFontName, D(FormHelper, setLabelFontName))
+//        .def("groupFontSize", &FormHelper::groupFontSize, D(FormHelper, groupFontSize))
+//        .def("setGroupFontSize", &FormHelper::setGroupFontSize, D(FormHelper, setGroupFontSize))
+//        .def("labelFontSize", &FormHelper::labelFontSize, D(FormHelper, labelFontSize))
+//        .def("setLabelFontSize", &FormHelper::setLabelFontSize, D(FormHelper, setLabelFontSize))
+//        .def("widgetFontSize", &FormHelper::widgetFontSize, D(FormHelper, widgetFontSize))
+//        .def("setWidgetFontSize", &FormHelper::setWidgetFontSize, D(FormHelper, setWidgetFontSize));
+
 /////////////////////// DATA
 
 py::class_<igl::viewer::ViewerData> viewerdata_class(me, "ViewerData");
@@ -311,6 +398,8 @@ py::class_<igl::viewer::ViewerCore> viewercore_class(me, "ViewerCore");
     .def(py::init<>())
     .def_readwrite("data", &igl::viewer::Viewer::data)
     .def_readwrite("core", &igl::viewer::Viewer::core)
+    .def_readwrite("ngui", &igl::viewer::Viewer::ngui)
+    .def_readwrite("screen", &igl::viewer::Viewer::screen)
     .def("launch", &igl::viewer::Viewer::launch, py::arg("resizable") = true, py::arg("fullscreen") = false)
     .def("launch_init", &igl::viewer::Viewer::launch_init, py::arg("resizable") = true, py::arg("fullscreen") = false)
     .def("launch_rendering", &igl::viewer::Viewer::launch_rendering, py::arg("loop") = true)
@@ -356,6 +445,10 @@ py::class_<igl::viewer::ViewerCore> viewercore_class(me, "ViewerCore");
     .def("open_dialog_load_mesh", &igl::viewer::Viewer::open_dialog_load_mesh)
     .def("open_dialog_save_mesh", &igl::viewer::Viewer::open_dialog_save_mesh)
 
+    // Input handling
+    .def_readwrite("current_mouse_x", &igl::viewer::Viewer::current_mouse_x)
+    .def_readwrite("current_mouse_y", &igl::viewer::Viewer::current_mouse_y)
+
     // Callbacks
     .def_readwrite("callback_init", &igl::viewer::Viewer::callback_init)
     .def_readwrite("callback_pre_draw", &igl::viewer::Viewer::callback_pre_draw)

+ 3 - 0
python/py_vector.cpp

@@ -126,6 +126,9 @@ py::class_<Type> bind_eigen_2(py::module &m, const char *name,
         .def("rightCols", [](Type &m, const int& k) { return Type(m.rightCols(k)); })
         .def("leftCols", [](Type &m, const int& k) { return Type(m.leftCols(k)); })
 
+        .def("setLeftCols", [](Type &m, const int& k, const Type& v) { return Type(m.leftCols(k) = v); })
+        .def("setRightCols", [](Type &m, const int& k, const Type& v) { return Type(m.rightCols(k) = v); })
+
         .def("topRows", [](Type &m, const int& k) { return Type(m.topRows(k)); })
         .def("bottomRows", [](Type &m, const int& k) { return Type(m.bottomRows(k)); })
 

+ 6 - 0
python/python_shared.cpp

@@ -27,11 +27,14 @@ PYBIND11_PLUGIN(pyigl) {
            principal_curvature
            local_basis
            signed_distance
+           triangle_triangulate
+           embree_ambient_occlusion
            cotmatrix
            floor
            slice
            per_face_normals
            ARAPEnergyType
+           quad_planarity
            readOFF
            per_vertex_normals
            sortrows
@@ -41,12 +44,14 @@ PYBIND11_PLUGIN(pyigl) {
            eigs
            per_corner_normals
            massmatrix
+           unproject_onto_mesh
            colon
            fit_rotations
            rotate_vectors
            read_triangle_mesh
            SolverStatus
            gaussian_curvature
+           planarize_quad_mesh
            avg_edge_length
            barycentric_coordinates
            lscm
@@ -56,6 +61,7 @@ PYBIND11_PLUGIN(pyigl) {
            point_mesh_squared_distance
            parula
            setdiff
+           copyleft_tetgen_tetrahedralize
            comb_frame_field
            map_vertices_to_circle
            writeOBJ

+ 20 - 0
python/python_shared.h

@@ -31,6 +31,26 @@ void assert_is_RowVectorX(const std::string name, const Eigen::PlainObjectBase<S
     throw std::runtime_error(name + " must be a row vector.");
 }
 
+template<typename Scalar>
+void assert_is_Vector2(const std::string name, const Eigen::PlainObjectBase<Scalar>& v)
+{
+  if (v.size() == 0)
+    return;
+
+  if ((v.cols() != 1) || (v.rows() != 2))
+    throw std::runtime_error(name + " must be a column vector with 2 entries.");
+}
+
+template<typename Scalar>
+void assert_is_RowVector2(const std::string name, const Eigen::PlainObjectBase<Scalar>& v)
+{
+  if (v.size() == 0)
+    return;
+
+  if ((v.cols() != 2) || (v.rows() != 1))
+    throw std::runtime_error(name + " must be a row vector with 2 entries.");
+}
+
 template<typename Scalar>
 void assert_is_Vector3(const std::string name, const Eigen::PlainObjectBase<Scalar>& v)
 {

+ 0 - 900
python/scripts/errors.txt

@@ -1,900 +0,0 @@
-empty: 10 
-Function C_STR contains no parseable content in cpp header. Something might be wrong.
-Function REDRUM contains no parseable content in cpp header. Something might be wrong.
-Function STR contains no parseable content in cpp header. Something might be wrong.
-Function copyleft_marching_cubes_tables contains no parseable content in cpp header. Something might be wrong.
-Function deprecated contains no parseable content in cpp header. Something might be wrong.
-Function embree_Embree_convenience contains no parseable content in cpp header. Something might be wrong.
-Function igl_inline contains no parseable content in cpp header. Something might be wrong.
-Function opengl_OpenGL_convenience contains no parseable content in cpp header. Something might be wrong.
-Function viewer_TextRenderer contains no parseable content in cpp header. Something might be wrong.
-Function viewer_TextRenderer_fonts contains no parseable content in cpp header. Something might be wrong.
-
-
-incorrect: 367 
-Incorrect function in adjacency_list: adjacency_list, Unknown typechain: std::vector<std::vector<IndexVector> > &,Unknown typechain: bool
-
-Incorrect function in all_pairs_distances: all_pairs_distances, Unknown typechain: Mat &,Unknown typechain: Mat &,Empty typechain: bool,Unknown typechain: Mat &
-
-Incorrect function in ambient_occlusion: ambient_occlusion, Unknown typechain: std::function<bool (const Eigen::Vector3f &, const Eigen::Vector3f &)> &,Empty typechain: int
-
-Incorrect function in ambient_occlusion: ambient_occlusion, Unknown typechain: igl::AABB<DerivedV, DIM> &,Empty typechain: int
-
-Incorrect function in angular_distance: angular_distance, Unknown typechain: Eigen::Quaterniond &,Unknown typechain: Eigen::Quaterniond &
-
-Incorrect function in any_of: any_of, Unknown typechain: Mat &
-
-Incorrect function in arap_linear_block: arap_linear_block, Unknown typechain: MatV &,Unknown typechain: MatF &,Empty typechain: int,Empty typechain: int,Empty typechain: int &
-
-Incorrect function in arap_linear_block: arap_linear_block_spokes, Unknown typechain: MatV &,Unknown typechain: MatF &,Empty typechain: int,Empty typechain: int &
-
-Incorrect function in arap_linear_block: arap_linear_block_spokes_and_rims, Unknown typechain: MatV &,Unknown typechain: MatF &,Empty typechain: int,Empty typechain: int &
-
-Incorrect function in arap_linear_block: arap_linear_block_elements, Unknown typechain: MatV &,Unknown typechain: MatF &,Empty typechain: int,Empty typechain: int &
-
-Incorrect function in arap_rhs: arap_rhs, Empty typechain: int,Empty typechain: int,Empty typechain: int &
-
-Incorrect function in average_onto_faces: average_onto_faces, Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: Eigen::Matrix<I, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &
-
-Incorrect function in axis_angle_to_quat: axis_angle_to_quat, Unknown typechain: Q_type *,Unknown typechain: Q_type,Unknown typechain: Q_type *
-
-Incorrect function in biharmonic_coordinates: biharmonic_coordinates, Unknown typechain: std::vector<std::vector<SType> > &
-
-Incorrect function in biharmonic_coordinates: biharmonic_coordinates, Unknown typechain: std::vector<std::vector<SType> > &,Empty typechain: int
-
-Incorrect function in boundary_conditions: boundary_conditions, Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in boundary_facets: boundary_facets, Unknown typechain: std::vector<std::vector<IntegerT> > &,Unknown typechain: std::vector<std::vector<IntegerF> > &
-
-Incorrect function in boundary_loop: boundary_loop, Unknown typechain: std::vector<Index> &
-
-Incorrect function in cat: cat, Empty typechain: int,Unknown typechain: MatC &
-
-Incorrect function in cat: cat, Empty typechain: int,Unknown typechain: Mat &,Unknown typechain: Mat &
-
-Incorrect function in cat: cat, Unknown typechain: std::vector<std::vector<Mat> > &,Unknown typechain: Mat &
-
-Incorrect function in centroid: centroid, Unknown typechain: Derivedvol &
-
-Incorrect function in circulation: circulation, Empty typechain: int,Empty typechain: bool,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in circulation: circulation, Empty typechain: int,Empty typechain: bool,Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in collapse_edge: collapse_edge, Empty typechain: int,Unknown typechain: Eigen::RowVectorXd &,Unknown typechain: Eigen::VectorXi &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &
-
-Incorrect function in collapse_edge: collapse_edge, Empty typechain: int,Unknown typechain: Eigen::RowVectorXd &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in collapse_edge: collapse_edge, Unknown typechain: std::function<void (const int, const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, double &, Eigen::RowVectorXd &)> &,Unknown typechain: Eigen::VectorXi &,Unknown typechain: std::set<std::pair<double, int> > &,Unknown typechain: std::vector<std::set<std::pair<double, int> >::iterator> &
-
-Incorrect function in collapse_edge: collapse_edge, Unknown typechain: std::function<void (const int, const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, double &, Eigen::RowVectorXd &)> &,Unknown typechain: Eigen::VectorXi &,Unknown typechain: std::set<std::pair<double, int> > &,Unknown typechain: std::vector<std::set<std::pair<double, int> >::iterator> &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &
-
-Incorrect function in collapse_small_triangles: collapse_small_triangles, Empty typechain: double
-
-Incorrect function in colon: colon, Unknown typechain: L,Unknown typechain: S,Unknown typechain: H,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, 1> &
-
-Incorrect function in colon: colon, Unknown typechain: L,Unknown typechain: H,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, 1> &
-
-Incorrect function in colon: colon, Unknown typechain: L,Unknown typechain: H
-
-Incorrect function in column_to_quats: column_to_quats, Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > &
-
-Incorrect function in components: components, Unknown typechain: Eigen::SparseMatrix<AScalar> &
-
-Incorrect function in components: components, Unknown typechain: Eigen::SparseMatrix<AScalar> &
-
-Incorrect function in copyleft_cgal_assign_scalar: assign_scalar, Unknown typechain: typename CGAL::Epeck::FT &,Unknown typechain: CGAL::Epeck::FT &
-
-Incorrect function in copyleft_cgal_assign_scalar: assign_scalar, Unknown typechain: typename CGAL::Epeck::FT &,Empty typechain: double &
-
-Incorrect function in copyleft_cgal_assign_scalar: assign_scalar, Empty typechain: double &,Empty typechain: double &
-
-Incorrect function in copyleft_cgal_cell_adjacency: cell_adjacency, Unknown typechain: size_t,Unknown typechain: std::vector<std::set<std::tuple<typename DerivedC::Scalar, bool, size_t> > > &
-
-Incorrect function in copyleft_cgal_closest_facet: closest_facet, Unknown typechain: std::vector<std::vector<uE2EType> > &
-
-Incorrect function in copyleft_cgal_closest_facet: closest_facet, Unknown typechain: std::vector<std::vector<uE2EType> > &
-
-Incorrect function in copyleft_cgal_closest_facet: closest_facet, Unknown typechain: std::vector<std::vector<uE2EType> > &,Unknown typechain: std::vector<std::vector<size_t> > &,Unknown typechain: std::vector<std::vector<size_t> > &,Unknown typechain: CGAL::AABB_tree<CGAL::AABB_traits<Kernel, CGAL::AABB_triangle_primitive<Kernel, typename std::vector<typename Kernel::Triangle_3>::iterator> > > &,Unknown typechain: std::vector<typename Kernel::Triangle_3> &,Unknown typechain: std::vector<bool> &
-
-Incorrect function in copyleft_cgal_complex_to_mesh: complex_to_mesh, Unknown typechain: CGAL::Complex_2_in_triangulation_3<Tr> &
-
-Incorrect function in copyleft_cgal_extract_cells: extract_cells, Unknown typechain: std::vector<std::vector<uE2EType> > &
-
-Incorrect function in copyleft_cgal_extract_cells: extract_cells_single_component, Unknown typechain: std::vector<std::vector<uE2EType> > &
-
-Incorrect function in copyleft_cgal_half_space_box: half_space_box, Unknown typechain: CGAL::Plane_3<CGAL::Epeck> &,Unknown typechain: Eigen::Matrix<CGAL::Epeck::FT, 8, 3> &,Unknown typechain: Eigen::Matrix<int, 12, 3> &
-
-Incorrect function in copyleft_cgal_half_space_box: half_space_box, Unknown typechain: Eigen::Matrix<CGAL::Epeck::FT, 8, 3> &,Unknown typechain: Eigen::Matrix<int, 12, 3> &
-
-Incorrect function in copyleft_cgal_half_space_box: half_space_box, Unknown typechain: Eigen::Matrix<CGAL::Epeck::FT, 8, 3> &,Unknown typechain: Eigen::Matrix<int, 12, 3> &
-
-Incorrect function in copyleft_cgal_intersect_other: intersect_other, Unknown typechain: igl::copyleft::cgal::RemeshSelfIntersectionsParam &
-
-Incorrect function in copyleft_cgal_mesh_boolean: mesh_boolean, Unknown typechain: igl::MeshBooleanType &
-
-Incorrect function in copyleft_cgal_mesh_boolean: mesh_boolean, Unknown typechain: std::function<int (const Eigen::Matrix<int, 1, Eigen::Dynamic>)> &,Unknown typechain: std::function<int (const int, const int)> &
-
-Incorrect function in copyleft_cgal_mesh_boolean: mesh_boolean, Unknown typechain: std::vector<DerivedV> &,Unknown typechain: std::vector<DerivedF> &,Unknown typechain: std::function<int (const Eigen::Matrix<int, 1, Eigen::Dynamic>)> &,Unknown typechain: std::function<int (const int, const int)> &
-
-Incorrect function in copyleft_cgal_mesh_boolean: mesh_boolean, Unknown typechain: std::function<int (const Eigen::Matrix<int, 1, Eigen::Dynamic>)> &,Unknown typechain: std::function<int (const int, const int)> &
-
-Incorrect function in copyleft_cgal_mesh_boolean: mesh_boolean, Unknown typechain: igl::MeshBooleanType &
-
-Incorrect function in copyleft_cgal_mesh_boolean_type_to_funcs: mesh_boolean_type_to_funcs, Unknown typechain: igl::MeshBooleanType &,Unknown typechain: std::function<int (const Eigen::Matrix<int, 1, Eigen::Dynamic>)> &,Unknown typechain: std::function<int (const int, const int)> &
-
-Incorrect function in copyleft_cgal_mesh_to_cgal_triangle_list: mesh_to_cgal_triangle_list, Unknown typechain: std::vector<CGAL::Triangle_3<Kernel> > &
-
-Incorrect function in copyleft_cgal_mesh_to_polyhedron: mesh_to_polyhedron, Unknown typechain: Polyhedron &
-
-Incorrect function in copyleft_cgal_minkowski_sum: minkowski_sum, Unknown typechain: Eigen::Matrix<sType, 1, sCols, sOptions> &,Unknown typechain: Eigen::Matrix<dType, 1, dCols, dOptions> &,Empty typechain: bool
-
-Incorrect function in copyleft_cgal_minkowski_sum: minkowski_sum, Unknown typechain: Eigen::Matrix<sType, 1, sCols, sOptions> &,Unknown typechain: Eigen::Matrix<dType, 1, dCols, dOptions> &
-
-Incorrect function in copyleft_cgal_order_facets_around_edge: order_facets_around_edge, Unknown typechain: size_t,Unknown typechain: size_t,Unknown typechain: std::vector<int> &,Unknown typechain: bool
-
-Incorrect function in copyleft_cgal_order_facets_around_edge: order_facets_around_edge, Unknown typechain: size_t,Unknown typechain: size_t,Unknown typechain: std::vector<int> &
-
-Incorrect function in copyleft_cgal_order_facets_around_edges: order_facets_around_edges, Unknown typechain: std::vector<std::vector<uE2EType> > &,Unknown typechain: std::vector<std::vector<uE2oEType> > &,Unknown typechain: std::vector<std::vector<uE2CType> > &
-
-Incorrect function in copyleft_cgal_order_facets_around_edges: order_facets_around_edges, Unknown typechain: std::vector<std::vector<uE2EType> > &,Unknown typechain: std::vector<std::vector<uE2oEType> > &,Unknown typechain: std::vector<std::vector<uE2CType> > &
-
-Incorrect function in copyleft_cgal_order_facets_around_edges: order_facets_around_edges, Unknown typechain: std::vector<std::vector<uE2EType> > &,Unknown typechain: std::vector<std::vector<uE2oEType> > &,Unknown typechain: std::vector<std::vector<uE2CType> > &
-
-Incorrect function in copyleft_cgal_outer_element: outer_vertex, Unknown typechain: IndexType &
-
-Incorrect function in copyleft_cgal_outer_element: outer_edge, Unknown typechain: IndexType &,Unknown typechain: IndexType &
-
-Incorrect function in copyleft_cgal_outer_facet: outer_facet, Unknown typechain: IndexType &,Empty typechain: bool &
-
-Incorrect function in copyleft_cgal_outer_facet: outer_facet, Unknown typechain: IndexType &,Empty typechain: bool &
-
-Incorrect function in copyleft_cgal_point_mesh_squared_distance: point_mesh_squared_distance, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in copyleft_cgal_point_mesh_squared_distance: point_mesh_squared_distance_precompute, Unknown typechain: CGAL::AABB_tree<CGAL::AABB_traits<Kernel, CGAL::AABB_triangle_primitive<Kernel, typename std::vector<CGAL::Triangle_3<Kernel> >::iterator> > > &,Unknown typechain: std::vector<CGAL::Triangle_3<Kernel> > &
-
-Incorrect function in copyleft_cgal_point_mesh_squared_distance: point_mesh_squared_distance, Unknown typechain: CGAL::AABB_tree<CGAL::AABB_traits<Kernel, CGAL::AABB_triangle_primitive<Kernel, typename std::vector<CGAL::Triangle_3<Kernel> >::iterator> > > &,Unknown typechain: std::vector<CGAL::Triangle_3<Kernel> > &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in copyleft_cgal_polyhedron_to_mesh: polyhedron_to_mesh, Unknown typechain: Polyhedron &
-
-Incorrect function in copyleft_cgal_projected_delaunay: projected_delaunay, Unknown typechain: CGAL::Triangle_3<Kernel> &,Unknown typechain: std::vector<CGAL::Object> &,Unknown typechain: CGAL::Constrained_triangulation_plus_2<CGAL::Constrained_Delaunay_triangulation_2<Kernel, CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<Kernel>, CGAL::Constrained_triangulation_face_base_2<Kernel> >, CGAL::Exact_intersections_tag> > &
-
-Incorrect function in copyleft_cgal_propagate_winding_numbers: propagate_winding_numbers, Unknown typechain: std::vector<std::vector<uE2EType> > &,Unknown typechain: size_t,Unknown typechain: size_t
-
-Incorrect function in copyleft_cgal_relabel_small_immersed_cells: relabel_small_immersed_cells, Unknown typechain: size_t,Unknown typechain: size_t,Unknown typechain: FT
-
-Incorrect function in copyleft_cgal_remesh_intersections: remesh_intersections, Unknown typechain: std::vector<CGAL::Triangle_3<Kernel> > &,Unknown typechain: std::map<typename DerivedF::Index, std::vector<std::pair<typename DerivedF::Index, CGAL::Object> > > &,Unknown typechain: std::map<std::pair<typename DerivedF::Index, typename DerivedF::Index>, std::vector<typename DerivedF::Index> > &,Empty typechain: bool
-
-Incorrect function in copyleft_cgal_remesh_intersections: remesh_intersections, Unknown typechain: std::vector<CGAL::Triangle_3<Kernel> > &,Unknown typechain: std::map<typename DerivedF::Index, std::vector<std::pair<typename DerivedF::Index, CGAL::Object> > > &,Unknown typechain: std::map<std::pair<typename DerivedF::Index, typename DerivedF::Index>, std::vector<typename DerivedF::Index> > &
-
-Incorrect function in copyleft_cgal_remesh_self_intersections: remesh_self_intersections, Unknown typechain: igl::copyleft::cgal::RemeshSelfIntersectionsParam &
-
-Incorrect function in copyleft_cgal_signed_distance_isosurface: signed_distance_isosurface, Empty typechain: double,Empty typechain: double,Empty typechain: double,Empty typechain: double,Unknown typechain: igl::SignedDistanceType
-
-Incorrect function in copyleft_cgal_string_to_mesh_boolean_type: string_to_mesh_boolean_type, Unknown typechain: igl::MeshBooleanType &
-
-Incorrect function in copyleft_cgal_submesh_aabb_tree: submesh_aabb_tree, Unknown typechain: CGAL::AABB_tree<CGAL::AABB_traits<Kernel, CGAL::AABB_triangle_primitive<Kernel, typename std::vector<typename Kernel::Triangle_3>::iterator> > > &,Unknown typechain: std::vector<typename Kernel::Triangle_3> &,Unknown typechain: std::vector<bool> &
-
-Incorrect function in copyleft_comiso_miq: miq, Unknown typechain: double,Unknown typechain: double,Unknown typechain: bool,Unknown typechain: int,Unknown typechain: int,Unknown typechain: bool,Unknown typechain: bool,Unknown typechain: std::vector<int>,Unknown typechain: std::vector<std::vector<int> >
-
-Incorrect function in copyleft_comiso_miq: miq, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 3> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 3> &,Unknown typechain: double,Unknown typechain: double,Unknown typechain: bool,Unknown typechain: int,Unknown typechain: int,Unknown typechain: bool,Unknown typechain: bool,Unknown typechain: std::vector<int>,Unknown typechain: std::vector<std::vector<int> >
-
-Incorrect function in copyleft_comiso_nrosy: nrosy, Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::VectorXi &,Empty typechain: int,Empty typechain: double
-
-Incorrect function in copyleft_comiso_nrosy: nrosy, Unknown typechain: Eigen::VectorXi &,Empty typechain: int
-
-Incorrect function in copyleft_cork_from_cork_mesh: from_cork_mesh, Empty typechain: int &
-
-Incorrect function in copyleft_cork_mesh_boolean: mesh_boolean, Unknown typechain: igl::MeshBooleanType &
-
-Incorrect function in copyleft_cork_to_cork_mesh: to_cork_mesh, Empty typechain: int &
-
-Incorrect function in copyleft_marching_cubes: marching_cubes, Empty typechain: unsigned int,Empty typechain: unsigned int,Empty typechain: unsigned int
-
-Incorrect function in copyleft_progressive_hulls: progressive_hulls, Unknown typechain: size_t,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in copyleft_progressive_hulls_cost_and_placement: progressive_hulls_cost_and_placement, Empty typechain: int,Unknown typechain: Eigen::VectorXi &,Empty typechain: double &,Unknown typechain: Eigen::RowVectorXd &
-
-Incorrect function in copyleft_tetgen_mesh_to_tetgenio: mesh_to_tetgenio, Empty typechain: int &,Empty typechain: int &,Empty typechain: int &
-
-Incorrect function in copyleft_tetgen_mesh_with_skeleton: mesh_with_skeleton, Unknown typechain: Eigen::VectorXi &,Empty typechain: int
-
-Incorrect function in copyleft_tetgen_mesh_with_skeleton: mesh_with_skeleton, Unknown typechain: Eigen::VectorXi &,Empty typechain: int
-
-Incorrect function in copyleft_tetgen_read_into_tetgenio: read_into_tetgenio, Empty typechain: int &
-
-Incorrect function in copyleft_tetgen_tetgenio_to_tetmesh: tetgenio_to_tetmesh, Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &
-
-Incorrect function in copyleft_tetgen_tetrahedralize: tetrahedralize, Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &
-
-Incorrect function in covariance_scatter_matrix: covariance_scatter_matrix, Unknown typechain: igl::ARAPEnergyType,Unknown typechain: Eigen::SparseMatrix<double> &
-
-Incorrect function in cross: cross, Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in crouzeix_raviart_massmatrix: crouzeix_raviart_massmatrix, Unknown typechain: Eigen::SparseMatrix<MT> &
-
-Incorrect function in crouzeix_raviart_massmatrix: crouzeix_raviart_massmatrix, Unknown typechain: Eigen::SparseMatrix<MT> &
-
-Incorrect function in cut_mesh: cut_mesh, Unknown typechain: std::vector<std::vector<VFType> > &,Unknown typechain: std::vector<std::vector<VFType> > &,Unknown typechain: std::vector<bool> &
-
-Incorrect function in decimate: decimate, Unknown typechain: size_t,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in decimate: decimate, Unknown typechain: std::function<void (const int, const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, double &, Eigen::RowVectorXd &)> &,Unknown typechain: std::function<bool (const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const std::set<std::pair<double, int> > &, const std::vector<std::set<std::pair<double, int> >::iterator> &, const Eigen::MatrixXd &, const int, const int, const int, const int, const int)> &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in deform_skeleton: deform_skeleton, Unknown typechain: std::vector<Eigen::Affine3d, Eigen::aligned_allocator<Eigen::Affine3d> > &
-
-Incorrect function in dijkstra: dijkstra_compute_paths, Unknown typechain: IndexType &,Unknown typechain: std::set<IndexType> &,Unknown typechain: std::vector<std::vector<IndexType> > &
-
-Incorrect function in dijkstra: dijkstra_get_shortest_path_to, Unknown typechain: IndexType &,Unknown typechain: std::vector<IndexType> &
-
-Incorrect function in directed_edge_orientations: directed_edge_orientations, Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > &
-
-Incorrect function in dot: dot, Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in dqs: dqs, Unknown typechain: std::vector<Q, QAlloc> &,Unknown typechain: std::vector<T> &
-
-Incorrect function in edge_collapse_is_valid: edge_collapse_is_valid, Empty typechain: int,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in edge_flaps: edge_flaps, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in edge_flaps: edge_flaps, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in eigs: eigs, Unknown typechain: Eigen::SparseMatrix<Atype> &,Unknown typechain: Eigen::SparseMatrix<Btype> &,Unknown typechain: size_t
-
-Incorrect function in embree_bone_heat: bone_heat, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in example_fun: example_fun, Unknown typechain: Printable &
-
-Incorrect function in extract_manifold_patches: extract_manifold_patches, Unknown typechain: std::vector<std::vector<uE2EType> > &
-
-Incorrect function in extract_non_manifold_edge_curves: extract_non_manifold_edge_curves, Unknown typechain: std::vector<std::vector<uE2EType> > &,Unknown typechain: std::vector<std::vector<size_t> > &
-
-Incorrect function in face_occurrences: face_occurrences, Unknown typechain: std::vector<std::vector<IntegerF> > &,Unknown typechain: std::vector<IntegerC> &
-
-Incorrect function in faces_first: faces_first, Unknown typechain: MatV &,Unknown typechain: MatF &,Unknown typechain: MatV &,Unknown typechain: MatF &,Unknown typechain: VecI &
-
-Incorrect function in faces_first: faces_first, Unknown typechain: MatV &,Unknown typechain: MatF &,Unknown typechain: VecI &
-
-Incorrect function in facet_components: facet_components, Unknown typechain: std::vector<std::vector<std::vector<TTIndex> > > &
-
-Incorrect function in find: find, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, 1> &
-
-Incorrect function in find_cross_field_singularities: find_cross_field_singularities, Unknown typechain: bool
-
-Incorrect function in fit_plane: fit_plane, Unknown typechain: Eigen::RowVector3d &,Unknown typechain: Eigen::RowVector3d &
-
-Incorrect function in fit_rotations: fit_rotations_SSE, Unknown typechain: Eigen::MatrixXf &,Unknown typechain: Eigen::MatrixXf &
-
-Incorrect function in forward_kinematics: forward_kinematics, Unknown typechain: Eigen::VectorXi &,Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > &,Unknown typechain: std::vector<Eigen::Vector3d> &,Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > &,Unknown typechain: std::vector<Eigen::Vector3d> &
-
-Incorrect function in forward_kinematics: forward_kinematics, Unknown typechain: Eigen::VectorXi &,Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > &,Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > &,Unknown typechain: std::vector<Eigen::Vector3d> &
-
-Incorrect function in forward_kinematics: forward_kinematics, Unknown typechain: Eigen::VectorXi &,Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > &,Unknown typechain: std::vector<Eigen::Vector3d> &
-
-Incorrect function in forward_kinematics: forward_kinematics, Unknown typechain: Eigen::VectorXi &,Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> > &
-
-Incorrect function in frame_field_deformer: frame_field_deformer, Unknown typechain: int,Unknown typechain: double,Unknown typechain: bool
-
-Incorrect function in frustum: frustum, Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar
-
-Incorrect function in grad: grad, Unknown typechain: Eigen::SparseMatrix<typename DerivedV::Scalar> &
-
-Incorrect function in group_sum_matrix: group_sum_matrix, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Empty typechain: int
-
-Incorrect function in group_sum_matrix: group_sum_matrix, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &
-
-Incorrect function in harwell_boeing: harwell_boeing, Empty typechain: int &,Unknown typechain: std::vector<Scalar> &,Unknown typechain: std::vector<Index> &,Unknown typechain: std::vector<Index> &
-
-Incorrect function in hausdorff: hausdorff, Unknown typechain: Scalar &
-
-Incorrect function in histc: histc, Unknown typechain: typename DerivedE::Scalar &,Unknown typechain: typename DerivedE::Index &
-
-Incorrect function in hsv_to_rgb: hsv_to_rgb, Unknown typechain: T *,Unknown typechain: T *
-
-Incorrect function in hsv_to_rgb: hsv_to_rgb, Unknown typechain: T &,Unknown typechain: T &,Unknown typechain: T &,Unknown typechain: T &,Unknown typechain: T &,Unknown typechain: T &
-
-Incorrect function in in_element: in_element, Unknown typechain: AABB<DerivedV, DIM> &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in in_element: in_element, Unknown typechain: AABB<DerivedV, DIM> &
-
-Incorrect function in infinite_cost_stopping_condition: infinite_cost_stopping_condition, Unknown typechain: std::function<void (const int, const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, double &, Eigen::RowVectorXd &)> &,Unknown typechain: std::function<bool (const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const std::set<std::pair<double, int> > &, const std::vector<std::set<std::pair<double, int> >::iterator> &, const Eigen::MatrixXd &, const int, const int, const int, const int, const int)> &
-
-Incorrect function in infinite_cost_stopping_condition: infinite_cost_stopping_condition, Unknown typechain: Eigen::VectorXi &,Unknown typechain: std::set<std::pair<double, int> > &,Unknown typechain: std::vector<std::set<std::pair<double, int> >::iterator> &,Empty typechain: int,Empty typechain: int,Empty typechain: int,Empty typechain: int,Empty typechain: int,Unknown typechain: std::function<void (const int, const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, double &, Eigen::RowVectorXd &)> &
-
-Incorrect function in intersect: intersect, Unknown typechain: M &,Unknown typechain: M &,Unknown typechain: M &
-
-Incorrect function in intersect: intersect, Unknown typechain: M &,Unknown typechain: M &
-
-Incorrect function in is_dir: is_dir, Empty typechain: char *
-
-Incorrect function in is_file: is_file, Empty typechain: char *
-
-Incorrect function in is_readable: is_readable, Empty typechain: char *
-
-Incorrect function in is_symmetric: is_symmetric, Unknown typechain: Eigen::SparseMatrix<AT> &
-
-Incorrect function in is_symmetric: is_symmetric, Unknown typechain: Eigen::SparseMatrix<AT> &,Unknown typechain: epsilonT
-
-Incorrect function in is_writable: is_writable, Empty typechain: char *
-
-Incorrect function in jet: jet, Unknown typechain: T,Unknown typechain: T *
-
-Incorrect function in jet: jet, Unknown typechain: T,Unknown typechain: T &,Unknown typechain: T &,Unknown typechain: T &
-
-Incorrect function in jet: jet, Empty typechain: double,Empty typechain: double
-
-Incorrect function in lbs_matrix: lbs_matrix_column, Unknown typechain: Eigen::SparseMatrix<double> &
-
-Incorrect function in lbs_matrix: lbs_matrix_column, Unknown typechain: Eigen::SparseMatrix<double> &
-
-Incorrect function in lim_lim: lim, Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: int &,Empty typechain: double,Empty typechain: int,Empty typechain: bool
-
-Incorrect function in limit_faces: limit_faces, Unknown typechain: MatF &,Unknown typechain: VecL &,Empty typechain: bool,Unknown typechain: MatF &
-
-Incorrect function in line_segment_in_rectangle: line_segment_in_rectangle, Unknown typechain: Eigen::Vector2d &,Unknown typechain: Eigen::Vector2d &,Unknown typechain: Eigen::Vector2d &,Unknown typechain: Eigen::Vector2d &
-
-Incorrect function in list_to_matrix: list_to_matrix, Unknown typechain: std::vector<std::vector<T> > &
-
-Incorrect function in list_to_matrix: list_to_matrix, Unknown typechain: std::vector<std::vector<T> > &,Empty typechain: int,Unknown typechain: T &
-
-Incorrect function in list_to_matrix: list_to_matrix, Unknown typechain: std::vector<T> &
-
-Incorrect function in lscm: lscm, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in map_vertices_to_circle: map_vertices_to_circle, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in mat_max: mat_max, Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Empty typechain: int,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &
-
-Incorrect function in mat_min: mat_min, Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Empty typechain: int,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &
-
-Incorrect function in mat_to_quat: mat4_to_quat, Unknown typechain: Q_type *,Unknown typechain: Q_type *
-
-Incorrect function in mat_to_quat: mat3_to_quat, Unknown typechain: Q_type *,Unknown typechain: Q_type *
-
-Incorrect function in matlab_format: matlab_format, Unknown typechain: Eigen::SparseMatrix<DerivedS> &
-
-Incorrect function in matlab_matlabinterface: mlinit, Empty typechain: int **
-
-Incorrect function in matlab_matlabinterface: mlclose, Empty typechain: int **
-
-Incorrect function in matlab_matlabinterface: mlsetmatrix, Empty typechain: int **
-
-Incorrect function in matlab_matlabinterface: mlgetmatrix, Empty typechain: int **
-
-Incorrect function in matlab_matlabinterface: mlsetscalar, Empty typechain: int **,Empty typechain: double
-
-Incorrect function in matlab_matlabinterface: mlgetscalar, Empty typechain: int **
-
-Incorrect function in matlab_matlabinterface: mleval, Empty typechain: int **
-
-Incorrect function in matlab_mexErrMsgTxt: mexErrMsgTxt, Empty typechain: bool,Empty typechain: char *
-
-Incorrect function in matlab_requires_arg: requires_arg, Empty typechain: int,Empty typechain: int,Empty typechain: char *
-
-Incorrect function in matlab_validate_arg: validate_arg_scalar, Empty typechain: int,Empty typechain: int,Empty typechain: int *[],Empty typechain: char *
-
-Incorrect function in matlab_validate_arg: validate_arg_logical, Empty typechain: int,Empty typechain: int,Empty typechain: int *[],Empty typechain: char *
-
-Incorrect function in matlab_validate_arg: validate_arg_char, Empty typechain: int,Empty typechain: int,Empty typechain: int *[],Empty typechain: char *
-
-Incorrect function in matlab_validate_arg: validate_arg_double, Empty typechain: int,Empty typechain: int,Empty typechain: int *[],Empty typechain: char *
-
-Incorrect function in matlab_validate_arg: validate_arg_function_handle, Empty typechain: int,Empty typechain: int,Empty typechain: int *[],Empty typechain: char *
-
-Incorrect function in matrix_to_list: matrix_to_list, Unknown typechain: std::vector<std::vector<typename DerivedM::Scalar> > &
-
-Incorrect function in matrix_to_list: matrix_to_list, Unknown typechain: std::vector<typename DerivedM::Scalar> &
-
-Incorrect function in max_faces_stopping_condition: max_faces_stopping_condition, Empty typechain: int &,Empty typechain: int,Unknown typechain: std::function<bool (const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const std::set<std::pair<double, int> > &, const std::vector<std::set<std::pair<double, int> >::iterator> &, const Eigen::MatrixXd &, const int, const int, const int, const int, const int)> &
-
-Incorrect function in max_faces_stopping_condition: max_faces_stopping_condition, Unknown typechain: Eigen::VectorXi &,Unknown typechain: std::set<std::pair<double, int> > &,Unknown typechain: std::vector<std::set<std::pair<double, int> >::iterator> &,Empty typechain: int,Empty typechain: int,Empty typechain: int,Empty typechain: int,Empty typechain: int,Empty typechain: int &,Empty typechain: int
-
-Incorrect function in max_size: max_size, Unknown typechain: std::vector<T> &
-
-Incorrect function in median: median, Empty typechain: double &
-
-Incorrect function in min_quad_dense: min_quad_dense_precompute, Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Empty typechain: bool,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &
-
-Incorrect function in min_size: min_size, Unknown typechain: std::vector<T> &
-
-Incorrect function in mode: mode, Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Empty typechain: int,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, 1> &
-
-Incorrect function in mosek_mosek_linprog: mosek_linprog, Unknown typechain: Eigen::SparseMatrix<double> &
-
-Incorrect function in n_polyvector: n_polyvector, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in n_polyvector_general: n_polyvector_general, Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in normalize_quat: normalize_quat, Unknown typechain: Q_type *,Unknown typechain: Q_type *
-
-Incorrect function in on_boundary: on_boundary, Unknown typechain: std::vector<std::vector<IntegerT> > &,Unknown typechain: std::vector<bool> &,Unknown typechain: std::vector<std::vector<bool> > &
-
-Incorrect function in opengl2_draw_floor: draw_floor, Empty typechain: float *,Empty typechain: float *,Unknown typechain: int,Unknown typechain: int
-
-Incorrect function in opengl2_draw_floor: draw_floor_outline, Empty typechain: float *,Empty typechain: float *,Unknown typechain: int,Unknown typechain: int
-
-Incorrect function in opengl2_draw_mesh: draw_mesh, Unknown typechain: GLuint,Unknown typechain: GLuint
-
-Incorrect function in opengl2_draw_mesh: draw_mesh, Unknown typechain: GLuint,Unknown typechain: GLuint
-
-Incorrect function in opengl2_draw_point: draw_point, Empty typechain: double,Empty typechain: double,Empty typechain: double,Unknown typechain: double,Unknown typechain: bool
-
-Incorrect function in opengl2_draw_point: draw_point, Unknown typechain: double,Unknown typechain: bool
-
-Incorrect function in opengl2_draw_skeleton_3d: draw_skeleton_3d, Unknown typechain: double
-
-Incorrect function in opengl2_draw_skeleton_vector_graphics: draw_skeleton_vector_graphics, Empty typechain: float *,Empty typechain: float *
-
-Incorrect function in opengl2_draw_skeleton_vector_graphics: draw_skeleton_vector_graphics, Empty typechain: float *,Empty typechain: float *
-
-Incorrect function in opengl2_print_gl_get: print_gl_get, Unknown typechain: GLenum
-
-Incorrect function in opengl2_project: project, Empty typechain: double,Empty typechain: double,Empty typechain: double,Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl2_right_axis: right_axis, Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl2_right_axis: right_axis, Empty typechain: double *,Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl2_unproject: unproject, Empty typechain: double,Empty typechain: double,Empty typechain: double,Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl2_unproject_to_zero_plane: unproject_to_zero_plane, Empty typechain: double,Empty typechain: double,Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl2_up_axis: up_axis, Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl2_up_axis: up_axis, Empty typechain: double *,Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl2_view_axis: view_axis, Empty typechain: double *,Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl2_view_axis: view_axis, Empty typechain: double *,Empty typechain: double *,Empty typechain: double *
-
-Incorrect function in opengl_compile_and_link_program: compile_and_link_program, Empty typechain: char *,Empty typechain: char *
-
-Incorrect function in opengl_compile_shader: compile_shader, Unknown typechain: GLint,Empty typechain: char *
-
-Incorrect function in opengl_create_index_vbo: create_index_vbo, Unknown typechain: GLuint &
-
-Incorrect function in opengl_create_mesh_vbo: create_mesh_vbo, Unknown typechain: GLuint &,Unknown typechain: GLuint &
-
-Incorrect function in opengl_create_mesh_vbo: create_mesh_vbo, Unknown typechain: GLuint &,Unknown typechain: GLuint &,Unknown typechain: GLuint &
-
-Incorrect function in opengl_create_shader_program: create_shader_program, Unknown typechain: std::map<std::string, GLuint> &,Unknown typechain: GLuint &
-
-Incorrect function in opengl_create_shader_program: create_shader_program, Unknown typechain: std::map<std::string, GLuint> &,Unknown typechain: GLuint &
-
-Incorrect function in opengl_create_shader_program: create_shader_program, Unknown typechain: std::map<std::string, GLuint> &
-
-Incorrect function in opengl_create_shader_program: create_shader_program, Unknown typechain: std::map<std::string, GLuint> &
-
-Incorrect function in opengl_create_vector_vbo: create_vector_vbo, Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: GLuint &
-
-Incorrect function in opengl_destroy_shader_program: destroy_shader_program, Unknown typechain: GLuint
-
-Incorrect function in opengl_gl_type_size: gl_type_size, Unknown typechain: GLenum
-
-Incorrect function in opengl_init_render_to_texture: init_render_to_texture, Unknown typechain: size_t,Unknown typechain: size_t,Unknown typechain: GLuint &,Unknown typechain: GLuint &,Unknown typechain: GLuint &
-
-Incorrect function in opengl_load_shader: load_shader, Empty typechain: char *,Unknown typechain: GLenum
-
-Incorrect function in opengl_print_program_info_log: print_program_info_log, Unknown typechain: GLuint
-
-Incorrect function in opengl_print_shader_info_log: print_shader_info_log, Unknown typechain: GLuint
-
-Incorrect function in opengl_texture_from_tga: texture_from_tga, Unknown typechain: GLuint &
-
-Incorrect function in opengl_uniform_type_to_string: uniform_type_to_string, Unknown typechain: GLenum
-
-Incorrect function in ortho: ortho, Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar,Unknown typechain: typename DerivedP::Scalar
-
-Incorrect function in outer_element: outer_vertex, Unknown typechain: IndexType &
-
-Incorrect function in outer_element: outer_edge, Unknown typechain: IndexType &,Unknown typechain: IndexType &
-
-Incorrect function in outer_element: outer_facet, Unknown typechain: IndexType &,Empty typechain: bool &
-
-Incorrect function in partition: partition, Empty typechain: int,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<double, Eigen::Dynamic, 1> &
-
-Incorrect function in parula: parula, Unknown typechain: T,Unknown typechain: T *
-
-Incorrect function in parula: parula, Unknown typechain: T,Unknown typechain: T &,Unknown typechain: T &,Unknown typechain: T &
-
-Incorrect function in parula: parula, Empty typechain: double,Empty typechain: double
-
-Incorrect function in per_corner_normals: per_corner_normals, Empty typechain: double
-
-Incorrect function in per_corner_normals: per_corner_normals, Empty typechain: double
-
-Incorrect function in per_corner_normals: per_corner_normals, Unknown typechain: std::vector<std::vector<IndexType> > &,Empty typechain: double
-
-Incorrect function in piecewise_constant_winding_number: piecewise_constant_winding_number, Unknown typechain: std::vector<std::vector<uE2EType> > &
-
-Incorrect function in planarize_quad_mesh: planarize_quad_mesh, Empty typechain: int,Empty typechain: double &
-
-Incorrect function in png_texture_from_file: texture_from_file, Unknown typechain: GLuint &
-
-Incorrect function in png_texture_from_png: texture_from_png, Empty typechain: bool,Unknown typechain: GLuint &
-
-Incorrect function in png_texture_from_png: texture_from_png, Unknown typechain: GLuint &
-
-Incorrect function in png_texture_from_png: texture_from_png, Unknown typechain: Eigen::Matrix<char, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: Eigen::Matrix<char, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: Eigen::Matrix<char, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: Eigen::Matrix<char, Eigen::Dynamic, Eigen::Dynamic> &
-
-Incorrect function in point_in_circle: point_in_circle, Empty typechain: double,Empty typechain: double,Empty typechain: double,Empty typechain: double,Empty typechain: double
-
-Incorrect function in point_in_poly: point_in_poly, Unknown typechain: std::vector<std::vector<unsigned int> > &,Empty typechain: unsigned int,Empty typechain: unsigned int
-
-Incorrect function in point_simplex_squared_distance: point_simplex_squared_distance, Unknown typechain: typename DerivedEle::Index,Unknown typechain: Derivedsqr_d &
-
-Incorrect function in polar_svd3x3: polar_svd3x3, Unknown typechain: Mat &,Unknown typechain: Mat &
-
-Incorrect function in polar_svd3x3: polar_svd3x3_sse, Unknown typechain: Eigen::Matrix<T, 3 * 4, 3> &,Unknown typechain: Eigen::Matrix<T, 3 * 4, 3> &
-
-Incorrect function in polyroots: polyRoots, Unknown typechain: Eigen::Matrix<S, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<std::complex<T>, Eigen::Dynamic, 1> &
-
-Incorrect function in polyvector_field_cut_mesh_with_singularities: polyvector_field_cut_mesh_with_singularities, Unknown typechain: std::vector<std::vector<VFType> > &,Unknown typechain: std::vector<std::vector<VVType> > &
-
-Incorrect function in polyvector_field_singularities_from_matchings: polyvector_field_one_ring_matchings, Unknown typechain: std::vector<std::vector<VFType> > &,Empty typechain: int,Empty typechain: int,Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in polyvector_field_singularities_from_matchings: polyvector_field_singularities_from_matchings, Unknown typechain: std::vector<bool> &,Unknown typechain: std::vector<std::vector<VFType> > &
-
-Incorrect function in principal_curvature: principal_curvature, Unknown typechain: unsigned int,Unknown typechain: bool
-
-Incorrect function in print_ijv: print_ijv, Unknown typechain: int
-
-Incorrect function in print_vector: print_vector, Unknown typechain: std::vector<T> &
-
-Incorrect function in print_vector: print_vector, Unknown typechain: std::vector<std::vector<T> > &
-
-Incorrect function in print_vector: print_vector, Unknown typechain: std::vector<std::vector<std::vector<T> > > &
-
-Incorrect function in procrustes: procrustes, Empty typechain: bool,Empty typechain: bool,Unknown typechain: Scalar &
-
-Incorrect function in procrustes: procrustes, Empty typechain: bool,Empty typechain: bool,Unknown typechain: Eigen::Transform<Scalar, DIM, TType> &
-
-Incorrect function in procrustes: procrustes, Unknown typechain: Eigen::Rotation2D<Scalar> &
-
-Incorrect function in project: project, Unknown typechain: Eigen::Matrix<Scalar, 3, 1> &,Unknown typechain: Eigen::Matrix<Scalar, 4, 4> &,Unknown typechain: Eigen::Matrix<Scalar, 4, 4> &,Unknown typechain: Eigen::Matrix<Scalar, 4, 1> &
-
-Incorrect function in project: project, Unknown typechain: Eigen::Matrix<Scalar, 4, 4> &,Unknown typechain: Eigen::Matrix<Scalar, 4, 4> &,Unknown typechain: Eigen::Matrix<Scalar, 4, 1> &
-
-Incorrect function in project_to_line: project_to_line, Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar &,Unknown typechain: Scalar &,Unknown typechain: Scalar &,Unknown typechain: Scalar &,Unknown typechain: Scalar &
-
-Incorrect function in project_to_line: project_to_line, Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar,Unknown typechain: Scalar &,Unknown typechain: Scalar &
-
-Incorrect function in pseudonormal_test: pseudonormal_test, Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::RowVector3d &,Empty typechain: int,Unknown typechain: Eigen::RowVector3d &,Empty typechain: double &,Unknown typechain: Eigen::RowVector3d &
-
-Incorrect function in pseudonormal_test: pseudonormal_test, Unknown typechain: Eigen::RowVector2d &,Empty typechain: int,Unknown typechain: Eigen::RowVector2d &,Empty typechain: double &,Unknown typechain: Eigen::RowVector2d &
-
-Incorrect function in quat_conjugate: quat_conjugate, Unknown typechain: Q_type *,Unknown typechain: Q_type *
-
-Incorrect function in quat_mult: quat_mult, Unknown typechain: Q_type *,Unknown typechain: Q_type *,Unknown typechain: Q_type *
-
-Incorrect function in quat_to_axis_angle: quat_to_axis_angle, Unknown typechain: Q_type *,Unknown typechain: Q_type *,Unknown typechain: Q_type &
-
-Incorrect function in quat_to_axis_angle: quat_to_axis_angle_deg, Unknown typechain: Q_type *,Unknown typechain: Q_type *,Unknown typechain: Q_type &
-
-Incorrect function in quat_to_mat: quat_to_mat, Unknown typechain: Q_type *,Unknown typechain: Q_type *
-
-Incorrect function in quats_to_column: quats_to_column, Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> >
-
-Incorrect function in quats_to_column: quats_to_column, Unknown typechain: std::vector<Eigen::Quaterniond, Eigen::aligned_allocator<Eigen::Quaterniond> >
-
-Incorrect function in random_points_on_mesh: random_points_on_mesh, Empty typechain: int,Unknown typechain: Eigen::SparseMatrix<ScalarB> &
-
-Incorrect function in ray_box_intersect: ray_box_intersect, Unknown typechain: Eigen::AlignedBox<Scalar, 3> &,Unknown typechain: Scalar &,Unknown typechain: Scalar &,Unknown typechain: Scalar &,Unknown typechain: Scalar &
-
-Incorrect function in ray_mesh_intersect: ray_mesh_intersect, Unknown typechain: std::vector<igl::Hit> &
-
-Incorrect function in ray_mesh_intersect: ray_mesh_intersect, Unknown typechain: igl::Hit &
-
-Incorrect function in ray_sphere_intersect: ray_sphere_intersect, Unknown typechain: r_type,Unknown typechain: t_type &,Unknown typechain: t_type &
-
-Incorrect function in readPLY: readPLY, Unknown typechain: std::vector<std::vector<Vtype> > &,Unknown typechain: std::vector<std::vector<Ftype> > &,Unknown typechain: std::vector<std::vector<Ntype> > &,Unknown typechain: std::vector<std::vector<UVtype> > &
-
-Incorrect function in readSTL: readSTL, Unknown typechain: std::vector<std::vector<TypeV> > &,Unknown typechain: std::vector<std::vector<TypeF> > &,Unknown typechain: std::vector<std::vector<TypeN> > &
-
-Incorrect function in readTGF: readTGF, Unknown typechain: std::vector<std::vector<double> > &,Unknown typechain: std::vector<std::vector<int> > &,Unknown typechain: std::vector<int> &,Unknown typechain: std::vector<std::vector<int> > &,Unknown typechain: std::vector<std::vector<int> > &,Unknown typechain: std::vector<std::vector<int> > &
-
-Incorrect function in readTGF: readTGF, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in remove_duplicate_vertices: remove_duplicate_vertices, Empty typechain: double
-
-Incorrect function in remove_duplicate_vertices: remove_duplicate_vertices, Empty typechain: double
-
-Incorrect function in remove_duplicates: remove_duplicates, Unknown typechain: Eigen::Matrix<typename DerivedF::Scalar, Eigen::Dynamic, 1> &,Unknown typechain: double
-
-Incorrect function in remove_unreferenced: remove_unreferenced, Unknown typechain: size_t
-
-Incorrect function in reorder: reorder, Unknown typechain: std::vector<T> &,Unknown typechain: std::vector<size_t> &,Unknown typechain: std::vector<T> &
-
-Incorrect function in repdiag: repdiag, Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Empty typechain: int,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &
-
-Incorrect function in repdiag: repdiag, Unknown typechain: Mat &,Empty typechain: int
-
-Incorrect function in rgb_to_hsv: rgb_to_hsv, Unknown typechain: R *,Unknown typechain: H *
-
-Incorrect function in rotate_by_quat: rotate_by_quat, Unknown typechain: Q_type *,Unknown typechain: Q_type *,Unknown typechain: Q_type *
-
-Incorrect function in rotation_matrix_from_directions: rotation_matrix_from_directions, Unknown typechain: Eigen::Matrix<Scalar, 3, 1>,Unknown typechain: Eigen::Matrix<Scalar, 3, 1>
-
-Incorrect function in round: round, Unknown typechain: DerivedX
-
-Incorrect function in rows_to_matrix: rows_to_matrix, Unknown typechain: std::vector<Row> &,Unknown typechain: Mat &
-
-Incorrect function in signed_distance: signed_distance, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in signed_distance: signed_distance_pseudonormal, Unknown typechain: AABB<Eigen::MatrixXd, 3> &,Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::RowVector3d &
-
-Incorrect function in signed_distance: signed_distance_pseudonormal, Unknown typechain: AABB<Eigen::MatrixXd, 3> &,Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in signed_distance: signed_distance_pseudonormal, Unknown typechain: AABB<Eigen::MatrixXd, 3> &,Unknown typechain: Eigen::VectorXi &,Unknown typechain: Eigen::RowVector3d &,Empty typechain: double &,Empty typechain: double &,Empty typechain: int &,Unknown typechain: Eigen::RowVector3d &,Unknown typechain: Eigen::RowVector3d &
-
-Incorrect function in signed_distance: signed_distance_pseudonormal, Unknown typechain: AABB<Eigen::MatrixXd, 2> &,Unknown typechain: Eigen::RowVector2d &,Empty typechain: double &,Empty typechain: double &,Empty typechain: int &,Unknown typechain: Eigen::RowVector2d &,Unknown typechain: Eigen::RowVector2d &
-
-Incorrect function in signed_distance: signed_distance_winding_number, Unknown typechain: AABB<Eigen::MatrixXd, 3> &,Unknown typechain: igl::WindingNumberAABB<Eigen::Vector3d> &,Unknown typechain: Eigen::RowVector3d &
-
-Incorrect function in simplify_polyhedron: simplify_polyhedron, Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in slice: slice, Unknown typechain: Eigen::SparseMatrix<TX> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::SparseMatrix<TY> &
-
-Incorrect function in slice: slice, Unknown typechain: MatX &,Empty typechain: int
-
-Incorrect function in slice: slice, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &
-
-Incorrect function in slice: slice, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &
-
-Incorrect function in slice: slice, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Empty typechain: int
-
-Incorrect function in slice_into: slice_into, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &
-
-Incorrect function in slice_into: slice_into, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &
-
-Incorrect function in slice_into: slice_into, Unknown typechain: Mat &,Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &,Empty typechain: int,Unknown typechain: Mat &
-
-Incorrect function in slice_into: slice_into, Unknown typechain: Eigen::Matrix<int, Eigen::Dynamic, 1> &
-
-Incorrect function in slice_mask: slice_mask, Unknown typechain: Eigen::Array<bool, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Array<bool, Eigen::Dynamic, 1> &
-
-Incorrect function in slice_mask: slice_mask, Unknown typechain: Eigen::Array<bool, Eigen::Dynamic, 1> &,Empty typechain: int
-
-Incorrect function in slice_mask: slice_mask, Unknown typechain: Eigen::Array<bool, Eigen::Dynamic, 1> &,Unknown typechain: Eigen::Array<bool, Eigen::Dynamic, 1> &
-
-Incorrect function in slice_mask: slice_mask, Unknown typechain: Eigen::Array<bool, Eigen::Dynamic, 1> &,Empty typechain: int
-
-Incorrect function in slice_tets: slice_tets, Unknown typechain: Eigen::SparseMatrix<BCType> &
-
-Incorrect function in snap_to_canonical_view_quat: snap_to_canonical_view_quat, Unknown typechain: Q_type *,Unknown typechain: Q_type,Unknown typechain: Q_type *
-
-Incorrect function in snap_to_canonical_view_quat: snap_to_canonical_view_quat, Unknown typechain: Eigen::Quaternion<Scalarq> &,Empty typechain: double,Unknown typechain: Eigen::Quaternion<Scalars> &
-
-Incorrect function in snap_to_fixed_up: snap_to_fixed_up, Unknown typechain: Eigen::Quaternion<Qtype> &,Unknown typechain: Eigen::Quaternion<Qtype> &
-
-Incorrect function in sort: sort, Unknown typechain: std::vector<T> &,Empty typechain: bool,Unknown typechain: std::vector<T> &,Unknown typechain: std::vector<size_t> &
-
-Incorrect function in sparse: sparse, Unknown typechain: IndexVector &,Unknown typechain: IndexVector &,Unknown typechain: ValueVector &
-
-Incorrect function in sparse: sparse, Unknown typechain: IndexVector &,Unknown typechain: IndexVector &,Unknown typechain: ValueVector &,Unknown typechain: size_t,Unknown typechain: size_t
-
-Incorrect function in stdin_to_temp: stdin_to_temp, Unknown typechain: FILE **
-
-Incorrect function in svd3x3: svd3x3, Unknown typechain: Eigen::Matrix<T, 3, 3> &,Unknown typechain: Eigen::Matrix<T, 3, 3> &,Unknown typechain: Eigen::Matrix<T, 3, 1> &,Unknown typechain: Eigen::Matrix<T, 3, 3> &
-
-Incorrect function in svd3x3_avx: svd3x3_avx, Unknown typechain: Eigen::Matrix<T, 3 * 8, 3> &,Unknown typechain: Eigen::Matrix<T, 3 * 8, 3> &,Unknown typechain: Eigen::Matrix<T, 3 * 8, 1> &,Unknown typechain: Eigen::Matrix<T, 3 * 8, 3> &
-
-Incorrect function in svd3x3_sse: svd3x3_sse, Unknown typechain: Eigen::Matrix<T, 3 * 4, 3> &,Unknown typechain: Eigen::Matrix<T, 3 * 4, 3> &,Unknown typechain: Eigen::Matrix<T, 3 * 4, 1> &,Unknown typechain: Eigen::Matrix<T, 3 * 4, 3> &
-
-Incorrect function in trackball: trackball, Empty typechain: double,Empty typechain: double,Unknown typechain: Q_type,Empty typechain: double,Empty typechain: double,Empty typechain: double,Empty typechain: double,Unknown typechain: Q_type *
-
-Incorrect function in trackball: trackball, Empty typechain: double,Empty typechain: double,Unknown typechain: Q_type,Unknown typechain: Q_type *,Empty typechain: double,Empty typechain: double,Empty typechain: double,Empty typechain: double,Unknown typechain: Q_type *
-
-Incorrect function in trackball: trackball, Empty typechain: double,Empty typechain: double,Empty typechain: double,Unknown typechain: Eigen::Quaternion<Scalardown_quat> &,Empty typechain: double,Empty typechain: double,Empty typechain: double,Empty typechain: double,Unknown typechain: Eigen::Quaternion<Scalarquat> &
-
-Incorrect function in transpose_blocks: transpose_blocks, Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &,Unknown typechain: size_t,Unknown typechain: size_t,Unknown typechain: Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &
-
-Incorrect function in two_axis_valuator_fixed_up: two_axis_valuator_fixed_up, Empty typechain: int,Empty typechain: int,Empty typechain: double,Unknown typechain: Eigen::Quaternion<Scalardown_quat> &,Empty typechain: int,Empty typechain: int,Empty typechain: int,Empty typechain: int,Unknown typechain: Eigen::Quaternion<Scalarquat> &
-
-Incorrect function in uniformly_sample_two_manifold: uniformly_sample_two_manifold, Empty typechain: int,Empty typechain: double
-
-Incorrect function in uniformly_sample_two_manifold: uniformly_sample_two_manifold_at_vertices, Empty typechain: int,Empty typechain: double,Unknown typechain: Eigen::VectorXi &
-
-Incorrect function in unique: unique, Unknown typechain: std::vector<T> &,Unknown typechain: std::vector<T> &,Unknown typechain: std::vector<size_t> &,Unknown typechain: std::vector<size_t> &
-
-Incorrect function in unique: unique, Unknown typechain: std::vector<T> &,Unknown typechain: std::vector<T> &
-
-Incorrect function in unique_edge_map: unique_edge_map, Unknown typechain: std::vector<std::vector<uE2EType> > &
-
-Incorrect function in unproject: unproject, Unknown typechain: Eigen::Matrix<Scalar, 3, 1> &,Unknown typechain: Eigen::Matrix<Scalar, 4, 4> &,Unknown typechain: Eigen::Matrix<Scalar, 4, 4> &,Unknown typechain: Eigen::Matrix<Scalar, 4, 1> &
-
-Incorrect function in unproject_in_mesh: unproject_in_mesh, Unknown typechain: Eigen::Vector2f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Vector4f &,Unknown typechain: std::vector<igl::Hit> &
-
-Incorrect function in unproject_in_mesh: unproject_in_mesh, Unknown typechain: Eigen::Vector2f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Vector4f &,Unknown typechain: std::function<void (const Eigen::Vector3f &, const Eigen::Vector3f &, std::vector<igl::Hit> &)> &,Unknown typechain: std::vector<igl::Hit> &
-
-Incorrect function in unproject_in_mesh: unproject_in_mesh, Unknown typechain: Eigen::Vector2f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Vector4f &
-
-Incorrect function in unproject_onto_mesh: unproject_onto_mesh, Unknown typechain: Eigen::Vector2f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Vector4f &,Empty typechain: int &
-
-Incorrect function in unproject_onto_mesh: unproject_onto_mesh, Unknown typechain: Eigen::Vector2f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Matrix4f &,Unknown typechain: Eigen::Vector4f &,Unknown typechain: std::function<bool (const Eigen::Vector3f &, const Eigen::Vector3f &, igl::Hit &)> &,Empty typechain: int &
-
-Incorrect function in unzip_corners: unzip_corners, Unknown typechain: std::vector<std::reference_wrapper<DerivedA> > &
-
-Incorrect function in upsample: upsample, Unknown typechain: MatV &,Unknown typechain: MatF &
-
-Incorrect function in verbose: verbose, Empty typechain: char *
-
-Incorrect function in verbose: verbose, Empty typechain: char *
-
-Incorrect function in volume: volume_single, Unknown typechain: VecA &,Unknown typechain: VecB &,Unknown typechain: VecC &,Unknown typechain: VecD &
-
-Incorrect function in winding_number: winding_number_3, Unknown typechain: Scalar *,Empty typechain: int,Unknown typechain: DerivedF *,Empty typechain: int,Unknown typechain: Scalar *,Empty typechain: int,Unknown typechain: Scalar *
-
-Incorrect function in winding_number: winding_number_2, Empty typechain: double *,Empty typechain: int,Unknown typechain: DerivedF *,Empty typechain: int,Empty typechain: double *,Empty typechain: int,Empty typechain: double *
-
-Incorrect function in writeDMAT: writeDMAT, Unknown typechain: Mat &,Unknown typechain: bool
-
-Incorrect function in writeDMAT: writeDMAT, Unknown typechain: std::vector<std::vector<Scalar> >
-
-Incorrect function in writeDMAT: writeDMAT, Unknown typechain: std::vector<Scalar>
-
-Incorrect function in writePLY: writePLY, Unknown typechain: bool
-
-Incorrect function in writePLY: writePLY, Unknown typechain: bool
-
-Incorrect function in writeSTL: writeSTL, Unknown typechain: bool
-
-Incorrect function in writeSTL: writeSTL, Unknown typechain: bool
-
-Incorrect function in writeTGF: writeTGF, Unknown typechain: std::vector<std::vector<double> > &,Unknown typechain: std::vector<std::vector<int> > &
-
-Incorrect function in write_triangle_mesh: write_triangle_mesh, Unknown typechain: bool
-
-Incorrect function in xml_write_triangle_mesh: write_triangle_mesh, Unknown typechain: bool
-
-
-
-missing: 45 
-No cpp source file for function ARAPEnergyType found.
-No cpp source file for function C_STR found.
-No cpp source file for function Camera found.
-No cpp source file for function ConjugateFFSolverData found.
-No cpp source file for function HalfEdgeIterator found.
-No cpp source file for function Hit found.
-No cpp source file for function IndexComparison found.
-No cpp source file for function MeshBooleanType found.
-No cpp source file for function NormalType found.
-No cpp source file for function ONE found.
-No cpp source file for function PI found.
-No cpp source file for function REDRUM found.
-No cpp source file for function STR found.
-No cpp source file for function SolverStatus found.
-No cpp source file for function SortableRow found.
-No cpp source file for function Timer found.
-No cpp source file for function Viewport found.
-No cpp source file for function WindingNumberAABB found.
-No cpp source file for function WindingNumberMethod found.
-No cpp source file for function WindingNumberTree found.
-No cpp source file for function ZERO found.
-No cpp source file for function copyleft_cgal_BinaryWindingNumberOperations found.
-No cpp source file for function copyleft_cgal_CSGTree found.
-No cpp source file for function copyleft_cgal_RemeshSelfIntersectionsParam found.
-No cpp source file for function copyleft_cgal_SelfIntersectMesh found.
-No cpp source file for function copyleft_marching_cubes_tables found.
-No cpp source file for function deprecated found.
-No cpp source file for function embree_EmbreeIntersector found.
-No cpp source file for function embree_Embree_convenience found.
-No cpp source file for function igl_inline found.
-No cpp source file for function material_colors found.
-No cpp source file for function matlab_MatlabWorkspace found.
-No cpp source file for function matlab_MexStream found.
-No cpp source file for function opengl2_MouseController found.
-No cpp source file for function opengl2_RotateWidget found.
-No cpp source file for function opengl2_TranslateWidget found.
-No cpp source file for function opengl2_flare_textures found.
-No cpp source file for function opengl2_shine_textures found.
-No cpp source file for function opengl_OpenGL_convenience found.
-No cpp source file for function ply found.
-No cpp source file for function serialize found.
-No cpp source file for function verbose found.
-No cpp source file for function viewer_ViewerPlugin found.
-No cpp source file for function xml_ReAntTweakBarXMLSerialization found.
-No cpp source file for function xml_XMLSerializable found.
-
-
-others: 48 
-Function AABB contains classes/structs in cpp header. Skipping
-Function Camera contains classes/structs in cpp header. Skipping
-Function ConjugateFFSolverData contains classes/structs in cpp header. Skipping
-Function HalfEdgeIterator contains classes/structs in cpp header. Skipping
-Function Hit contains classes/structs in cpp header. Skipping
-Function IndexComparison contains classes/structs in cpp header. Skipping
-Function SortableRow contains classes/structs in cpp header. Skipping
-Function Timer contains classes/structs in cpp header. Skipping
-Function Viewport contains classes/structs in cpp header. Skipping
-Function WindingNumberAABB contains classes/structs in cpp header. Skipping
-Function WindingNumberTree contains classes/structs in cpp header. Skipping
-Function active_set contains classes/structs in cpp header. Skipping
-Function angle_bound_frame_fields contains classes/structs in cpp header. Skipping
-Function anttweakbar_ReAntTweakBar contains classes/structs in cpp header. Skipping
-Function arap contains classes/structs in cpp header. Skipping
-Function arap_dof contains classes/structs in cpp header. Skipping
-Function bbw_bbw contains classes/structs in cpp header. Skipping
-Function conjugate_frame_fields contains classes/structs in cpp header. Skipping
-Function copyleft_cgal_BinaryWindingNumberOperations contains classes/structs in cpp header. Skipping
-Function copyleft_cgal_CSGTree contains classes/structs in cpp header. Skipping
-Function copyleft_cgal_RemeshSelfIntersectionsParam contains classes/structs in cpp header. Skipping
-Function copyleft_cgal_SelfIntersectMesh contains classes/structs in cpp header. Skipping
-Function copyleft_tetgen_cdt contains classes/structs in cpp header. Skipping
-Function embree_EmbreeIntersector contains classes/structs in cpp header. Skipping
-Function embree_ambient_occlusion contains classes/structs in cpp header. Skipping
-Function embree_unproject_in_mesh contains classes/structs in cpp header. Skipping
-Function embree_unproject_onto_mesh contains classes/structs in cpp header. Skipping
-Function integrable_polyvector_fields contains classes/structs in cpp header. Skipping
-Function matlab_MatlabWorkspace contains classes/structs in cpp header. Skipping
-Function matlab_MexStream contains classes/structs in cpp header. Skipping
-Function min_quad_with_fixed contains classes/structs in cpp header. Skipping
-Function mosek_mosek_quadprog contains classes/structs in cpp header. Skipping
-Function opengl2_MouseController contains classes/structs in cpp header. Skipping
-Function opengl2_RotateWidget contains classes/structs in cpp header. Skipping
-Function opengl2_TranslateWidget contains classes/structs in cpp header. Skipping
-Function opengl2_lens_flare contains classes/structs in cpp header. Skipping
-Function opengl_tga contains classes/structs in cpp header. Skipping
-Function ply contains classes/structs in cpp header. Skipping
-Function serialize contains classes/structs in cpp header. Skipping
-Function viewer_OpenGL_shader contains classes/structs in cpp header. Skipping
-Function viewer_OpenGL_state contains classes/structs in cpp header. Skipping
-Function viewer_Viewer contains classes/structs in cpp header. Skipping
-Function viewer_ViewerCore contains classes/structs in cpp header. Skipping
-Function viewer_ViewerData contains classes/structs in cpp header. Skipping
-Function viewer_ViewerPlugin contains classes/structs in cpp header. Skipping
-Function xml_ReAntTweakBarXMLSerialization contains classes/structs in cpp header. Skipping
-Function xml_XMLSerializable contains classes/structs in cpp header. Skipping
-Function xml_serialize_xml contains classes/structs in cpp header. Skipping
-
-
-render: 0 
-
-
-
-various: 22 
-Function without pars in EPS: EPS, 
-
-Function without pars in EPS: EPS_SQ, 
-
-Function without pars in EPS: EPS, 
-
-Function without pars in EPS: EPS, 
-
-Function without pars in EPS: EPS_SQ, 
-
-Function without pars in EPS: EPS_SQ, 
-
-Function without pars in barycentric_to_global: barycentric_to_global, 
-
-Function without pars in dot_row: dot_row, 
-
-Function without pars in embree_line_mesh_intersection: line_mesh_intersection, 
-
-Function without pars in file_dialog_open: file_dialog_open, 
-
-Function without pars in file_dialog_save: file_dialog_save, 
-
-Function without pars in get_seconds: get_seconds, 
-
-Function without pars in get_seconds_hires: get_seconds_hires, 
-
-Function without pars in matlab_format: matlab_format, 
-
-Function without pars in mosek_mosek_guarded: mosek_guarded, 
-
-Function without pars in opengl2_draw_beach_ball: draw_beach_ball, 
-
-Function without pars in opengl2_draw_floor: draw_floor, 
-
-Function without pars in opengl2_draw_floor: draw_floor_outline, 
-
-Function without pars in opengl_report_gl_error: report_gl_error, 
-
-Function without pars in path_to_executable: path_to_executable, 
-
-Function without pars in random_dir: random_dir, 
-
-Function without pars in random_quaternion: random_quaternion, 
-
-
-

+ 0 - 472
python/scripts/files.txt

@@ -1,472 +0,0 @@
-complete: 135 
-ARAPEnergyType
-MeshBooleanType
-NormalType
-SolverStatus
-WindingNumberMethod
-adjacency_matrix
-all_edges
-anttweakbar_cocoa_key_to_anttweakbar_key
-average_onto_vertices
-avg_edge_length
-barycenter
-barycentric_coordinates
-basename
-bone_parents
-bounding_box
-bounding_box_diagonal
-canonical_quaternions
-ceil
-columnize
-comb_cross_field
-comb_frame_field
-comb_line_field
-compute_frame_field_bisectors
-copyleft_cgal_component_inside_component
-copyleft_cgal_intersect_with_half_space
-copyleft_cgal_outer_hull
-copyleft_cgal_peel_outer_hull_layers
-copyleft_cgal_peel_winding_number_layers
-copyleft_cgal_piecewise_constant_winding_number
-copyleft_cgal_points_inside_component
-copyleft_quadprog
-cotmatrix
-cotmatrix_entries
-cross_field_missmatch
-cumsum
-cut_mesh_from_singularities
-dated_copy
-diag
-dihedral_angles
-directed_edge_parents
-dirname
-doublearea
-edge_lengths
-edge_topology
-edges
-embree_reorient_facets_raycast
-exterior_edges
-face_areas
-false_barycentric_subdivision
-field_local_global_conversions
-file_contents_as_string
-file_exists
-floor
-frame_to_cross_field
-gaussian_curvature
-harmonic
-internal_angles
-invert_diag
-is_border_vertex
-is_boundary_edge
-is_edge_manifold
-is_irregular_vertex
-is_planar
-is_sparse
-is_vertex_manifold
-launch_medit
-line_field_missmatch
-linprog
-local_basis
-look_at
-massmatrix
-mod
-mvc
-nchoosek
-next_filename
-normal_derivative
-normalize_row_lengths
-normalize_row_sums
-null
-opengl2_draw_rectangular_marquee
-opengl2_model_proj_viewport
-opengl2_sort_triangles
-opengl_render_to_tga
-opengl_report_gl_error
-orient_outward
-orth
-parallel_transport_angles
-pathinfo
-per_edge_normals
-per_face_normals
-per_vertex_attribute_smoothing
-per_vertex_normals
-point_mesh_squared_distance
-polar_dec
-polar_svd
-polygon_mesh_to_triangle_mesh
-polyvector_field_comb_from_matchings_and_cuts
-polyvector_field_matchings
-polyvector_field_poisson_reconstruction
-project_isometrically_to_plane
-project_to_line_segment
-quad_planarity
-random_dir
-randperm
-readBF
-readDMAT
-readMESH
-readNODE
-readOBJ
-readOFF
-readWRL
-read_triangle_mesh
-repmat
-resolve_duplicated_faces
-rotate_vectors
-sample_edges
-setdiff
-snap_points
-sort_angles
-sort_triangles
-sort_vectors_ccw
-sortrows
-speye
-sum
-triangle_fan
-triangles_from_strip
-unique_simplices
-unproject_ray
-vector_area_matrix
-writeBF
-writeMESH
-writeOBJ
-writeOFF
-writeWRL
-xml_writeDAE
-
-
-empty: 10 
-C_STR
-REDRUM
-STR
-copyleft_marching_cubes_tables
-deprecated
-embree_Embree_convenience
-igl_inline
-opengl_OpenGL_convenience
-viewer_TextRenderer
-viewer_TextRenderer_fonts
-
-
-errors: 205 
-EPS
-ONE
-PI
-ZERO
-all_pairs_distances
-angular_distance
-any_of
-arap_linear_block
-arap_rhs
-average_onto_faces
-axis_angle_to_quat
-barycentric_to_global
-bfs_orient
-biharmonic_coordinates
-boundary_conditions
-circulation
-collapse_edge
-collapse_small_triangles
-colon
-column_to_quats
-copyleft_cgal_assign_scalar
-copyleft_cgal_cell_adjacency
-copyleft_cgal_closest_facet
-copyleft_cgal_complex_to_mesh
-copyleft_cgal_half_space_box
-copyleft_cgal_mesh_boolean_type_to_funcs
-copyleft_cgal_mesh_to_cgal_triangle_list
-copyleft_cgal_mesh_to_polyhedron
-copyleft_cgal_order_facets_around_edge
-copyleft_cgal_order_facets_around_edges
-copyleft_cgal_outer_element
-copyleft_cgal_outer_facet
-copyleft_cgal_point_mesh_squared_distance
-copyleft_cgal_polyhedron_to_mesh
-copyleft_cgal_projected_delaunay
-copyleft_cgal_relabel_small_immersed_cells
-copyleft_cgal_remesh_intersections
-copyleft_cgal_remesh_self_intersections
-copyleft_cgal_signed_distance_isosurface
-copyleft_cgal_submesh_aabb_tree
-copyleft_comiso_frame_field
-copyleft_comiso_miq
-copyleft_comiso_nrosy
-copyleft_cork_from_cork_mesh
-copyleft_cork_mesh_boolean
-copyleft_cork_to_cork_mesh
-copyleft_marching_cubes
-copyleft_progressive_hulls
-copyleft_progressive_hulls_cost_and_placement
-copyleft_tetgen_mesh_to_tetgenio
-copyleft_tetgen_mesh_with_skeleton
-copyleft_tetgen_read_into_tetgenio
-copyleft_tetgen_tetgenio_to_tetmesh
-covariance_scatter_matrix
-crouzeix_raviart_massmatrix
-decimate
-dijkstra
-directed_edge_orientations
-dot
-dot_row
-dqs
-edge_collapse_is_valid
-edge_flaps
-eigs
-embree_bone_heat
-embree_bone_visible
-embree_line_mesh_intersection
-example_fun
-extract_manifold_patches
-extract_non_manifold_edge_curves
-face_occurrences
-faces_first
-file_dialog_open
-file_dialog_save
-fit_plane
-forward_kinematics
-frame_field_deformer
-frustum
-get_seconds
-get_seconds_hires
-grad
-group_sum_matrix
-harwell_boeing
-hausdorff
-in_element
-infinite_cost_stopping_condition
-intersect
-is_dir
-is_file
-is_readable
-is_writable
-lim_lim
-limit_faces
-line_segment_in_rectangle
-list_to_matrix
-lscm
-map_vertices_to_circle
-mat_max
-mat_min
-mat_to_quat
-material_colors
-matlab_matlabinterface
-matlab_mexErrMsgTxt
-matlab_parse_rhs
-matlab_prepare_lhs
-matlab_requires_arg
-matlab_validate_arg
-max_faces_stopping_condition
-max_size
-median
-min_quad_dense
-min_size
-mode
-mosek_mosek_guarded
-mosek_mosek_linprog
-n_polyvector
-n_polyvector_general
-normalize_quat
-opengl2_draw_beach_ball
-opengl2_draw_floor
-opengl2_draw_point
-opengl2_flare_textures
-opengl2_print_gl_get
-opengl2_right_axis
-opengl2_shine_textures
-opengl2_up_axis
-opengl_compile_and_link_program
-opengl_compile_shader
-opengl_create_index_vbo
-opengl_create_mesh_vbo
-opengl_create_shader_program
-opengl_create_vector_vbo
-opengl_destroy_shader_program
-opengl_gl_type_size
-opengl_init_render_to_texture
-opengl_load_shader
-opengl_print_program_info_log
-opengl_print_shader_info_log
-opengl_texture_from_tga
-opengl_uniform_type_to_string
-orientable_patches
-ortho
-outer_element
-partition
-path_to_executable
-per_corner_normals
-planarize_quad_mesh
-png_render_to_png
-png_render_to_png_async
-png_texture_from_file
-png_texture_from_png
-point_in_circle
-point_in_poly
-point_simplex_squared_distance
-polar_svd3x3
-polyroots
-principal_curvature
-print_ijv
-print_vector
-project
-pseudonormal_test
-quat_conjugate
-quat_mult
-quat_to_axis_angle
-quat_to_mat
-quats_to_column
-random_quaternion
-ray_box_intersect
-ray_mesh_intersect
-ray_sphere_intersect
-readCSV
-remove_duplicate_vertices
-remove_duplicates
-reorder
-rotate_by_quat
-rotation_matrix_from_directions
-rows_to_matrix
-signed_distance
-simplify_polyhedron
-slice_into
-slice_mask
-slice_tets
-snap_to_canonical_view_quat
-snap_to_fixed_up
-stdin_to_temp
-svd3x3
-svd3x3_avx
-svd3x3_sse
-trackball
-transpose_blocks
-triangle_triangle_adjacency
-triangle_triangulate
-two_axis_valuator_fixed_up
-uniformly_sample_two_manifold
-unique_edge_map
-unproject_in_mesh
-unproject_onto_mesh
-unzip_corners
-verbose
-vertex_triangle_adjacency
-writeDMAT
-writePLY
-writeSTL
-write_triangle_mesh
-xml_write_triangle_mesh
-
-
-others: 48 
-AABB
-Camera
-ConjugateFFSolverData
-HalfEdgeIterator
-Hit
-IndexComparison
-SortableRow
-Timer
-Viewport
-WindingNumberAABB
-WindingNumberTree
-active_set
-angle_bound_frame_fields
-anttweakbar_ReAntTweakBar
-arap
-arap_dof
-bbw_bbw
-conjugate_frame_fields
-copyleft_cgal_BinaryWindingNumberOperations
-copyleft_cgal_CSGTree
-copyleft_cgal_RemeshSelfIntersectionsParam
-copyleft_cgal_SelfIntersectMesh
-copyleft_tetgen_cdt
-embree_EmbreeIntersector
-embree_ambient_occlusion
-embree_unproject_in_mesh
-embree_unproject_onto_mesh
-integrable_polyvector_fields
-matlab_MatlabWorkspace
-matlab_MexStream
-min_quad_with_fixed
-mosek_mosek_quadprog
-opengl2_MouseController
-opengl2_RotateWidget
-opengl2_TranslateWidget
-opengl2_lens_flare
-opengl_tga
-ply
-serialize
-viewer_OpenGL_shader
-viewer_OpenGL_state
-viewer_Viewer
-viewer_ViewerCore
-viewer_ViewerData
-viewer_ViewerPlugin
-xml_ReAntTweakBarXMLSerialization
-xml_XMLSerializable
-xml_serialize_xml
-
-
-partial: 59 
-adjacency_list
-ambient_occlusion
-boundary_facets
-boundary_loop
-cat
-centroid
-components
-copyleft_cgal_extract_cells
-copyleft_cgal_intersect_other
-copyleft_cgal_mesh_boolean
-copyleft_cgal_minkowski_sum
-copyleft_cgal_propagate_winding_numbers
-copyleft_cgal_string_to_mesh_boolean_type
-copyleft_tetgen_tetrahedralize
-cross
-cut_mesh
-deform_skeleton
-facet_components
-find
-find_cross_field_singularities
-fit_rotations
-histc
-hsv_to_rgb
-is_symmetric
-jet
-lbs_matrix
-matlab_format
-matrix_to_list
-on_boundary
-opengl2_draw_mesh
-opengl2_draw_skeleton_3d
-opengl2_draw_skeleton_vector_graphics
-opengl2_project
-opengl2_unproject
-opengl2_unproject_to_zero_plane
-opengl2_view_axis
-parula
-piecewise_constant_winding_number
-polyvector_field_cut_mesh_with_singularities
-polyvector_field_singularities_from_matchings
-procrustes
-project_to_line
-random_points_on_mesh
-readPLY
-readSTL
-readTGF
-remove_unreferenced
-repdiag
-rgb_to_hsv
-round
-slice
-sort
-sparse
-unique
-unproject
-upsample
-volume
-winding_number
-writeTGF
-
-

+ 0 - 1
python/scripts/headers.dat.REMOVED.git-id

@@ -1 +0,0 @@
-4d9f3371e6de72a049a326f13d21bc11a5b3e180

+ 2 - 2
python/tutorial/105_Overlays.py

@@ -65,7 +65,7 @@ l1 = 'x: ' + str(m[0,0]) + ' y: ' + str(m[0,1]) + ' z: ' + str(m[0,2])
 viewer.data.add_label(m.transpose(),l1)
 
 l2 = 'x: ' + str(M[0,0]) + ' y: ' + str(M[0,1]) + ' z: ' + str(M[0,2])
-viewer.data.add_label(M.transpose(),l2);
+viewer.data.add_label(M.transpose(),l2)
 
 # Launch the viewer
-viewer.launch();
+viewer.launch()

+ 117 - 0
python/tutorial/509_Planarization.py

@@ -0,0 +1,117 @@
+# Add the igl library to the modules search path
+import sys, os
+
+sys.path.insert(0, os.getcwd() + "/../")
+
+import pyigl as igl
+import random
+from math import cos, sin, pi
+
+TUTORIAL_SHARED_PATH = "../../tutorial/shared/"
+
+viewer = igl.viewer.Viewer()
+
+# Quad mesh generated from conjugate field
+VQC = igl.eigen.MatrixXd()
+FQC = igl.eigen.MatrixXi()
+FQCtri = igl.eigen.MatrixXi()
+PQC0 = igl.eigen.MatrixXd()
+PQC1 = igl.eigen.MatrixXd()
+PQC2 = igl.eigen.MatrixXd()
+PQC3 = igl.eigen.MatrixXd()
+
+# Planarized quad mesh
+VQCplan = igl.eigen.MatrixXd()
+FQCtriplan = igl.eigen.MatrixXi()
+PQC0plan = igl.eigen.MatrixXd()
+PQC1plan = igl.eigen.MatrixXd()
+PQC2plan = igl.eigen.MatrixXd()
+PQC3plan = igl.eigen.MatrixXd()
+
+
+def key_down(viewer, key, modifier):
+    if key == ord('1'):
+        # Draw the triangulated quad mesh
+        viewer.data.set_mesh(VQC, FQCtri)
+
+        # Assign a color to each quad that corresponds to its planarity
+        planarity = igl.eigen.MatrixXd()
+        igl.quad_planarity(VQC, FQC, planarity)
+        Ct = igl.eigen.MatrixXd()
+        igl.jet(planarity, 0, 0.01, Ct)
+        C = igl.eigen.MatrixXd(FQCtri.rows(), 3)
+        C.setTopRows(Ct.rows(), Ct)
+        C.setBottomRows(Ct.rows(), Ct)
+        viewer.data.set_colors(C)
+
+        # Plot a line for each edge of the quad mesh
+        viewer.data.add_edges(PQC0, PQC1, igl.eigen.MatrixXd([[0, 0, 0]]))
+        viewer.data.add_edges(PQC1, PQC2, igl.eigen.MatrixXd([[0, 0, 0]]))
+        viewer.data.add_edges(PQC2, PQC3, igl.eigen.MatrixXd([[0, 0, 0]]))
+        viewer.data.add_edges(PQC3, PQC0, igl.eigen.MatrixXd([[0, 0, 0]]))
+
+    elif key == ord('2'):
+        # Draw the planar quad mesh
+        viewer.data.set_mesh(VQCplan, FQCtri)
+
+        # Assign a color to each quad that corresponds to its planarity
+        planarity = igl.eigen.MatrixXd()
+        igl.quad_planarity(VQCplan, FQC, planarity)
+        Ct = igl.eigen.MatrixXd()
+        igl.jet(planarity, 0, 0.01, Ct)
+        C = igl.eigen.MatrixXd(FQCtri.rows(), 3)
+        C.setTopRows(Ct.rows(), Ct)
+        C.setBottomRows(Ct.rows(), Ct)
+        viewer.data.set_colors(C)
+
+        # Plot a line for each edge of the quad mesh
+        viewer.data.add_edges(PQC0plan, PQC1plan, igl.eigen.MatrixXd([[0, 0, 0]]))
+        viewer.data.add_edges(PQC1plan, PQC2plan, igl.eigen.MatrixXd([[0, 0, 0]]))
+        viewer.data.add_edges(PQC2plan, PQC3plan, igl.eigen.MatrixXd([[0, 0, 0]]))
+        viewer.data.add_edges(PQC3plan, PQC0plan, igl.eigen.MatrixXd([[0, 0, 0]]))
+
+    else:
+        return False
+
+    return True
+
+
+# Load a quad mesh generated by a conjugate field
+igl.readOFF(TUTORIAL_SHARED_PATH + "inspired_mesh_quads_Conjugate.off", VQC, FQC)
+
+# Convert it to a triangle mesh
+FQCtri.resize(2 * FQC.rows(), 3)
+
+FQCtriUpper = igl.eigen.MatrixXi(FQC.rows(), 3)
+FQCtriLower = igl.eigen.MatrixXi(FQC.rows(), 3)
+
+FQCtriUpper.setCol(0, FQC.col(0))
+FQCtriUpper.setCol(1, FQC.col(1))
+FQCtriUpper.setCol(2, FQC.col(2))
+FQCtriLower.setCol(0, FQC.col(2))
+FQCtriLower.setCol(1, FQC.col(3))
+FQCtriLower.setCol(2, FQC.col(0))
+
+FQCtri.setTopRows(FQCtriUpper.rows(), FQCtriUpper)
+FQCtri.setBottomRows(FQCtriLower.rows(), FQCtriLower)
+
+igl.slice(VQC, FQC.col(0), 1, PQC0)
+igl.slice(VQC, FQC.col(1), 1, PQC1)
+igl.slice(VQC, FQC.col(2), 1, PQC2)
+igl.slice(VQC, FQC.col(3), 1, PQC3)
+
+# Planarize it
+igl.planarize_quad_mesh(VQC, FQC, 100, 0.005, VQCplan)
+
+# Convert the planarized mesh to triangles
+igl.slice(VQCplan, FQC.col(0), 1, PQC0plan)
+igl.slice(VQCplan, FQC.col(1), 1, PQC1plan)
+igl.slice(VQCplan, FQC.col(2), 1, PQC2plan)
+igl.slice(VQCplan, FQC.col(3), 1, PQC3plan)
+
+# Launch the viewer
+key_down(viewer, ord('2'), 0)
+viewer.core.invert_normals = True
+viewer.core.show_lines = False
+viewer.callback_key_down = key_down
+viewer.launch()

+ 21 - 0
python/tutorial/604_Triangle.py

@@ -0,0 +1,21 @@
+# Add the igl library to the modules search path
+import sys, os
+sys.path.insert(0, os.getcwd() + "/../")
+
+import pyigl as igl
+
+# Input polygon
+V = igl.eigen.MatrixXd([[-1, -1], [1, -1], [1, 1], [-1, 1], [-2, -2], [2, -2], [2, 2], [-2, 2]])
+E = igl.eigen.MatrixXi([[0, 1], [1, 2], [2, 3], [3, 0], [4, 5], [5, 6], [6,7], [7,4]])
+H = igl.eigen.MatrixXd([[0, 0]])
+
+# Triangulated Interior
+V2 = igl.eigen.MatrixXd()
+F2 = igl.eigen.MatrixXi()
+
+igl.triangle_triangulate(V, E, H, "a0.005q", V2, F2)
+
+# Plot the mesh
+viewer = igl.viewer.Viewer()
+viewer.data.set_mesh(V2, F2)
+viewer.launch()

+ 71 - 0
python/tutorial/605_Tetgen.py

@@ -0,0 +1,71 @@
+# Add the igl library to the modules search path
+import sys, os
+sys.path.insert(0, os.getcwd() + "/../")
+
+import pyigl as igl
+
+TUTORIAL_SHARED_PATH = "../../tutorial/shared/"
+
+
+# Input polygon
+V = igl.eigen.MatrixXd()
+F = igl.eigen.MatrixXi()
+B = igl.eigen.MatrixXd()
+
+# Tetrahedralized interior
+TV = igl.eigen.MatrixXd()
+TT = igl.eigen.MatrixXi()
+TF = igl.eigen.MatrixXi()
+
+viewer = igl.viewer.Viewer()
+
+
+def key_down(viewer, key, modifier):
+    if key >= ord('1') and key <= ord('9'):
+        t = float((key - ord('1')) + 1) / 9.0
+        v = igl.eigen.MatrixXd()
+        v = B.col(2) - B.col(2).minCoeff()
+        v /= v.col(0).maxCoeff()
+
+        s = []
+        for i in range(v.size()):
+            if v[i, 0] < t:
+                s.append(i)
+
+        V_temp = igl.eigen.MatrixXd(len(s) * 4, 3)
+        F_temp = igl.eigen.MatrixXi(len(s) * 4, 3)
+
+        for i in range(len(s)):
+            V_temp.setRow(i * 4 + 0, TV.row(TT[s[i], 0]))
+            V_temp.setRow(i * 4 + 1, TV.row(TT[s[i], 1]))
+            V_temp.setRow(i * 4 + 2, TV.row(TT[s[i], 2]))
+            V_temp.setRow(i * 4 + 3, TV.row(TT[s[i], 3]))
+
+            F_temp.setRow(i * 4 + 0, igl.eigen.MatrixXi([[(i*4)+0, (i*4)+1, (i*4)+3]]))
+            F_temp.setRow(i * 4 + 1, igl.eigen.MatrixXi([[(i*4)+0, (i*4)+2, (i*4)+1]]))
+            F_temp.setRow(i * 4 + 2, igl.eigen.MatrixXi([[(i*4)+3, (i*4)+2, (i*4)+0]]))
+            F_temp.setRow(i * 4 + 3, igl.eigen.MatrixXi([[(i*4)+1, (i*4)+2, (i*4)+3]]))
+
+        viewer.data.clear()
+        viewer.data.set_mesh(V_temp, F_temp)
+        viewer.data.set_face_based(True)
+
+    else:
+        return False
+
+    return True
+
+
+# Load a surface mesh
+igl.readOFF(TUTORIAL_SHARED_PATH + "fertility.off", V, F)
+
+# Tetrahedralize the interior
+igl.copyleft_tetgen_tetrahedralize(V, F, "pq1.414Y", TV, TT, TF)
+
+# Compute barycenters
+igl.barycenter(TV, TT, B)
+
+# Plot the generated mesh
+key_down(viewer, ord('5'), 0)
+viewer.callback_key_down = key_down
+viewer.launch()

+ 65 - 0
python/tutorial/606_AmbientOcclusion.py

@@ -0,0 +1,65 @@
+# Add the igl library to the modules search path
+import sys, os
+
+import math
+
+sys.path.insert(0, os.getcwd() + "/../")
+
+import pyigl as igl
+
+TUTORIAL_SHARED_PATH = "../../tutorial/shared/"
+
+
+# Mesh + AO values + Normals
+V = igl.eigen.MatrixXd()
+F = igl.eigen.MatrixXi()
+AO = igl.eigen.MatrixXd()
+N = igl.eigen.MatrixXd()
+
+
+viewer = igl.viewer.Viewer()
+
+
+def key_down(viewer, key, modifier):
+
+    color = igl.eigen.MatrixXd([[0.9, 0.85, 0.9]])
+
+    if key == ord('1'):
+        # Show the mesh without the ambient occlusion factor
+        viewer.data.set_colors(color)
+    elif key == ord('2'):
+        # Show the mesh with the ambient occlusion factor
+        C = color.replicate(V.rows(), 1)
+        for i in range(C.rows()):
+            C.setRow(i, C.row(i) * AO[i, 0])
+        viewer.data.set_colors(C)
+    elif key == ord('.'):
+        viewer.core.lighting_factor += 0.1
+    elif key == ord(','):
+        viewer.core.lighting_factor -= 0.1
+    else:
+        return False
+
+    viewer.core.lighting_factor = min(max(viewer.core.lighting_factor, 0.0), 1.0)
+    return True
+
+
+print("Press 1 to turn off Ambient Occlusion\nPress 2 to turn on Ambient Occlusion\nPress . to turn up lighting\nPress , to turn down lighting")
+
+# Load a surface mesh
+igl.readOFF(TUTORIAL_SHARED_PATH + "fertility.off", V, F)
+
+# Calculate vertex normals
+igl.per_vertex_normals(V, F, N)
+
+# Compute ambient occlusion factor using embree
+igl.embree_ambient_occlusion(V, F, V, N, 500, AO)
+AO = 1.0 - AO
+
+# Plot the generated mesh
+viewer.data.set_mesh(V, F)
+key_down(viewer, ord('2'), 0)
+viewer.callback_key_down = key_down
+viewer.core.show_lines = False
+viewer.core.lighting_factor = 0.0
+viewer.launch()

+ 45 - 0
python/tutorial/607_Picking.py

@@ -0,0 +1,45 @@
+# Add the igl library to the modules search path
+import sys, os
+sys.path.insert(0, os.getcwd() + "/../")
+
+import pyigl as igl
+
+TUTORIAL_SHARED_PATH = "../../tutorial/shared/"
+
+
+# Mesh with per-face color
+V = igl.eigen.MatrixXd()
+F = igl.eigen.MatrixXi()
+C = igl.eigen.MatrixXd()
+
+viewer = igl.viewer.Viewer()
+
+def mouse_down(viewer, a, b):
+    bc = igl.eigen.MatrixXd()
+
+    # Cast a ray in the view direction starting from the mouse position
+    fid = igl.eigen.MatrixXi([-1])
+    coord = igl.eigen.MatrixXd([viewer.current_mouse_x, viewer.core.viewport[3] - viewer.current_mouse_y])
+    hit = igl.unproject_onto_mesh(coord, viewer.core.view * viewer.core.model,
+      viewer.core.proj, viewer.core.viewport, V, F, fid, bc)
+    if hit:
+        C.setRow(fid[0, 0], igl.eigen.MatrixXd([[1, 0, 0]]))
+        viewer.data.set_colors(C)
+        return True
+
+    return False
+
+
+print("Usage: [LeftMouseClick] to select a face")
+
+# Load a mesh in OFF format
+igl.readOFF(TUTORIAL_SHARED_PATH + "fertility.off", V, F)
+
+# Initialize white
+C.setConstant(F.rows(), 3, 1.0)
+
+viewer.data.set_mesh(V, F)
+viewer.data.set_colors(C)
+viewer.core.show_lines = False
+viewer.callback_mouse_down = mouse_down
+viewer.launch()

+ 3 - 2
python/tutorial/704_SignedDistance.py

@@ -2,6 +2,7 @@ from __future__ import print_function
 
 # Add the igl library to the modules search path
 import sys, os
+
 sys.path.insert(0, os.getcwd() + "/../")
 
 import pyigl as igl
@@ -82,7 +83,7 @@ def update_visualization(viewer):
     igl.parula(S_vis, False, C_vis)
 
     if overlay:
-        append_mesh(C_vis, F_vis, V_vis, V, F, igl.eigen.MatrixXd([0.8, 0.8, 0.8]))
+        append_mesh(C_vis, F_vis, V_vis, V, F, igl.eigen.MatrixXd([[0.8, 0.8, 0.8]]))
 
     viewer.data.clear()
     viewer.data.set_mesh(V_vis, F_vis)
@@ -110,7 +111,7 @@ print("Press [space] to toggle showing surface.")
 print("Press '.'/',' to push back/pull forward slicing plane.")
 
 # Load mesh: (V,T) tet-mesh of convex hull, F contains original surface triangles
-igl.readMESH(TUTORIAL_SHARED_PATH + "bunny.mesh", V, T, F);
+igl.readMESH(TUTORIAL_SHARED_PATH + "bunny.mesh", V, T, F)
 
 # Call to point_mesh_squared_distance to determine bounds
 sqrD = igl.eigen.MatrixXd()

+ 1 - 1
tutorial/509_Planarization/main.cpp

@@ -25,7 +25,7 @@ Eigen::MatrixXd PQC0plan, PQC1plan, PQC2plan, PQC3plan;
 
 
 // Scale for visualizing the fields
-double global_scale;
+double global_scale; //TODO: not used
 
 
 bool key_down(igl::viewer::Viewer& viewer, unsigned char key, int modifier)

+ 4 - 9
tutorial/607_Picking/main.cpp

@@ -9,8 +9,10 @@ int main(int argc, char *argv[])
   // Mesh with per-face color
   Eigen::MatrixXd V, C;
   Eigen::MatrixXi F;
+
   // Load a mesh in OFF format
   igl::readOFF(TUTORIAL_SHARED_PATH "/fertility.off", V, F);
+
   // Initialize white
   C = Eigen::MatrixXd::Constant(F.rows(),3,1);
   igl::viewer::Viewer viewer;
@@ -22,15 +24,8 @@ int main(int argc, char *argv[])
     // Cast a ray in the view direction starting from the mouse position
     double x = viewer.current_mouse_x;
     double y = viewer.core.viewport(3) - viewer.current_mouse_y;
-    if(igl::unproject_onto_mesh(
-      Eigen::Vector2f(x,y),
-      viewer.core.view * viewer.core.model,
-      viewer.core.proj,
-      viewer.core.viewport,
-      V,
-      F,
-      fid,
-      bc))
+    if(igl::unproject_onto_mesh(Eigen::Vector2f(x,y), viewer.core.view * viewer.core.model,
+      viewer.core.proj, viewer.core.viewport, V, F, fid, bc))
     {
       // paint hit red
       C.row(fid)<<1,0,0;