Browse Source

Merge branch 'bindings' into python_bindings

Former-commit-id: 35cb70903b2d36a0dbc1befe70e9f54496584287
Sebastian Koch 9 năm trước cách đây
mục cha
commit
0fabc50c00

+ 1 - 0
README.md

@@ -195,6 +195,7 @@ Eurographics/ACM Symposium on Geometry Processing software award. Here are a
 few labs/companies/institutions using libigl:
 
  - [Adobe Research](http://www.adobe.com/technology/)  
+ - [Electronic Arts, Inc](http://www.ea.com)
  - [Mesh](http://meshconsultants.ca/), consultants, Canada
  - [Pixar Research](http://graphics.pixar.com/research/)
  - [Spine by Esoteric Software](http://esotericsoftware.com/) is an animation tool dedicated to 2D characters.

+ 1 - 0
include/igl/list_to_matrix.cpp

@@ -146,5 +146,6 @@ template bool igl::list_to_matrix<double, Eigen::Matrix<double, -1, -1, 0, -1, -
 template bool igl::list_to_matrix<double, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(std::vector<double, std::allocator<double> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&);
 template bool igl::list_to_matrix<double, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(std::vector<double, std::allocator<double> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&);
 template bool igl::list_to_matrix<unsigned long, Eigen::Matrix<int, -1, -1, 0, -1, -1> >(std::vector<unsigned long, std::allocator<unsigned long> > const&, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> >&);
+template bool igl::list_to_matrix<unsigned __int64, class Eigen::Matrix<int, -1, -1, 0, -1, -1> >(class std::vector<unsigned __int64, class std::allocator<unsigned __int64> > const &, class Eigen::PlainObjectBase<class Eigen::Matrix<int, -1, -1, 0, -1, -1> > &);
 #endif
 #endif

+ 5 - 5
include/igl/round.cpp

@@ -1,9 +1,9 @@
 // This file is part of libigl, a simple c++ geometry processing library.
-// 
+//
 // Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
-// 
-// This Source Code Form is subject to the terms of the Mozilla Public License 
-// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
+//
+// This Source Code Form is subject to the terms of the Mozilla Public License
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can
 // obtain one at http://mozilla.org/MPL/2.0/.
 #include "round.h"
 #include <cmath>
@@ -13,7 +13,7 @@
 template <typename DerivedX >
 IGL_INLINE DerivedX igl::round(const DerivedX r)
 {
-  return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);
+  return (r > 0.0) ? std::floor(r + 0.5) : std::ceil(r - 0.5);
 }
 
 template < typename DerivedX, typename DerivedY>

+ 4 - 4
include/igl/viewer/Viewer.cpp

@@ -346,13 +346,13 @@ namespace viewer
   T,t     Toggle filled faces
   Z       Snap to canonical view
   [,]     Toggle between rotation control types (e.g. trackball, two-axis
-          valuator with fixed up)
+          valuator with fixed up))"
 #ifdef IGL_VIEWER_WITH_NANOGUI
+		R"(
   ;       Toggle vertex labels
-  :       Toggle face labels
+  :       Toggle face labels)"
 #endif
-
-)");
+);
     std::cout<<usage;
 #endif
   }

+ 23 - 9
index.html

@@ -14,9 +14,9 @@
 
 <h1 id="libigl-asimplecgeometryprocessinglibrary">libigl - A simple C++ geometry processing library</h1>
 
-<figure>
-<img src="libigl-teaser.png" alt="" />
-</figure>
+<p><a href="https://travis-ci.org/libigl/libigl"><img src="https://travis-ci.org/libigl/libigl.svg?branch=master" alt="Build Status" /></a>
+<a href="https://ci.appveyor.com/project/danielepanozzo/libigl-6hjk1"><img src="https://ci.appveyor.com/api/projects/status/mf3t9rnhco0vhly8?svg=true" alt="Build status" /></a>
+<img src="libigl-teaser.png" alt="" /></p>
 
 <p><a href="https://github.com/libigl/libigl/">https://github.com/libigl/libigl/</a></p>
 
@@ -51,6 +51,9 @@ the header-only default mode: (i.e. just include the headers you want to use).</
 group prototypes a lot in MATLAB, and we have a useful <a href="matlab-to-eigen.html">MATLAB to libigl+Eigen
 conversion table</a>.</p>
 
