Browse Source

updated readme with version 1.0 changes

Former-commit-id: e20ae8ece66e8e21c8ebf8f3927b24fffc950393
Alec Jacobson 11 years ago
parent
commit
7784349d86
2 changed files with 76 additions and 3 deletions
  1. 1 0
      .gitignore
  2. 75 3
      README.md

+ 1 - 0
.gitignore

@@ -66,3 +66,4 @@ external/glew/build
 external/glfw/build
 external/glfw/build
 *buildXcode*
 *buildXcode*
 tutorial/build*
 tutorial/build*
+tutorial/*/*.mexmaci64

+ 75 - 3
README.md

@@ -12,6 +12,10 @@ a single function.  The function may have multiple prototypes. All functions
 should use the igl namespace and should adhere to the conventions and styles
 should use the igl namespace and should adhere to the conventions and styles
 listed below. 
 listed below. 
 
 
+> **New:** As of 1 July 2014, we have release our libigl beta version 1.0. There are a
+> number of changes we collected for this release to minimize confusion and
+> changes to how you use libigl. See [Version 1.0 Changes][version1.0changes].
+
 ## Dependencies ##
 ## Dependencies ##
 - Eigen3  Last tested with Eigen Version 3.2
 - Eigen3  Last tested with Eigen Version 3.2
 
 
@@ -39,7 +43,7 @@ listed below.
 ## Header only ##
 ## Header only ##
 libigl is designed to work "out-of-the-box" as a headers only library. To
 libigl is designed to work "out-of-the-box" as a headers only library. To
 include libigl in your project. You need only include the libigl/include/
 include libigl in your project. You need only include the libigl/include/
-directory in your include path and define the `IGL_HEADER_ONLY` macro. To 
+directory in your include path. To 
 compile a hello-word example.cpp:
 compile a hello-word example.cpp:
 
 
     #include <Eigen/Dense>
     #include <Eigen/Dense>
@@ -61,7 +65,7 @@ compile a hello-word example.cpp:
 
 
 using gcc (replacing appropriate paths):
 using gcc (replacing appropriate paths):
 
 
-    g++ -DIGL_HEADER_ONLY -I/usr/local/igl/libigl/include \
+    g++ -I/usr/local/igl/libigl/include \
       -I/opt/local/include/eigen3 example.cpp -o example
       -I/opt/local/include/eigen3 example.cpp -o example
 
 
 Then run this example with:
 Then run this example with:
@@ -254,7 +258,75 @@ See `LICENSE.txt`
 ## Zipping ##
 ## Zipping ##
 Zip this directory without .git litter and binaries using:
 Zip this directory without .git litter and binaries using:
 
 
-    git archive —prefix=libigl/ -o libigl.zip master
+    git archive -prefix=libigl/ -o libigl.zip master
+
+## Version 1.0 Changes ##
+Our beta release marks our confidence that this library can be used outside of
+casual experimenting. To maintain order, we have made a few changes which
+current users should read and adapt their code accordingly.
+
+### Renamed functions ###
+The following table lists functions which have changed name as of version
+1.0.0:
+
+ Old | --> | New 
+ ----|-|----
+ `igl::add_barycenter`| |`igl::false_barycentric_subdivision`
+ `igl::areamatrix`| |`igl::vector_area_matrix`
+ `igl::barycentric2global`| |`igl::barycentric_to_global`
+ `igl::boundary_faces`| |`igl::boundary_facets`
+ `igl::boundary_vertices_sorted`| |`igl::boundary_loop`
+ `igl::cotangent`| |`igl::cotmatrix_entries`
+ `igl::edgetopology`| |`igl::edge_topology`
+ `igl::gradMat`| |`igl::grad`
+ `igl::is_manifold`| |`igl::is_edge_manifold`
+ `igl::mexStream`| |`igl::MexStream`
+ `igl::moveFV`| |`igl::average_onto_vertices`
+ `igl::moveVF`| |`igl::average_onto_faces`
+ `igl::plot_vector`| |`igl::print_vector`
+ `igl::pos`| |`igl::HalfEdgeIterator`
+ `igl::plane_project`| |`igl::project_isometrically_to_plane`
+ `igl::project_points_mesh`| |`igl::line_mesh_intersection`
+ `igl::read`| |`igl::read_triangle_mesh`
+ `igl::removeDuplicates.cpp`| |`igl::remove_duplicates`
+ `igl::removeUnreferenced`| |`igl::remove_unreferenced`
+ `igl::tt`| |`igl::triangle_triangle_adjacency`
+ `igl::vf`| |`igl::vertex_triangle_adjacency`
+ `igl::write`| |`igl::write_triangle_mesh`
+ `igl::manifold_patches`| |`igl::orientable_patches`
+ `igl::selfintersect`| |`igl::remesh_self_intersections`
+ `igl::project_mesh`| |`igl::line_mesh_intersection`
+ `igl::triangulate`| |`igl::polygon_mesh_to_triangle_mesh`
+ `igl::is_manifold`| |`igl::is_edge_manifold`
+ `igl::triangle_wrapper`| |`igl::triangulate`
+
+### Miscellaneous ###
+ - To match interfaces provided by (all) other quadratic optimization
+   libraries, `igl::min_quad_with_fixed` and `igl::active_set` now expect as
+   input twice the quadratic coefficients matrix, i.e. the Hessian. For
+   example, `igl::min_quad_with_fixed(H,B,...)` minimizes $\frac{1}{2}x^T H
+   x+x^T B$.
+ - We have inverted the `IGL_HEADER_ONLY` macro to `IGL_STATIC_LIBRARY`. To
+   compile using libigl as a header-only library, simply include headers and
+   libigl in the header search path. To link to libigl, you must define the
+   `IGL_STATIC_LIBRARY` macro at compile time and link to the `libigl*.a`
+   libraries.
+ - Building libigl as a static library is now more organized. There is a
+   `build/` directory with Makefiles for the main library (`Makefile`) and each
+   dependency (e.g. `Makefile_mosek` for `libiglmosek.a`)
+ - `igl::polar_svd` now always returns a rotation in `R`, never a reflection.
+   This mirrors the behavior of `igl::polar_svd3x3`.  Consequently the `T`
+   part may have negative skews.
+ - We have organized the static
+ - The previous `igl::grad` function, which computed the per-triangle gradient
+   of a per-vertex scalar function has been replaced. Now `igl::grad` computes
+   the linear operator (previous computed using `igl::gradMat`). The gradient
+   values can still be recovered by multiplying the operator against the scalar
+   field as a vector and reshaping to have gradients per row.
+ - `MASSMATRIX_*` has become `MASSMATRIX_TYPE_*`
+ - The function `igl::project_normals`, which cast a line for each vertex of
+   mesh _A_ in the normal direction and found the closest intersection along
+   these lines with mesh _B_, has been removed.
 
 
 ## Contact ##
 ## Contact ##
 libigl is a group endeavor led by Alec Jacobson and Daniele Panozzo. Please
 libigl is a group endeavor led by Alec Jacobson and Daniele Panozzo. Please