ソースを参照

Merge branch 'bindings' into python_bindings

Former-commit-id: 35cb70903b2d36a0dbc1befe70e9f54496584287
Sebastian Koch 9 年 前
コミット
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:
 few labs/companies/institutions using libigl:
 
 
  - [Adobe Research](http://www.adobe.com/technology/)  
  - [Adobe Research](http://www.adobe.com/technology/)  
+ - [Electronic Arts, Inc](http://www.ea.com)
  - [Mesh](http://meshconsultants.ca/), consultants, Canada
  - [Mesh](http://meshconsultants.ca/), consultants, Canada
  - [Pixar Research](http://graphics.pixar.com/research/)
  - [Pixar Research](http://graphics.pixar.com/research/)
  - [Spine by Esoteric Software](http://esotericsoftware.com/) is an animation tool dedicated to 2D characters.
  - [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<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 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
 #endif
 #endif

+ 5 - 5
include/igl/round.cpp

@@ -1,9 +1,9 @@
 // This file is part of libigl, a simple c++ geometry processing library.
 // This file is part of libigl, a simple c++ geometry processing library.
-// 
+//
 // Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
 // 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/.
 // obtain one at http://mozilla.org/MPL/2.0/.
 #include "round.h"
 #include "round.h"
 #include <cmath>
 #include <cmath>
@@ -13,7 +13,7 @@
 template <typename DerivedX >
 template <typename DerivedX >
 IGL_INLINE DerivedX igl::round(const DerivedX r)
 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>
 template < typename DerivedX, typename DerivedY>

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

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

+ 23 - 9
index.html

@@ -14,9 +14,9 @@
 
 
 <h1 id="libigl-asimplecgeometryprocessinglibrary">libigl - A simple C++ geometry processing library</h1>
 <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>
 <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
 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>
 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>
 <h2 id="tutorial">Tutorial</h2>
 
 
 <p>As of version 1.0, libigl includes an introductory
 <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>
 subrepos:</p>
 
 
 <pre><code class="bash">git pull
 <pre><code class="bash">git pull
-git submodule update -- recursive
+git submodule update --recursive
 </code></pre>
 </code></pre>
 
 
 <h2 id="unittesting">Unit testing</h2>
 <h2 id="unittesting">Unit testing</h2>
@@ -199,7 +202,7 @@ BibTeX entry:</p>
   title = {{libigl}: A simple {C++} geometry processing library},
   title = {{libigl}: A simple {C++} geometry processing library},
   author = {Alec Jacobson and Daniele Panozzo and others},
   author = {Alec Jacobson and Daniele Panozzo and others},
   note = {http://libigl.github.io/libigl/},
   note = {http://libigl.github.io/libigl/},
-  year = {2015},
+  year = {2016},
 }
 }
 </code></pre>
 </code></pre>
 
 
@@ -210,23 +213,34 @@ Eurographics/ACM Symposium on Geometry Processing software award. Here are a
 few labs/companies/institutions using libigl:</p>
 few labs/companies/institutions using libigl:</p>
 
 
 <ul>
 <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><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>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://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>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>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>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><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>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>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="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://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://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://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://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>
 </ul>
 
 
 <h2 id="contact">Contact</h2>
 <h2 id="contact">Contact</h2>
@@ -248,7 +262,7 @@ page</a>.</p>
 
 
 <h2 id="copyright">Copyright</h2>
 <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
 Zhou, Nico Pietroni, Stefan Brugger, Kenshi Takayama, Wenzel Jakob, Nikolas De
 Giorgis, Luigi Rocca, Leonardo Sacht, Kevin Walliman, Olga Sorkine-Hornung, and others.</p>
 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
 <p>These are (admittedly unpopular) functions that have never been used by us
 statically so we haven&#8217;t explicit instantiations (yet).</p>
 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>
 <h4 id="external">External</h4>
 
 
 <p>Finally there are a number of external libraries that we include in
 <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::MatrixXd V;
 Eigen::MatrixXi F;
 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>
 </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_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC")
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
   if (NOT ${U_CMAKE_BUILD_TYPE} MATCHES DEBUG)
   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()
 endif()
 endif()
 
 

+ 64 - 0
python/python_shared.cpp

@@ -24,6 +24,70 @@ PYBIND11_PLUGIN(pyigl) {
         .. autosummary::
         .. autosummary::
            :toctree: _generate
            :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");
     )pyigldoc");
 
 
     python_export_vector(m);
     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>
 <h1 id="libiglstyleguidelines">Libigl Style Guidelines</h1>
 
 
 <p>Libigl is used and developed by many people. This document highlights some
 <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
   // This is an example of a function, it takes a templated parameter and
   // shovels it into cout
   // shovels it into cout
   //
   //
-  // Templates:
-  //   T  type that supports
   // Input:
   // Input:
   //   input  some input of a Printable type
   //   input  some input of a Printable type
   // Returns true for the sake of returning something
   // 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
 then avoid crowding the namespace by creating lambda functions within the
 function implementation.</p>
 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>
 <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
 <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
 <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
 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>
 <p>For example:</p>
 
 
@@ -168,6 +182,77 @@ template &lt;typename Atype&gt;
 Eigen::SparseMatrix&lt;Atype&gt; adjacency_matrix(const ... &amp; F);
 Eigen::SparseMatrix&lt;Atype&gt; adjacency_matrix(const ... &amp; F);
 </code></pre>
 </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>
 <h2 id="functionnamingconventions">Function naming conventions</h2>
 
 
 <p>Functions (and <a href="#filefunction">thus also files</a>) should have simple,
 <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>
 <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>
 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`
 Whenever possible `#include` directives should be placed in the `.cpp`
 implementation file rather than the `.h` header file.
 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;
     MatrixXd N,C;
     // Bunny is a watertight mesh so use pseudonormal for signing
     // 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);
     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
   // push to [0,1] range
   S_vis.array() = 0.5*(S_vis.array()/max_distance)+0.5;
   S_vis.array() = 0.5*(S_vis.array()/max_distance)+0.5;