+<p>We regularly test compiling our library on Mac OS X with clang, Linux with gcc
+and Windows with Visual Studio 2015 Community Edition.</p>
+
 <h2 id="tutorial">Tutorial</h2>
 
 <p>As of version 1.0, libigl includes an introductory
@@ -168,7 +171,7 @@ and updating (i.e. committing) that change to the hash.</p>
 subrepos:</p>
 
 <pre><code class="bash">git pull
-git submodule update -- recursive
+git submodule update --recursive
 </code></pre>
 
 <h2 id="unittesting">Unit testing</h2>
@@ -199,7 +202,7 @@ BibTeX entry:</p>
   title = {{libigl}: A simple {C++} geometry processing library},
   author = {Alec Jacobson and Daniele Panozzo and others},
   note = {http://libigl.github.io/libigl/},
-  year = {2015},
+  year = {2016},
 }
 </code></pre>
 
@@ -210,23 +213,34 @@ Eurographics/ACM Symposium on Geometry Processing software award. Here are a
 few labs/companies/institutions using libigl:</p>
 
 <ul>
+<li><a href="http://www.adobe.com/technology/">Adobe Research</a></li>
+<li><a href="http://meshconsultants.ca/">Mesh</a>, consultants, Canada</li>
+<li><a href="http://graphics.pixar.com/research/">Pixar Research</a></li>
 <li><a href="http://esotericsoftware.com/">Spine by Esoteric Software</a> is an animation tool dedicated to 2D characters.</li>
 <li>Columbia University, <a href="http://www.cs.columbia.edu/cg/">Columbia Computer Graphics Group</a>, USA</li>
 <li><a href="http://www.graphics.cornell.edu/">Cornell University</a>, USA</li>
+<li><a href="http://dcgi.felk.cvut.cz/">Czech Technical University in Prague</a>, Czech</li>
 <li>EPF Lausanne, <a href="http://lgg.epfl.ch/people.php">Computer Graphics and Geometry Laboratory</a>, Switzerland</li>
 <li>ETH Zurich, <a href="http://igl.ethz.ch/">Interactive Geometry Lab</a> and <a href="http://ait.inf.ethz.ch/">Advanced Technologies Lab</a>, Swizterland</li>
 <li>George Mason University, <a href="http://cs.gmu.edu/~ygingold/">CraGL</a>, USA</li>
-<li><a href="http://www.ust.hk/">Hong Kong University of Science and Technology</a>, USA</li>
+<li><a href="http://www.ust.hk/">Hong Kong University of Science and Technology</a>, Hong Kong</li>
 <li><a href="http://www.nii.ac.jp/en/">National Institute of Informatics</a>, Japan</li>
 <li>New York University, <a href="http://mrl.nyu.edu/">Media Research Lab</a>, USA</li>
 <li>NYUPoly, <a href="http://game.engineering.nyu.edu/">Game Innovation Lab</a>, USA</li>
-<li><a href="http://www.telecom-paristech.fr/en/formation-et-innovation-dans-le-numerique.html">Telecom ParisTech</a>, Paris, France</li>
+<li><a href="https://www.cg.tu-berlin.de">TU Berlin</a>, Germany</li>
 <li><a href="http://www.tudelft.nl/en/">TU Delft</a>, Netherlands</li>
+<li><a href="https://www.tuwien.ac.at/en/tuwien_home/">TU Wien</a>, Austria</li>
+<li><a href="http://www.telecom-paristech.fr/en/formation-et-innovation-dans-le-numerique.html">Telecom ParisTech</a>, Paris, France</li>
 <li><a href="http://mtm.ufsc.br/~leo/">Universidade Federal de Santa Catarina</a>, Brazil</li>
-<li><a href="http://www.usi.ch/en">Università della Svizzera Italiana</a>, Switzerland</li>
 <li><a href="http://vecg.cs.ucl.ac.uk/">University College London</a>, England</li>
+<li><a href="http://vis.berkeley.edu/">University of California Berkeley</a>, USA</li>
 <li><a href="http://www.cam.ac.uk/">University of Cambridge</a>, England</li>
 <li><a href="http://cg.cis.upenn.edu/">University of Pennsylvania</a>, USA</li>
