DGtal release 1.3
Résumé
The collaborative project DGtal aims at developing generic, efficient and reliable digital geometry data structures, algorithms and tools. It takes the form of an open-source C++ library DGtal and a set of tools and binaries DGtalTools.
This version corresponds to the release 1.3 of DGtal and its tools.
New features / critical changes
General
A Dockerfile is added to create a Docker image to have a base to start development using the DGtal library.(J. Miguel Salazar #1580)
Continuous integration does not use Travis anymore but Github Actions. (David Coeurjolly, #1591)
Examples are not built anymore by default (BUILD_EXAMPLES now set to OFF by default). (David Coeurjolly, #1630)
Geometry package
Improve lattice polytope count operations and provide many new services related to full convexity, like computing the (relative
or not) fully convex envelope, and building digital polyhedra. (Jacques-Olivier Lachaud, #1656)
Add curvature measures computation on 3D surface mesh: implements Normal Cycle, face-constant Corrected Normal Current
and vertex-interpolated Corrected Normal Current. (Jacques-Olivier Lachaud,#1617)
Completes the digital convexity module with new functions related to full convexity: check of full convexity for arbitrary
digital sets in nD, and helper classes for using full convexity in practice (local geometric analysis, tangency and shortest paths)
(Jacques-Olivier Lachaud,#1594)
New VoronoiMapComplete class to store the full Voronoi map (with all co-cycling sites (Robin Lamy, David Coeurjolly, Isabelle
Sivignon #1605)
DEC
New discrete differential operators on polygonal meshes have been added. They can be used to process generic polygonal meshes (with non-planar, non-convex faces) or digital surfaces. (David Coeurjolly, #1603
New class to compute geodesics on polygonal surfaces using the Geodesics in Heat approach and the new differential operators on
polygonal surfaces (digital surfaces, or any PolygonalMesh instance) (David Coeurjolly, #1603
Updates to PolygonalCalculus: changing sign convention, fix some Eigen problems, add Dirichlet boundary conditions, update discrete differential calculus examples (Jacques-Olivier Lachaud, #1643)
Updates to PolygonalCalculus: adding vector field operators (mainly covariant gradient and covariant projection as well as Connection-Laplacian). Also adding two more examples: harmonic parametrization and vectors in heat method. (Baptiste Genest, David
Coeurjolly, #1646)
Mathematical Package
Add Lagrange polynomials and Lagrange interpolation (Jacques-Olivier Lachaud, #1594)
Topology
New helper methods to retrieve the interior/exterior voxel of a given surfel (signed cell of a Khalimksy space). (David Coeurjolly,
#1631)
I/O
Imagemagick dependency and related classes. Image file format (png, jpg, tga, bmp, gif) are now included in the DGtal core using stb_image.h and stb_image_write.h. (David Coeurjolly, #1648)
Changes
Image
Bugfix in the SpaceND and HyperRectDomain classes to allow very large extent (e.g. >$1024^3$) (David Coeurjolly, #1636)
Improved ITK image selection in ImageSelector and add ITK xx.gz an other format support. New option to keep set domain or to compute current bounding box of elements of the set in ImageFromSet. (Bertrand Kerautret, #1633)
Improved MeshReader for .off format in order to take into account more comments and other header code used in CGAL.
(Bertrand Kerautret, #1653 and #1654)
IO
Add Obj format in MeshReader including colors and fixing obj format read with relative face position. (Bertrand Kerautret, #1584)
Move static private HSVtoRGB and RGBtoHSV functions in Color class (public) and new setters/getters from/to HSV (Python binding updated) (Bertrand Kerautret, Phuc Ngo and David Coeurjolly #1593)
Geometry
Small fix for shortest paths computation, which could sometimes output several times the same node. Add tests and examples.
(Jacques-Olivier Lachaud, #1644)
First and second curvature directions were inverted in the IIPrincipalCurvaturesAndDirectionsFunctor, fixed now. (David Coeurjolly, #1657)
Renaming getVoronoiVector to getVoronoiSite in the DistanceTransformation class. (David Coeurjolly, #1660)
Kernel
New constructor in Point2DEmbedderIn3D to explicitly orient the image plane and new shift method to avoid recomputing orientation plane. (Bertrand Kerautret #1619)
Build
New cmake targets to collect cmake, doxygen and markdown files (David Coeurjolly, #1609)
Continuous integration does not use Travis anymore but Github Actions. (David Coeurjolly, #1591)
New cmake option (DGTAL_RANDOMIZED_TESTING_THRESHOLD) to set the (approximated) % of unit-tests to build and run for randomized testing (David Coeurjolly #1588)
Fix missing whitelist for the unit-tests in relation to PR #1591)
(Bertrand Kerautret #1595)
Fix cmake related ITK usage in other projects (issue #1612).
(Bertrand Kerautret and Pablo Hernandez-Cerdan #1613)
Adding ITK in Github Actions CI on linux distribution. (Bertrand Kerautret #1615)
New variable in the Github Action script to disable some tests (not working in the bots) (David Coeurjolly, #1635)
Google benchmark is now fetched when building the unit tests (using Fetch_Content) (David Coeurjolly, [#1651] #1651))
Add new cmake option to avoid linking errors related to STB image library (like LNK2005 in MSVC). (Bertrand Kerautret, #1666)
Bug fixes
General
Fixing OpenMP dependency on macOS when using the DGtalConfig.cmake(David Coeurjolly, #1578)
Various warnings / deprecated functions (David Coeurjolly, #1583
Removing old snapshot of catch.hpp. Now DGtal compiles on Apple M1 (David Coeurjolly, #1590
Fix cmake IN_LIST use policy. (Bertrand Kerautret, #1592)
Adding a explicit list of tests to exclude from Github Actions (David Coeurjolly, #1596)
Fixing bugs in the exclude list for CI (David Coeurjolly, #1602)
Reactivating Github Actions bots (David Coeurjolly, #1628)
OpenMP fix in DGtalConfig on macOS M1 (David Coeurjolly, #1641)
New doxygen settings to reduce diagram generation (David Coeurjolly, #1663)
Examples
We can now have examples using polyscope as viewer (BUILD_POLYSCOPE_EXAMPLES cmake variable). (David Coeurjolly, #1603)
IO
Faster export of OBJ files. (David Coeurjolly, #1608
Fixing bugs in writing Longvol from GenericWriter and tests. (Bertrand Kerautret, #1610
Fix compilation issue in MeshReader compilation. (Bertrand Kerautret, #1611
Minor fixes in VolReader and LongVolReader to be able to load large vol files. (David Coeurjolly, #1637)
Fix LongVolReader that fails to read large values. It was why testLongvol and testCompressedVolWriter were failing on some configurations. (Roland Denis, #1638)
Fix missing #include