浏览代码

Done with shapeup.

Former-commit-id: 5dd1b5d2d532ad3180dacf5adf2f6f1caba0064a
Amir Vaxman 7 年之前
父节点
当前提交
8d14bc99f8

+ 3 - 5
coding-guidelines.html

@@ -1,14 +1,11 @@
 <!DOCTYPE html>
-<html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
 <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>
+<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>
 
@@ -60,3 +57,4 @@
 
 </body>
 </html>
+

+ 10 - 7
include/igl/shapeup.h

@@ -55,13 +55,12 @@ namespace igl
   //input:
   //  P   #P by 3             point positions
   //  SC  #Set by 1           cardinalities of sets in S
-  //  S   #Sets by max(SC)    independent sets where the local projection applies. Values beyond column SC(i) in row S(i,:) are "don't care"
-  //  E   #E by 2             the "edges" of a mesh; used for the smoothness energy.
+  //  S   #Sets by max(SC)    independent sets where the local projection applies. Values beyond column SC(i)-1 in row S(i,:) are "don't care"
+  //  E   #E by 2             the "edges" of the set P; used for the smoothness energy.
   //  b   #b by 1             boundary (fixed) vertices from P.
-  //  w   #Set by 1           weight for each set (used in the global step)
-  //  local_projection              function pointer taking (P,SC,S,projP),
-  // where the first three parameters are as defined, and "projP" is the output, as a #S by 3*max(SC) function in format xyzxyzxyz, and where it returns the projected points corresponding to each set in S in the same order.
-    
+  //  wShape,   #Set by 1
+  //  wSmooth   #b by 1       weights for constraints from S and positional constraints (used in the global step)
+
   // Output:
   //  sudata struct ShapeupData     the data necessary to solve the system in shapeup_solve
 
@@ -85,11 +84,15 @@ namespace igl
     
   //Input:
   //bc                #b by 3 fixed point values corresonding to "b" in sudata
+  //local_projection  function pointer taking (P,SC,S,projP),
+  // where the first three parameters are as defined, and "projP" is the output, as a #S by 3*max(SC) function in format xyzxyzxyz, and where it returns the projected points corresponding to each set in S in the same order.
   //NOTE: the input values in P0 don't need to correspond to prescribed values in bc; the iterations will project them automatically (by design).
   //P0                #P by 3 initial solution (point positions)
+  //sudata            the ShapeUpData structure computed in shapeup_precomputation()
+  //quietIterations   flagging if to output iteration information.
 
   //Output:
-  //P                 the solution to the problem, corresponding to P0.
+  //P                 the solution to the problem, indices corresponding to P0.
   template <
   typename DerivedP,
   typename DerivedSC,

+ 55 - 56
index.html

@@ -1,14 +1,11 @@
 <!DOCTYPE html>
-<html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
 <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>
+<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>
 
@@ -22,10 +19,10 @@
 
 <blockquote>
 <p>Get started with:</p>
+</blockquote>
 
 <pre><code class="bash">git clone --recursive https://github.com/libigl/libigl.git
 </code></pre>
-</blockquote>
 
 <p>libigl is a simple C++ geometry processing library. We have a wide
 functionality including construction of sparse discrete differential geometry