+<li><a href="http://www.cs.utexas.edu/users/evouga/">University of Texas at Austin</a>, USA</li>
+<li><a href="https://www.csc.uvic.ca/Research/graphics/">University of Victoria</a>, Canada</li>
+<li><a href="http://www.usi.ch/en">Università della Svizzera Italiana</a>, Switzerland</li>
+<li><a href="http://www.univ-tlse3.fr/">Université Toulouse III Paul Sabatier</a>, France</li>
+<li><a href="http://www.math.zju.edu.cn/cagd/">Zhejiang University</a>, China</li>
 </ul>
 
 <h2 id="contact">Contact</h2>
@@ -248,7 +262,7 @@ page</a>.</p>
 
 <h2 id="copyright">Copyright</h2>
 
-<p>2015 Alec Jacobson, Daniele Panozzo, Christian Schüller, Olga Diamanti, Qingnan
+<p>2016 Alec Jacobson, Daniele Panozzo, Christian Schüller, Olga Diamanti, Qingnan
 Zhou, Nico Pietroni, Stefan Brugger, Kenshi Takayama, Wenzel Jakob, Nikolas De
 Giorgis, Luigi Rocca, Leonardo Sacht, Kevin Walliman, Olga Sorkine-Hornung, and others.</p>
 

+ 1 - 9
optional/index.html

@@ -50,14 +50,6 @@ make
 <p>These are (admittedly unpopular) functions that have never been used by us
 statically so we haven&#8217;t explicit instantiations (yet).</p>
 
-<h4 id="examples">Examples</h4>
-
-<p>You can make a slew of examples by issuing:</p>
-
-<pre><code>cd ../examples
-make
-</code></pre>
-
 <h4 id="external">External</h4>
 
 <p>Finally there are a number of external libraries that we include in
@@ -316,7 +308,7 @@ int main(int argc, char * argv[])
 {
 Eigen::MatrixXd V;
 Eigen::MatrixXi F;
-return (argc&gt;=2 &amp;amp;&amp;amp; igl::read_triangle_mesh(argv[1],V,F)?0:1);
+return (argc&gt;=2 &amp;&amp; igl::read_triangle_mesh(argv[1],V,F)?0:1);
 }
 </code></pre>
 

+ 1 - 1
python/CMakeLists.txt

@@ -30,7 +30,7 @@ if (UNIX)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC")
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
   if (NOT ${U_CMAKE_BUILD_TYPE} MATCHES DEBUG)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -flto")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
   endif()
 endif()
 

+ 64 - 0
python/python_shared.cpp

@@ -24,6 +24,70 @@ PYBIND11_PLUGIN(pyigl) {
         .. autosummary::
            :toctree: _generate
 
+           principal_curvature
+           local_basis
+           signed_distance
+           cotmatrix
+           floor
+           slice
+           per_face_normals
+           ARAPEnergyType
+           readOFF
+           per_vertex_normals
+           sortrows
+           barycenter
+           jet
+           cat
+           eigs
+           per_corner_normals
+           massmatrix
+           colon
+           fit_rotations
+           rotate_vectors
+           read_triangle_mesh
+           SolverStatus
+           gaussian_curvature
+           avg_edge_length
+           barycentric_coordinates
+           lscm
+           find_cross_field_singularities
+           upsample
+           slice_mask
+           point_mesh_squared_distance
+           parula
+           setdiff
+           comb_frame_field
+           map_vertices_to_circle
+           writeOBJ
+           active_set
+           AABB
+           per_edge_normals
+           covariance_scatter_matrix
+           boundary_facets
+           compute_frame_field_bisectors
+           edge_lengths
+           readOBJ
+           cut_mesh_from_singularities
+           readDMAT
+           doublearea
+           min_quad_with_fixed
+           writeMESH
+           unique
+           arap
+           cross_field_missmatch
+           grad
+           slice_into
+           slice_tets
+           n_polyvector
+           harmonic
+           boundary_loop
+           polar_svd
+           comb_cross_field
+           invert_diag
+           readMESH
+           copyleft_comiso_miq
+           copyleft_comiso_nrosy
+
     )pyigldoc");
 
     python_export_vector(m);

