RELEASE_HISTORY.txt 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. # Version tracking
  2. Version | Short description
  3. --------|----------------------------------------------------------------------
  4. 1.1.7 | Switch build for static library to cmake.
  5. 1.1.6 | Major boolean robustness fix, drop CGAL dependency for AABB/distances
  6. 1.1.5 | Bug fix in booleans
  7. 1.1.4 | Edge collapsing and linear program solving
  8. 1.1.3 | Bug fixes in active set and boundary_conditions
  9. 1.1.1 | PLY file format support
  10. 1.1.0 | Mesh boolean operations using CGAL and cork, implementing [Attene 14]
  11. 1.0.3 | Bone heat method
  12. 1.0.2 | Bug fix in winding number code
  13. 1.0.1 | Bug fixes and more CGAL support
  14. 1.0.0 | Major beta release: many renames, tutorial, triangle, org. build
  15. ## Version 1.2 Changes ##
  16. This change introduces better organization of dependencies and removes some
  17. deprecated/repeated functions. The 3x3 svd code and dependent functions
  18. (including ARAP) were absorbed into the main library. Similarly, the boost
  19. dependency extra was absorbed.
  20. ### Deprecated/repeated functions ###
  21. Old | New
  22. --------------------------------------- | -----------------------------------
  23. `igl::angles` | `igl::internal_angles`
  24. `#include <igl/boost/components.h>` | `#include <igl/components.h>`
  25. `#include <igl/boost/bfs_orient.h>` | `#include <igl/bfs_orient.h>`
  26. `#include <igl/boost/orientable_patches.h>` | `#include <igl/orientable_patches.h>`
  27. `#include <igl/svd3x3/arap.h>` | `#include <igl/arap.h>`
  28. `#include <igl/svd3x3/arap_dof.h>` | `#include <igl/arap_dof.h>`
  29. `#include <igl/svd3x3/fit_rotations.h>` | `#include <igl/fit_rotations.h>`
  30. `#include <igl/svd3x3/polar_svd3x3.h>` | `#include <igl/polar_svd3x3.h>`
  31. `#include <igl/svd3x3/svd3x3.h>` | `#include <igl/svd3x3.h>`
  32. `#include <igl/svd3x3/svd3x3_avx.h>` | `#include <igl/svd3x3_avx.h>`
  33. `#include <igl/svd3x3/svd3x3_sse.h>` | `#include <igl/svd3x3_sse.h>`
  34. ## Version 1.0 Changes ##
  35. Our beta release marks our confidence that this library can be used outside of
  36. casual experimenting. To maintain order, we have made a few changes which
  37. current users should read and adapt their code accordingly.
  38. ### Renamed functions ###
  39. The following table lists functions which have changed name as of version
  40. 1.0.0:
  41. Old | New
  42. -------------------------------- | -------------------------------------
  43. `igl::add_barycenter` | `igl::false_barycentric_subdivision`
  44. `igl::areamatrix` | `igl::vector_area_matrix`
  45. `igl::barycentric2global` | `igl::barycentric_to_global`
  46. `igl::boundary_faces` | `igl::boundary_facets`
  47. `igl::boundary_vertices_sorted` | `igl::boundary_loop`
  48. `igl::cotangent` | `igl::cotmatrix_entries`
  49. `igl::edgetopology` | `igl::edge_topology`
  50. `igl::gradMat` | `igl::grad`
  51. `igl::is_manifold` | `igl::is_edge_manifold`
  52. `igl::mexStream` | `igl::MexStream`
  53. `igl::moveFV` | `igl::average_onto_vertices`
  54. `igl::moveVF` | `igl::average_onto_faces`
  55. `igl::plot_vector` | `igl::print_vector`
  56. `igl::pos` | `igl::HalfEdgeIterator`
  57. `igl::plane_project` | `igl::project_isometrically_to_plane`
  58. `igl::project_points_mesh` | `igl::line_mesh_intersection`
  59. `igl::read` | `igl::read_triangle_mesh`
  60. `igl::removeDuplicates.cpp` | `igl::remove_duplicates`
  61. `igl::removeUnreferenced` | `igl::remove_unreferenced`
  62. `igl::tt` | `igl::triangle_triangle_adjacency`
  63. `igl::vf` | `igl::vertex_triangle_adjacency`
  64. `igl::write` | `igl::write_triangle_mesh`
  65. `igl::manifold_patches` | `igl::orientable_patches`
  66. `igl::selfintersect` | `igl::remesh_self_intersections`
  67. `igl::project_mesh` | `igl::line_mesh_intersection`
  68. `igl::triangulate` | `igl::polygon_mesh_to_triangle_mesh`
  69. `igl::is_manifold` | `igl::is_edge_manifold`
  70. `igl::triangle_wrapper` | `igl::triangulate`
  71. ### Miscellaneous ###
  72. - To match interfaces provided by (all) other quadratic optimization
  73. libraries, `igl::min_quad_with_fixed` and `igl::active_set` now expect as
  74. input twice the quadratic coefficients matrix, i.e. the Hessian. For
  75. example, `igl::min_quad_with_fixed(H,B,...)` minimizes $\frac{1}{2}x^T H
  76. x+x^T B$.
  77. - We have inverted the `IGL_HEADER_ONLY` macro to `IGL_STATIC_LIBRARY`. To
  78. compile using libigl as a header-only library, simply include headers and
  79. libigl in the header search path. To link to libigl, you must define the
  80. `IGL_STATIC_LIBRARY` macro at compile time and link to the `libigl*.a`
  81. libraries.
  82. - Building libigl as a static library is now more organized. There is a
  83. `build/` directory with Makefiles for the main library (`Makefile`) and each
  84. dependency (e.g. `Makefile_mosek` for `libiglmosek.a`)
  85. - `igl::polar_svd` now always returns a rotation in `R`, never a reflection.
  86. This mirrors the behavior of `igl::polar_svd3x3`. Consequently the `T`
  87. part may have negative skews.
  88. - We have organized the static
  89. - The previous `igl::grad` function, which computed the per-triangle gradient
  90. of a per-vertex scalar function has been replaced. Now `igl::grad` computes
  91. the linear operator (previous computed using `igl::gradMat`). The gradient
  92. values can still be recovered by multiplying the operator against the scalar
  93. field as a vector and reshaping to have gradients per row.
  94. - `MASSMATRIX_*` has become `MASSMATRIX_TYPE_*`
  95. - The function `igl::project_normals`, which cast a line for each vertex of
  96. mesh _A_ in the normal direction and found the closest intersection along
  97. these lines with mesh _B_, has been removed.
  98. 0.4.6 Generalized Winding Numbers
  99. 0.4.5 CGAL extra: mesh selfintersection
  100. 0.4.4 STL file format support
  101. 0.4.3 ARAP implementation
  102. 0.4.1 Migrated much of the FAST code including extra for Sifakis' 3x3 svd
  103. 0.4.0 Release under MPL2 license
  104. 0.3.7 Embree2.0 support
  105. 0.3.6 boost extra, patches, mosek 7 support, libiglbbw (mosek optional)
  106. 0.3.5 More examples, naive primitive sorting
  107. 0.3.3 Many more examples, ambient occlusion with Embree.
  108. 0.3.1 Linearly dependent constraints in min_quad_with_fixed, SparseQR buggy
  109. 0.3.0 Better active set method support
  110. 0.2.3 More explicits, active set method, opengl/anttweakbar guards
  111. 0.2.2 More explicit instanciations, faster sorts and uniques
  112. 0.2.1 Bug fixes in barycenter and doublearea found by Martin Bisson
  113. 0.2.0 XML serializer more stable and fixed bug in remove_duplicate_vertices
  114. 0.1.8 Embree and xml (windows only) extras
  115. 0.1.5 Compilation on windows, bug fix for compilation with cygwin
  116. 0.1.1 Alpha release with core functions, extras, examples