@@ -39,7 +36,7 @@ like MATLAB.</p>
 just include igl headers (e.g. <code>#include &lt;igl/cotmatrix.h&gt;</code>) and run. Each
 header file contains a single function (e.g. <code>igl/cotmatrix.h</code> contains
 <code>igl::cotmatrix()</code>). Most are tailored to operate on a generic triangle mesh
-stored in an n-by&#8211;3 matrix of vertex positions <code>V</code> and an m-by&#8211;3 matrix of
+stored in an n-by-3 matrix of vertex positions <code>V</code> and an m-by-3 matrix of
 triangle indices <code>F</code>.</p>
 
 <p><em>Optionally</em> the library may also be <a href="optional/">pre-compiled</a> into a statically
@@ -121,14 +118,14 @@ libigl depends only on the <a href="http://eigen.tuxfamily.org">Eigen</a> librar
 <p>Libigl compartmentalizes its <strong>optional</strong> dependences via its directory
 organization in the <code>include/</code> folder. All header files located <em>directly</em> in
 the <code>include/igl/</code> folder have only stl and Eigen as dependencies. For example,
-all of the headers that depend on CGAL are located in <code>include/igl/cgal</code>. For a
-full list of <em>optional</em> dependencies check <code>optional/CMakeLists.txt</code>.</p>
+all of the headers that depend on CGAL are located in <code>include/igl/copyleft/cgal</code>.
+For a full list of <em>optional</em> dependencies check <code>optional/CMakeLists.txt</code>.</p>
 
 <h3 id="gccandtheoptionalcgaldependency">GCC and the Optional CGAL Dependency</h3>
 
-<p>The <code>include/igl/cgal/*.h</code> headers depend on CGAL. It has come to our attention
-that CGAL does not work properly with GCC 4.8. To the best of our knowledge,
-GCC 4.7 and clang will work correctly.</p>
+<p>The <code>include/igl/copyleft/cgal/*.h</code> headers depend on CGAL. It has come to
+our attention that CGAL does not work properly with GCC 4.8. To the best of
+our knowledge, GCC 4.7 and clang will work correctly.</p>
 
 <h3 id="openmpandwindows">OpenMP and Windows</h3>
 
@@ -221,56 +218,59 @@ Eurographics/ACM Symposium on Geometry Processing software award. Here are a
 few labs/companies/institutions using libigl:</p>
 
 <ul>
-<li><a href="http://www.activision.com">Activision</a></li>
-<li><a href="http://www.adobe.com/technology/">Adobe Research</a></li>
-<li><a href="http://www.ea.com">Electronic Arts, Inc</a></li>
-<li><a href="https://epicgames.com">Epic Games</a></li>
-<li><a href="https://research.google.com">Google Research</a></li>
-<li><a href="http://meshconsultants.ca/">Mesh</a>, consultants, Canada</li>
-<li><a href="http://graphics.pixar.com/research/">Pixar Research</a></li>
-<li><a href="http://esotericsoftware.com/">Spine by Esoteric Software</a> is an animation tool dedicated to 2D characters.</li>
-<li>Columbia University, <a href="http://www.cs.columbia.edu/cg/">Columbia Computer Graphics Group</a>, USA</li>
-<li><a href="http://www.graphics.cornell.edu/">Cornell University</a>, USA</li>
-<li><a href="http://dcgi.felk.cvut.cz/">Czech Technical University in Prague</a>, Czech</li>
-<li>EPF Lausanne, <a href="http://lgg.epfl.ch/people.php">Computer Graphics and Geometry Laboratory</a>, Switzerland</li>
-<li>ETH Zurich, <a href="http://igl.ethz.ch/">Interactive Geometry Lab</a> and <a href="http://ait.inf.ethz.ch/">Advanced Technologies Lab</a>, Swizterland</li>
-<li>George Mason University, <a href="http://cs.gmu.edu/~ygingold/">CraGL</a>, USA</li>
-<li><a href="http://www.ust.hk/">Hong Kong University of Science and Technology</a>, Hong Kong</li>
-<li><a href="https://www.inria.fr/centre/grenoble/">Inria, Université Grenoble Alpes</a>, France</li>
-<li><a href="http://english.jiangnan.edu.cn">Jiangnan university</a>, China</li>
-<li><a href="http://www.nii.ac.jp/en/">National Institute of Informatics</a>, Japan</li>
-<li>New York University, <a href="http://mrl.nyu.edu/">Media Research Lab</a>, USA</li>
-<li>NYUPoly, <a href="http://game.engineering.nyu.edu/">Game Innovation Lab</a>, USA</li>
-<li><a href="https://www.cg.tu-berlin.de">TU Berlin</a>, Germany</li>
-<li><a href="http://www.tudelft.nl/en/">TU Delft</a>, Netherlands</li>
-<li><a href="https://www.tuwien.ac.at/en/tuwien_home/">TU Wien</a>, Austria</li>
-<li><a href="http://www.telecom-paristech.fr/en/formation-et-innovation-dans-le-numerique.html">Telecom ParisTech</a>, Paris, France</li>
-<li><a href="http://www.staff.science.uu.nl/~vaxma001/">Utrecht University</a>, The Netherlands</li>
-<li><a href="http://mtm.ufsc.br/~leo/">Universidade Federal de Santa Catarina</a>, Brazil</li>
-<li><a href="http://vecg.cs.ucl.ac.uk/">University College London</a>, England</li>
-<li><a href="http://vis.berkeley.edu/">University of California Berkeley</a>, USA</li>
-<li><a href="http://www.cam.ac.uk/">University of Cambridge</a>, England</li>
-<li><a href="http://cg.cis.upenn.edu/">University of Pennsylvania</a>, USA</li>
-<li><a href="http://www.cs.utexas.edu/users/evouga/">University of Texas at Austin</a>, USA</li>
-<li><a href="http://dgp.toronto.edu">University of Toronto</a>, Canada</li>
-<li><a href="https://www.csc.uvic.ca/Research/graphics/">University of Victoria</a>, Canada</li>
-<li><a href="http://www.uwec.edu/computer-science/">University of Wisconsin-Eau Claire</a>, USA</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>
+<li> <a href="http://www.activision.com">Activision</a></li>
+<li> <a href="http://www.adobe.com/technology/">Adobe Research</a></li>
+<li> <a href="http://www.ea.com">Electronic Arts, Inc</a></li>
+<li> <a href="https://epicgames.com">Epic Games</a></li>
+<li> <a href="https://research.google.com">Google Research</a></li>
+<li> <a href="http://ilm.com">Industrial Light and Magic</a></li>
+<li> <a href="http://meshconsultants.ca/">Mesh consultants</a>, Canada</li>
+<li> <a href="https://www.microsoft.com/en-us/research/">Microsoft Research</a></li>
+<li> <a href="http://graphics.pixar.com/research/">Pixar</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://vvvv.org">vvvv toolkit</a> a multipurpose tookit</li>
+<li> Columbia University, <a href="http://www.cs.columbia.edu/cg/">Columbia Computer Graphics Group</a>, USA</li>
+<li> <a href="http://www.graphics.cornell.edu/">Cornell University</a>, USA</li>
+<li> <a href="http://dcgi.felk.cvut.cz/">Czech Technical University in Prague</a>, Czech</li>
+<li> EPF Lausanne, <a href="http://lgg.epfl.ch/people.php">Computer Graphics and Geometry Laboratory</a>, Switzerland</li>
+<li> ETH Zurich, <a href="http://igl.ethz.ch/">Interactive Geometry Lab</a> and <a href="http://ait.inf.ethz.ch/">Advanced Technologies Lab</a>, Swizterland</li>
+<li> George Mason University, <a href="http://cs.gmu.edu/~ygingold/">CraGL</a>, USA</li>
+<li> <a href="http://www.ust.hk/">Hong Kong University of Science and Technology</a>, Hong Kong</li>
+<li> <a href="https://www.inria.fr/centre/grenoble/">Inria, Université Grenoble Alpes</a>, France</li>
+<li> <a href="http://english.jiangnan.edu.cn">Jiangnan university</a>, China</li>
+<li> <a href="http://www.nii.ac.jp/en/">National Institute of Informatics</a>, Japan</li>
+<li> New York University, <a href="http://mrl.nyu.edu/">Media Research Lab</a>, USA</li>
+<li> NYUPoly, <a href="http://game.engineering.nyu.edu/">Game Innovation Lab</a>, USA</li>
+<li> <a href="https://www.cg.tu-berlin.de">TU Berlin</a>, Germany</li>
+<li> <a href="http://www.tudelft.nl/en/">TU Delft</a>, Netherlands</li>
+<li> <a href="https://www.tuwien.ac.at/en/tuwien_home/">TU Wien</a>, Austria</li>
+<li> <a href="http://www.telecom-paristech.fr/en/formation-et-innovation-dans-le-numerique.html">Telecom ParisTech</a>, Paris, France</li>
+<li> <a href="http://www.staff.science.uu.nl/~vaxma001/">Utrecht University</a>, The Netherlands</li>
+<li> <a href="http://mtm.ufsc.br/~leo/">Universidade Federal de Santa Catarina</a>, Brazil</li>
+<li> <a href="http://vecg.cs.ucl.ac.uk/">University College London</a>, England</li>
+<li> <a href="http://vis.berkeley.edu/">University of California Berkeley</a>, USA</li>
+<li> <a href="http://www.cam.ac.uk/">University of Cambridge</a>, England</li>
+<li> <a href="http://cg.cis.upenn.edu/">University of Pennsylvania</a>, USA</li>
+<li> <a href="http://www.cs.utexas.edu/users/evouga/">University of Texas at Austin</a>, USA</li>
+<li> <a href="http://dgp.toronto.edu">University of Toronto</a>, Canada</li>
+<li> <a href="https://www.csc.uvic.ca/Research/graphics/">University of Victoria</a>, Canada</li>
+<li> <a href="http://www.uwec.edu/computer-science/">University of Wisconsin-Eau Claire</a>, USA</li>
+<li> <a href="http://www.usi.ch/en">Università della Svizzera Italiana</a>, Switzerland</li>
+<li> <a href="http://www.univ-tlse3.fr/">Université Toulouse III Paul Sabatier</a>, France</li>
+<li> <a href="http://www.math.zju.edu.cn/cagd/">Zhejiang University</a>, China</li>
 </ul>
 
 <h2 id="contact">Contact</h2>
 
 <p>Libigl is a group endeavor led by <a href="http://www.cs.toronto.edu/~jacobson/">Alec
 Jacobson</a> and <a href="http://cs.nyu.edu/~panozzo/">Daniele
-Panozzo</a>. Please <a href="&#109;&#97;&#105;&#108;&#x74;&#111;&#x3a;&#x61;&#x6c;&#101;&#x63;&#x6a;&#x61;&#x63;&#111;&#98;&#115;&#111;&#110;&#64;&#103;&#109;&#x61;&#105;&#108;&#x2e;&#x63;&#x6f;&#x6d;&#44;&#x64;&#x61;&#110;&#105;&#101;&#x6c;&#101;&#x2e;&#x70;&#x61;&#110;&#x6f;&#122;&#x7a;&#x6f;&#64;&#x67;&#x6d;&#x61;&#x69;&#x6c;&#x2e;&#99;&#x6f;&#x6d;">&#99;&#x6f;&#x6e;&#116;&#x61;&#99;&#x74;
-&#117;&#115;</a> if you have
+Panozzo</a>. Please <a href="mailto:alecjacobson@gmail.com,daniele.panozzo@gmail.com">contact
+us</a> if you have
 questions or comments. For troubleshooting, please post an
 <a href="https://github.com/libigl/libigl/issues">issue</a> on github.</p>
 
-<p>If you&#8217;re using libigl in your projects, quickly <a href="&#x6d;&#x61;&#105;&#108;&#x74;&#x6f;&#58;&#97;&#x6c;&#101;&#99;&#106;&#x61;&#x63;&#111;&#x62;&#x73;&#x6f;&#110;&#64;&#103;&#x6d;&#x61;&#x69;&#x6c;&#46;&#99;&#x6f;&#x6d;&#x2c;&#100;&#x61;&#110;&#105;&#x65;&#108;&#x65;&#x2e;&#112;&#97;&#x6e;&#111;&#x7a;&#x7a;&#x6f;&#x40;&#103;&#109;&#x61;&#105;&#x6c;&#x2e;&#x63;&#111;&#109;">&#x64;&#x72;&#111;&#112; &#x75;&#x73; &#97;
-&#110;&#111;&#116;&#101;</a>. Tell us who you
+<p>If you&#8217;re using libigl in your projects, quickly <a href="mailto:alecjacobson@gmail.com,daniele.panozzo@gmail.com">drop us a
+note</a>. Tell us who you
 are and what you&#8217;re using it for. This helps us apply for funding and justify
 spending time maintaining this.</p>
 
@@ -279,11 +279,10 @@ page</a>.</p>
 
 <h2 id="copyright">Copyright</h2>
 
-<p>2017 Alec Jacobson, Daniele Panozzo, Christian Schüller, Olga Diamanti, Qingnan
-Zhou, Sebastian Koch, Amir Vaxman, Nico Pietroni, Stefan Brugger, Kenshi Takayama, Wenzel Jakob, Nikolas De
-Giorgis, Luigi Rocca, Leonardo Sacht, Kevin Walliman, Olga Sorkine-Hornung, and others.</p>
+<p>2017 Alec Jacobson, Daniele Panozzo, Christian Schüller, Olga Diamanti, Qingnan Zhou, Sebastian Koch, Jeremie Dumas, Amir Vaxman, Nico Pietroni, Stefan Brugger, Kenshi Takayama, Wenzel Jakob, Nikolas De Giorgis, Luigi Rocca, Leonardo Sacht, Kevin Walliman, Olga Sorkine-Hornung, and others.</p>
 
 <p>Please see individual files for appropriate copyright notices.</p>
 
 </body>
 </html>
+

+ 39 - 41
optional/index.html

@@ -1,14 +1,11 @@
 <!DOCTYPE html>
-<html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
 <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>
+<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>
 
@@ -24,7 +21,7 @@ improve your compilation times.</p>
 <p>Libigl is developed most often on Mac OS X, though has current users in Linux
 and Windows.</p>
 
-<h3 id="linuxmacosxcygwin">Linux/Mac OS X/Cygwin</h3>
+<h3 id="linuxmacosxcygwin">Linux/Mac OS X/Cygwin </h3>
 
 <p>Libigl may also be compiled to a static library. This is advantageous when
 building a project with libigl, since when used as an header-only library can
@@ -40,7 +37,7 @@ cmake -DCMAKE_BUILD_TYPE=Release ../optional
 make
 </code></pre>
 
-<h4 id="warnings">Warnings</h4>
+<h4 id="warnings">Warnings </h4>
 
 <p>You should expect to see a few linker warnings of the form:</p>
 
@@ -50,7 +47,7 @@ make
 <p>These are (admittedly unpopular) functions that have never been used by us
 statically so we haven&#8217;t explicit instantiations (yet).</p>
 
-<h4 id="external">External</h4>
+<h4 id="external">External </h4>
 
 <p>Finally there are a number of external libraries that we include in
 <code>./external/</code> because they are either difficult to obtain or they have been
@@ -58,7 +55,7 @@ patched for easier use with libigl. Please see the respective readmes in those
 directories or build the tutorial using cmake, which will recursively build all
 dependencies.</p>
 
-<h5 id="installingembree2.0">Installing Embree 2.0</h5>
+<h5 id="installingembree2.0">Installing Embree 2.0 </h5>
 
 <p>To build the embree library and executables on Mac OS X issue:</p>
 
@@ -74,72 +71,72 @@ make
 #sudo make install
 </code></pre>
 
-<h2 id="extras">Extras</h2>
+<h2 id="extras">Extras </h2>
 
-<h3 id="bbw">bbw</h3>
+<h3 id="bbw">bbw </h3>
 
 <p>This library extra contains functions for computing Bounded Biharmonic Weights, can
 be used with and without the <a href="#mosek">mosek</a> extra via the <code>IGL_NO_MOSEK</code>
 macro.</p>
 
-<h3 id="boolean">boolean</h3>
+<h3 id="boolean">boolean </h3>
 
 <p>This library extra contains functions for computing mesh-mesh booleans,
 depending on CGAL and optionally Cork.</p>
 
-<h3 id="cgal">cgal</h3>
+<h3 id="cgal">cgal </h3>
 
 <p>This library extra utilizes CGAL&#8217;s efficient and exact intersection and
 proximity queries.</p>
 
-<h3 id="embree">embree</h3>
+<h3 id="embree">embree </h3>
 
 <p>This library extra utilizes embree&#8217;s efficient ray tracing queries.</p>
 
-<h3 id="matlab">matlab</h3>
+<h3 id="matlab">matlab </h3>
 
 <p>This library extra provides support for reading and writing <code>.mat</code> workspace
 files, interfacing with Matlab at run time and compiling mex functions.</p>
 
-<h3 id="mosek">mosek</h3>
+<h3 id="mosek">mosek </h3>
 
 <p>This library extra utilizes mosek&#8217;s efficient interior-point solver for
 quadratic programs.</p>
 
-<h3 id="png">png</h3>
+<h3 id="png">png </h3>
 
 <p>This library extra uses <code>libpng</code> and <code>YImage</code> to read and write <code>.png</code> files.</p>
 
-<h3 id="tetgen">tetgen</h3>
+<h3 id="tetgen">tetgen </h3>
 
 <p>This library extra provides a simplified wrapper to the tetgen 3d tetrahedral
 meshing library.</p>
 
-<h3 id="triangle">Triangle</h3>
+<h3 id="triangle">Triangle </h3>
 
 <p>This library extra provides a simplified wrapper to the triangle 2d triangle
 meshing library.</p>
 
-<h3 id="viewer">viewer</h3>
+<h3 id="viewer">viewer </h3>
 
 <p>This library extra utilizes glfw and glew to open an opengl context and launch
 a simple mesh viewer.</p>
 
-<h3 id="xml">xml</h3>
+<h3 id="xml">xml </h3>
 
 <p>This library extra utilizes tinyxml2 to read and write serialized classes
 containing Eigen matrices and other standard simple data-structures.</p>
 
-<h2 id="development">Development</h2>
+<h2 id="development">Development </h2>
 
 <p>Further documentation for developers is listed in
 <a href="../style_guidelines.html">style_guidelines.html</a>.</p>
 
-<h2 id="license">License</h2>
+<h2 id="license">License </h2>
 
 <p>See <code>LICENSE.txt</code></p>
 
-<h2 id="zipping">Zipping</h2>
+<h2 id="zipping">Zipping </h2>
 
 <p>Zip this directory without .git litter and binaries using:</p>
 
@@ -275,28 +272,28 @@ exposing templated functions.</li>
 
 <ul>
 <li><strong>Easy incorporation</strong>: This can be easily incorporated
- into external projects.</li>
+into external projects.</li>
 </ul>
 
 <h3 id="drawbacksofcompressed.h.cpppair">Drawbacks of compressed .h/.cpp pair</h3>
 
 <ul>
 <li><p><strong>Hard to debug/edit</strong>: The compressed files are
- automatically generated. They&#8217;re huge and should not be edited. Thus
- debugging and editting are near impossible.</p></li>
+automatically generated. They&#8217;re huge and should not be edited. Thus
+debugging and editting are near impossible.</p></li>
 <li><p><strong>Compounded dependencies</strong>:
- An immediate disadvantage of this
- seems to be that even to use a single function (e.g.
- <code>cotmatrix</code>), compiling and linking against
- <code>igl.cpp</code> will require linking to all of <code>libigl</code>&#8217;s
- dependencies (<code>OpenGL</code>, <code>GLUT</code>,
- <code>AntTweakBar</code>, <code>BLAS</code>). However, because all
- depencies other than Eigen should be encapsulated between
- <code>#ifndef</code> guards (e.g. <code>#ifndef IGL_NO_OPENGL</code>, it
- is possible to ignore certain functions that have such dependencies.</p></li>
+An immediate disadvantage of this
+seems to be that even to use a single function (e.g.
+<code>cotmatrix</code>), compiling and linking against
+<code>igl.cpp</code> will require linking to all of <code>libigl</code>&#8217;s
+dependencies (<code>OpenGL</code>, <code>GLUT</code>,
+<code>AntTweakBar</code>, <code>BLAS</code>). However, because all
+depencies other than Eigen should be encapsulated between
+<code>#ifndef</code> guards (e.g. <code>#ifndef IGL_NO_OPENGL</code>, it
+is possible to ignore certain functions that have such dependencies.</p></li>
 <li><p><strong>Long compile</strong>:
- Compiling <code>igl.cpp</code> takes a long time and isn&#8217;t easily parallelized (no <code>make
-  -j12</code> equivalent).</p></li>
+Compiling <code>igl.cpp</code> takes a long time and isn&#8217;t easily parallelized (no <code>make
+-j12</code> equivalent).</p></li>
 </ul>
 
 <p>Here&#8217;s a tiny test example using <code>igl.h</code> and <code>igl.cpp</code>. Save the following in <code>test.cpp</code>:</p>
@@ -334,7 +331,7 @@ return (argc&gt;=2 &amp;&amp; igl::read_triangle_mesh(argv[1],V,F)?0:1);
 <pre><code>grep OpenGL `grep -L IGL_NO_OPENGL include/igl/*`
 </code></pre>
 
-<h3 id="optional">Optional</h3>
+<h3 id="optional">Optional </h3>
 
 <ul>
 <li>OpenGL (disable with <code>IGL_NO_OPENGL</code>)
@@ -343,7 +340,7 @@ return (argc&gt;=2 &amp;&amp; igl::read_triangle_mesh(argv[1],V,F)?0:1);
 <li>OpenGL &gt;= 4 (enable with <code>IGL_OPENGL_4</code>)</li>
 </ul></li>
 <li>AntTweakBar (disable with <code>IGL_NO_ANTTWEAKBAR</code>) Last tested 1.16 (see
- <code>libigl/external/AntTweakBar</code>)</li>
+<code>libigl/external/AntTweakBar</code>)</li>
 <li>GLEW Windows and Linux</li>
 <li>OpenMP</li>
 <li>libpng libiglpng extra only</li>
@@ -361,7 +358,7 @@ return (argc&gt;=2 &amp;&amp; igl::read_triangle_mesh(argv[1],V,F)?0:1);
 <li>CoMiSo libcomiso extra only</li>
 </ul>
 
-<h3 id="optionalincludedinexternal">Optional (included in external/)</h3>
+<h3 id="optionalincludedinexternal">Optional (included in external/) </h3>
 
 <ul>
 <li>TetGen libigltetgen extra only</li>
@@ -373,3 +370,4 @@ return (argc&gt;=2 &amp;&amp; igl::read_triangle_mesh(argv[1],V,F)?0:1);
 
 </body>
 </html>
+

+ 13 - 15
style-guidelines.html

@@ -1,14 +1,11 @@
 <!DOCTYPE html>
-<html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
 <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>
+<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>
 
@@ -18,7 +15,7 @@
 style guidelines for <em>developers</em> of the library, but also acts as
 best-practices for users.</p>
 
-<h2 id="filefunction">One function, one .h/.cpp pair</h2>
+<h2 id="filefunction">One function, one .h/.cpp pair </h2>
 
 <p>The structure of libigl is very flat and function-based. For every
 function/sub-routine, create a single .h and .cpp file. For example, if you have
@@ -61,7 +58,7 @@ namespace igl
 }
 
 #ifndef IGL_STATIC_LIBRARY
-#  include &quot;example_fun.cpp&quot;
+#include &quot;example_fun.cpp&quot;
 #endif
 
 #endif
@@ -185,21 +182,21 @@ Eigen::SparseMatrix&lt;Atype&gt; adjacency_matrix(const ... &amp; F);
 <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
+return arguments), should template on top of <code>Eigen::MatrixBase</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);
+  const Eigen::MatrixBase&lt;DerivedV&gt; &amp; V,
+  const Eigen::MatrixBase&lt;DerivedF&gt; &amp; F,
+  const Eigen::MatrixBase&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>
+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
@@ -219,7 +216,7 @@ output-argument version and call that. So a full implementation looks like:</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,
+  const Eigen::MatrixBase&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);
@@ -229,7 +226,7 @@ void DerivedV fit_to_unit_cube(const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp
 
 <pre><code>template &lt;typename DerivedV, typename DerivedW&gt;
 void fit_to_unit_cube(
-  const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp; V,
+  const Eigen::MatrixBase&lt;DerivedV&gt; &amp; V,
   Eigen::PlainObjectBase&lt;DerivedW&gt; &amp; W)
 {
   W = (V.rowwise()-V.colwise().minCoeff()).array() /
@@ -237,7 +234,7 @@ void fit_to_unit_cube(
 }
 
 template &lt;typename DerivedV&gt;
-void DerivedV fit_to_unit_cube(const Eigen::PlainObjectBase&lt;DerivedV&gt; &amp; V)
+void DerivedV fit_to_unit_cube(const Eigen::MatrixBase&lt;DerivedV&gt; &amp; V)
 {
   DerivedV W;
   fit_to_unit_cube(V,W);
@@ -392,3 +389,4 @@ implementation so we&#8217;re keeping it as long as possible and profitable.</p>
 
 </body>
 </html>
+

+ 16 - 0
tutorial/coding-guidelines.html

@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<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>
+
+
+
+</body>
+</html>
+

+ 16 - 0
tutorial/index.html

@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<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>
+
+
+
+</body>
+</html>
+

+ 16 - 0
tutorial/style-guidelines.html

@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<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>
+
+
+
+</body>
+</html>
+

+ 1 - 1
tutorial/tutorial.html.REMOVED.git-id

@@ -1 +1 @@
-e0514ec101376a87462a079591da84d17750f2fa
+b0a97bc5441baec8358f0a5531fa9d6d1ad3ca3b

+ 1 - 1
tutorial/tutorial.md.REMOVED.git-id

@@ -1 +1 @@
-231079d3fcb00a42fa1a3cfbbf321a5e29d3e742
+6fd2c1964c1b996b4245a0ff4cd3fc35a35e9033