+ 3 - 0
python/scripts/Problematic_functions

@@ -0,0 +1,3 @@
+boundary_facets
+boundary_loop
+colon

+ 900 - 0
python/scripts/errors.txt

@@ -0,0 +1,900 @@
+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, 
+
+
+

+ 472 - 0
python/scripts/files.txt

@@ -0,0 +1,472 @@
+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
+
+

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

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

+ 104 - 5
style-guidelines.html

@@ -1,3 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8"/>
+	<title>libigl</title>
+	<meta name="author" content="Alec Jacobson and Daniele Panozzo and others"/>
+	<link type="text/css" rel="stylesheet" href="tutorial/style.css"/>
+<script type='text/javascript' src='http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
+<link rel='stylesheet' href='http://yandex.st/highlightjs/7.3/styles/default.min.css'>
+<script src='http://yandex.st/highlightjs/7.3/highlight.min.js'></script>
+<script>hljs.initHighlightingOnLoad();</script>
+</head>
+<body>
+
 <h1 id="libiglstyleguidelines">Libigl Style Guidelines</h1>
 
 <p>Libigl is used and developed by many people. This document highlights some
@@ -39,8 +53,6 @@ namespace igl
   // This is an example of a function, it takes a templated parameter and
   // shovels it into cout
   //
-  // Templates:
-  //   T  type that supports
   // Input:
   //   input  some input of a Printable type
   // Returns true for the sake of returning something
@@ -94,8 +106,10 @@ new pair of .h/.cpp files with this sub-function.</p>
 then avoid crowding the namespace by creating lambda functions within the
 function implementation.</p>
 
-<p>These lambda functions must still be documented with clear <a href="#header-documentation">input and output
-arguments</a>.</p>
+<p>These lambda functions must still be documented with clear <a href="#headerdocumentation">input and output
+arguments</a>. Avoid using full capturing of all automatic
+variables: do not use <code>[&amp;]</code> or <code>[=]</code>. Rather specify each captured variable
+individually.</p>
 
 <h3 id="avoidhelperclasses">Avoid &#8220;helper&#8221; classes</h3>
 
@@ -157,7 +171,7 @@ than pointers (e.g. <code>Matrix * mat</code>) or value (e.g. <code>Matrix mat</
 <p>All functions should be implemented with at least one overload that has a
 <code>void</code> or simple return type (e.g. <code>bool</code> on success/failure). With this
 implementation its then possible to write an overload that returns a single
-output.</p>
+output. Please see <a href="#templatingwitheigen">Templating with Eigen</a>.</p>
 
 <p>For example:</p>
 
@@ -168,6 +182,77 @@ template &lt;typename Atype&gt;
 Eigen::SparseMatrix&lt;Atype&gt; adjacency_matrix(const ... &amp; F);
 </code></pre>
 
+<h2 id="templatingwitheigen">Templating with Eigen</h2>
+
+<p>Functions taking Eigen dense matrices/arrays as inputs and outputs (but <strong>not</strong>
+return arguments), should template on top of <code>Eigen::PlainObjectBase</code>. <strong>Each
+parameter</strong> should be derived using its own template.</p>
+
+<p>For example,</p>
+
+<pre><code class="cpp">template &lt;typename DerivedV, typename DerivedF, typename DerivedBC&gt;
+void barycenter(
+  const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp; V,
+  const Eigen::PlainObjectBase&lt;DerivedF&gt; &amp; F,
+  const Eigen::PlainObjectBase&lt;DerivedBC&gt; &amp; BC);
+</code></pre>
+
+<p>The <code>Derived*</code> template encodes the scalar type (e.g. <code>double</code>, <code>int</code>), the
+number of rows and cols at compile time, and the data storage (Row-major vs.
+column-major). </p>
+
+<p>Returning Eigen types is discouraged. In cases where the size and scalar type
+are a fixed <strong>and matching</strong> function of an input <code>Derived*</code> template, then
+return that <code>Derived*</code> type. <strong>Do not</strong> return
+<code>Eigen::PlainObjectBase&lt;...&gt;</code> types. For example, this function scales fits a
+given set of points to the unit cube. The return is a new set of vertex
+positions so its type should <em>match</em> that of the input points:</p>
+
+<pre><code class="cpp">template &lt;typename DerivedV&gt;
+void DerivedV fit_to_unit_cube(const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp; V);
+</code></pre>
+
+<p>To implement this function, it is <strong>required</strong> to implement a more generic
+output-argument version and call that. So a full implementation looks like:</p>
+
+<p>In <code>igl/fit_in_unit_cube.h</code>:</p>
+
+<pre><code class="cpp">template &lt;typename DerivedV, typename DerivedW&gt;
+void fit_to_unit_cube(
+  const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp; V,
+  Eigen::PlainObjectBase&lt;DerivedW&gt; &amp; W);
+template &lt;typename DerivedV&gt;
+void DerivedV fit_to_unit_cube(const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp; V);
+</code></pre>
+
+<p>In <code>igl/fit_in_unit_cube.cpp</code>:</p>
+
+<pre><code>template &lt;typename DerivedV, typename DerivedW&gt;
+void fit_to_unit_cube(
+  const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp; V,
+  Eigen::PlainObjectBase&lt;DerivedW&gt; &amp; W)
+{
+  W = (V.rowwise()-V.colwise().minCoeff()).array() /
+    (V.maxCoeff()-V.minCoeff());
+}
+
+template &lt;typename DerivedV&gt;
+void DerivedV fit_to_unit_cube(const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp; V)
+{
+  DerivedV W;
+  fit_to_unit_cube(V,W);
+  return W;
+}
+</code></pre>
+
+<p>Notice that <code>W</code> is declared as a <code>DerivedV</code> type and <strong>not</strong>
+<code>Eigen::PlainObjectBase&lt;DerivedV&gt;</code> type.</p>
+
+<p><strong>Note:</strong> Not all functions are suitable for returning Eigen types. For example
+<code>igl::barycenter</code> above outputs a #F by dim list of barycenters. Returning a
+<code>DerivedV</code> type would be inappropriate since the number of rows in <code>DerivedV</code>
+will be #V and may not match the number of rows in <code>DerivedF</code> (#F).</p>
+
 <h2 id="functionnamingconventions">Function naming conventions</h2>
 
 <p>Functions (and <a href="#filefunction">thus also files</a>) should have simple,
@@ -293,3 +378,17 @@ edited by you first. This means for
 
 <p>Whenever possible <code>#include</code> directives should be placed in the <code>.cpp</code>
 implementation file rather than the <code>.h</code> header file.</p>
+
+<h2 id="warnings">Warnings</h2>
+
+<p>Code should compile without firing any warnings.</p>
+
+<h3 id="anexception">An Exception</h3>
+
+<p>The only exception is for the use of the deprecated
+<code>Eigen::DynamicSparseMatrix</code> in core sub-routines (e.g. <code>igl::cat</code>). This class
+is still supported and faster than the standard, non-deprecated Eigen
+implementation so we&#8217;re keeping it as long as possible and profitable.</p>
+
+</body>
+</html>

+ 11 - 0
style-guidelines.md

@@ -379,3 +379,14 @@ edited by you first. This means for
 
 Whenever possible `#include` directives should be placed in the `.cpp`
 implementation file rather than the `.h` header file.
+
+## Warnings
+
+Code should compile without firing any warnings.
+
+### An Exception
+
+The only exception is for the use of the deprecated
+`Eigen::DynamicSparseMatrix` in core sub-routines (e.g. `igl::cat`). This class
+is still supported and faster than the standard, non-deprecated Eigen
+implementation so we're keeping it as long as possible and profitable.

+ 1 - 0
tutorial/704_SignedDistance/main.cpp

@@ -67,6 +67,7 @@ void update_visualization(igl::viewer::Viewer & viewer)
     MatrixXd N,C;
     // Bunny is a watertight mesh so use pseudonormal for signing
     signed_distance_pseudonormal(V_vis,V,F,tree,FN,VN,EN,EMAP,S_vis,I,C,N);
+    cout<< S_vis.rows() << S_vis.cols() << endl;
   }
   // push to [0,1] range
   S_vis.array() = 0.5*(S_vis.array()/max_distance)+0.5;